mirror of
https://github.com/johndoe6345789/tla_visualiser.git
synced 2026-04-24 21:55:24 +00:00
211 lines
4.3 KiB
Markdown
211 lines
4.3 KiB
Markdown
# Quick Start Guide
|
|
|
|
Get up and running with TLA+ Visualiser in 5 minutes!
|
|
|
|
## Prerequisites
|
|
|
|
Make sure you have:
|
|
- CMake 3.22+
|
|
- Qt 6.5+
|
|
- A C++20 compiler
|
|
- Conan package manager
|
|
|
|
See [BUILDING.md](docs/BUILDING.md) for detailed installation instructions.
|
|
|
|
## Installation
|
|
|
|
### Step 1: Clone and Install Dependencies
|
|
|
|
```bash
|
|
# Clone repository
|
|
git clone https://github.com/johndoe6345789/tla_visualiser.git
|
|
cd tla_visualiser
|
|
|
|
# Install dependencies
|
|
pip install conan
|
|
conan profile detect
|
|
conan install . --output-folder=build --build=missing
|
|
```
|
|
|
|
### Step 2: Build
|
|
|
|
```bash
|
|
# Configure
|
|
cmake -B build -G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_TOOLCHAIN_FILE=build/conan_toolchain.cmake
|
|
|
|
# Build
|
|
cmake --build build --config Release
|
|
```
|
|
|
|
### Step 3: Run
|
|
|
|
```bash
|
|
./build/tla_visualiser
|
|
```
|
|
|
|
## First Use
|
|
|
|
### 1. Import a Specification
|
|
|
|
**Option A: From Examples**
|
|
- Open the application
|
|
- Go to: File → Import from GitHub
|
|
- Paste: `https://github.com/tlaplus/Examples/blob/master/specifications/ewd998/EWD998.tla`
|
|
- Click Import
|
|
|
|
**Option B: Local Example**
|
|
- Use the included example: `examples/SimpleCounter.tla`
|
|
- Import it directly through the Import tab
|
|
|
|
### 2. Run Model Checker
|
|
|
|
- After importing, click "Run Model Checker"
|
|
- Wait for TLC to complete
|
|
- Results will appear automatically
|
|
|
|
### 3. Explore Results
|
|
|
|
**Graph View:**
|
|
- Click the "Graph View" tab
|
|
- See the state space visualized as a graph
|
|
- Click nodes to inspect states
|
|
|
|
**Trace View:**
|
|
- Click the "Trace View" tab
|
|
- Navigate through execution traces step-by-step
|
|
- View variable values at each step
|
|
|
|
**Invariants:**
|
|
- Click the "Invariants" tab
|
|
- See which invariants passed/failed
|
|
|
|
### 4. Export
|
|
|
|
Export your results:
|
|
- **Graph**: File → Export Graph → SVG or PNG
|
|
- **Trace**: File → Export Trace → JSON or Markdown
|
|
|
|
## Common Workflows
|
|
|
|
### Workflow 1: Explore Public TLA+ Specs
|
|
|
|
```
|
|
1. Find a TLA+ spec on GitHub
|
|
2. Copy the URL (file or repository)
|
|
3. Import via File → Import from GitHub
|
|
4. Run model checker
|
|
5. Visualize and explore
|
|
```
|
|
|
|
### Workflow 2: Analyze Your Own Specs
|
|
|
|
```
|
|
1. Create your .tla file locally
|
|
2. Optionally create a .cfg file
|
|
3. In TLA+ Visualiser, use Import tab
|
|
4. Browse to your local file
|
|
5. Run and analyze
|
|
```
|
|
|
|
### Workflow 3: Compare Runs
|
|
|
|
```
|
|
1. Run model checker on a spec
|
|
2. File → Save Run Results
|
|
3. Modify spec or config
|
|
4. Run again
|
|
5. File → Load Run Results to compare
|
|
```
|
|
|
|
## Tips & Tricks
|
|
|
|
### Keyboard Shortcuts
|
|
|
|
- `Ctrl+I` (Cmd+I on Mac): Import dialog
|
|
- `Ctrl+R` (Cmd+R): Run model checker
|
|
- `Ctrl+E` (Cmd+E): Export current view
|
|
- `Ctrl+Q` (Cmd+Q): Quit
|
|
|
|
### Performance
|
|
|
|
For large state spaces:
|
|
- Start with small models
|
|
- Use state constraints in TLC config
|
|
- Increase Java heap size: `export JAVA_OPTS="-Xmx4g"`
|
|
|
|
### Caching
|
|
|
|
Imported specs are cached in:
|
|
- Linux/Mac: `/tmp/tla_visualiser_cache/`
|
|
- Windows: `%TEMP%\tla_visualiser_cache\`
|
|
|
|
Clear cache to force re-download:
|
|
```bash
|
|
rm -rf /tmp/tla_visualiser_cache/
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### TLC Not Found
|
|
|
|
Make sure TLC (tla2tools.jar) is:
|
|
- Downloaded from https://github.com/tlaplus/tlaplus/releases
|
|
- In your PATH or current directory
|
|
- Accessible via `java -jar tla2tools.jar`
|
|
|
|
### Qt Not Found During Build
|
|
|
|
Specify Qt location:
|
|
```bash
|
|
export Qt6_DIR=/path/to/Qt/6.5.0/gcc_64/lib/cmake/Qt6
|
|
cmake -B build ...
|
|
```
|
|
|
|
### Import Fails
|
|
|
|
- Check internet connection
|
|
- Verify GitHub URL is correct
|
|
- Check GitHub rate limits (60 requests/hour without auth)
|
|
|
|
### Build Errors
|
|
|
|
Clean and rebuild:
|
|
```bash
|
|
rm -rf build
|
|
conan install . --output-folder=build --build=missing
|
|
cmake -B build ...
|
|
cmake --build build
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
- Read the full [README](README.md)
|
|
- Check [ARCHITECTURE](docs/ARCHITECTURE.md) for design details
|
|
- See [CONTRIBUTING](CONTRIBUTING.md) to contribute
|
|
- Try example specs in `examples/`
|
|
|
|
## Getting Help
|
|
|
|
- **Documentation**: Check `docs/` directory
|
|
- **Issues**: https://github.com/johndoe6345789/tla_visualiser/issues
|
|
- **Examples**: See `examples/` directory
|
|
|
|
## Example Session
|
|
|
|
```bash
|
|
# Start the app
|
|
./build/tla_visualiser
|
|
|
|
# In the application:
|
|
# 1. File → Import from GitHub
|
|
# 2. Enter: https://github.com/tlaplus/Examples/blob/master/specifications/ewd998/EWD998.tla
|
|
# 3. Click Import
|
|
# 4. Click "Run Model Checker"
|
|
# 5. Switch to "Graph View" tab
|
|
# 6. Explore the state space!
|
|
```
|
|
|
|
Happy visualizing! 🚀
|