Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:fponzi [2024/11/13 19:55] – [FPSet] fponzi | user:fponzi [2025/07/04 09:00] (current) – created fponzi | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Diving into tlatools ====== | + | Welcome |
- | + | ||
- | * TLC.java | + | |
- | * public int process() is like the main method | + | |
- | + | ||
- | Model checker.java extends AbstractChecker | + | |
- | + | ||
- | does initialization, | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | ====== Questions: ====== | + | |
- | + | ||
- | ===== What is a Trace? ===== | + | |
- | + | ||
- | * Stores the sequence of states explored during model checking in a file with the extension '' | + | |
- | * Provides methods to manage and access this trace information. | + | |
- | + | ||
- | ===== How does MP works? ===== | + | |
- | + | ||
- | ===== What’s the high level overview of the dependencies across classes? ===== | + | |
- | + | ||
- | ===== What’s the goal for Tool class? ===== | + | |
- | + | ||
- | This class provides useful methods for tools like model checker and simulator. It’s instance serves as a spec handle | + | |
- | + | ||
- | This is one of two places in TLC, where not all messages are retrieved from the message printer, but constructed just here in the code. | + | |
- | + | ||
- | Tool → FastTool → Spec → SpecProcessor→ Sany. | + | |
- | + | ||
- | ===== FPSet ===== | + | |
- | + | ||
- | Represents a set of 64-bit fingerprints. FPSet is an abstract class. | + | |
- | Default implementation is | + | |
- | + | ||
- | Implementors: | + | |
- | * DiskFPSet.java | + | |
- | * DummyDiskFPSet.java | + | |
- | * HeapBasedDiskFPSet.java | + | |
- | * LSBDiskFPSet.java | + | |
- | * MemFPSet.java | + | |
- | * MemFPSet1.java | + | |
- | * MemFPSet2.java | + | |
- | * MSBDiskFPSet.java | + | |
- | * MultiFPSet.java | + | |
- | * NonCheckpointableDiskFPSet.java | + | |
- | * NoopFPSet.java | + | |
- | * OffHeapDiskFPSet.java | + | |
- | + | ||
- | ===== What is TLCState? ===== | + | |
- | + | ||
- | TLCState is implemented by a tons of different classes for unknown reason. They were refactored at some point, so just a bunch of classes that extend it still exist: TLCStateMut, | + | |
- | + | ||
- | ==== What is TLCStateMut? | + | |
- | + | ||
- | represents a TLA+ state, which simply is an assignment of explicit values to all the global variables. This is the mutable version, which means that in-place updates are used for improved performance and reduced allocation. Compared | + |