- Overview
- Tutorials
- 1. Overview
- 2. Entry-level Model Checker Tutorial
- 3. Type Checker Tutorial
- 4. Checking Pluscal specifications
- 5. Apalache trail tips: how to check your specs faster
- 6. Symbolic Model Checking
- 7. Specifying temporal properties and understanding counterexamples
- HOWTOs
- 8. Overview
- 9. How to write type annotations
- 10. How to use uninterpreted types
- Apalache User Manual
- 11. Getting Started
- 11.1. Installation
- 11.1.1. Prebuilt Packages
- 11.1.2. Docker
- 11.1.3. Build from Source
- 11.2. Running the Tool
- 11.3. An Example TLA+ Specification
- 11.4. Specification Parameters
- 11.5. Symbolic Model Checking with Apalache
- 11.5.1. Assignments and symbolic transitions
- 11.5.2. Folding sets and sequences
- 11.5.3. Invariants: State, Action, Trace
- 11.5.4. Enumeration of counterexamples
- 11.5.5. The Apalache Module
- 11.5.6. Naturals
- 11.6. Apalache global configuration file
- 11.7. TLA+ Execution Statistics
- 11.8. Profiling Your Specification
- 11.9. Five minutes of theory
- 12. Fine Tuning
- 13. TLC Configuration Files
- 14. The Snowcat Type Checker
- 15. Supported Features
- 16. Obsolete: Recursive operators and functions
- 17. Known Issues
- 18. Antipatterns
- 19. TLA+ Preprocessing
- 20. Assignments and Symbolic Transitions in Depth
- 21. KerA: kernel logic of actions
- TLA+ Language Manual for Engineers
- 22. Introduction
- 23. The standard operators of TLA+
- 23.1. Booleans
- 23.2. Control And Nondeterminism
- 23.3. Conditionals
- 23.4. Integers
- 23.5. Sets
- 23.6. Logic
- 23.7. Functions
- 23.8. Records
- 23.9. Tuples
- 23.10. Sequences
- 23.11. Bags
- 24. Apalache extensions
- 24.1. Apalache module
- 24.2. Variants
- 24.3. Option types
- 25. User-defined operators
- 25.1. Top-level operator definitions
- 25.2. LET-IN definitions
- 25.3. Higher-order operators definitions
- 25.4. Anonymous operator definitions
- 25.5. Local operator definitions
- 26. Modules, Extends, and Instances
- Idiomatic TLA+
- 27. Introduction
- 28. Keep state variables to the minimum
- 29. Update state variables with assignments
- 30. Apply primes only to state variables
- 31. Use Boolean operators in actions, not IF-THEN-ELSE
- 32. Avoid sets of mixed records
- Design Documents
- 33. RFC 001: types and type annotations
- 34. ADR-002: types and type annotations
- 35. ADR-003: transition executor (TRex)
- 36. ADR-004: code annotations
- 37. ADR-005: JSON Serialization Format
- 38. RFC-006: unit tests and property-based tests
- 39. ADR-007: restructuring
- 40. ADR-008: exceptions
- 41. ADR-009: outputs
- 42. RFC-010: Implementation of Transition Exploration Server
- 43. ADR-011: alternative SMT encoding using arrays
- 44. ADR-012: Adopt an ADR Template
- 45. ADR-013: Configuration Management Component
- 46. ADR-014: Precise type inference for records and variants
- 47. ADR-015: ITF: informal trace format
- 48. ADR-016: ReTLA: Relational TLA
- 49. PDR-017: Checking temporal properties
- 50. ADR-018: Inlining in Apalache
- 51. ADR-019: Harmonize changelog management
- 52. ADR-020: Improving membership in arenas
- 53. RFC-021: Prioritization of Work
- 54. ADR-022: Unify Configuration Management and "Pass Options"
- 55. ADR-023: Trace evaluation
- 56. ADR-024: Arena computation isolation
- 57. ADR-025: CVC5 solver backend integration