| Code | Meaning | Applies? |
|---|---|---|
TP |
Typing Proofs (type soundness, type safety) |
Yes |
INV |
Invariant Proofs (state machines, monotonicity, bounds) |
|
SEC |
Security Proofs (crypto, injection freedom, access control) |
|
CONC |
Concurrency Proofs (linearizability, deadlock freedom) |
|
ALG |
Algorithm Proofs (termination, correctness, bounds) |
|
ABI |
ABI/FFI Proofs (memory layout, pointer safety, platform compat) |
Yes |
DOM |
Domain-Specific Proofs (bespoke to this project) |
These proofs come from the rsr-template-repo and MUST be present in every repo:
| # | Proof | Status | File |
|---|---|---|---|
ABI-1 |
Non-null pointer proofs ( |
Needed |
|
ABI-2 |
Memory layout correctness ( |
Needed |
|
ABI-3 |
Platform type size proofs (per platform) |
Needed |
|
ABI-4 |
FFI function return type proofs |
Needed |
|
ABI-5 |
C ABI compliance ( |
Needed |
|
The following MUST NOT appear anywhere in proof files:
| Pattern | Language | Meaning |
|---|---|---|
|
Idris2 |
Unsafe cast / trust-me |
|
Idris2 |
Skip totality check |
|
Idris2/Agda |
Unproven axiom |
|
Lean4 |
Incomplete proof |
|
Coq |
Incomplete proof |
|
Haskell |
Unsafe type cast |
|
OCaml/ReScript |
Unsafe type cast |
|
Rust |
Unsafe block without safety comment |
CI will reject any PR introducing these patterns (enforced by
panic-attack assail).
| Use Case | Recommended Prover | Why |
|---|---|---|
ABI/FFI boundaries |
Idris2 |
Dependent types model layouts precisely |
Type system proofs |
Coq or Lean4 |
Mature proof assistants for metatheory |
Algebraic properties |
Lean4 |
Good mathlib support |
Inductive/coinductive |
Agda |
Native support for (co)induction |
Distributed systems |
TLA+ |
Model checking for protocols |
Numerical properties |
Isabelle |
Strong real analysis library |
verification/proofs/
├── idris2/ # Idris2 proofs (ABI, dependent types)
│ ├── ABI/ # ABI-specific proofs
│ └── *.idr # Project-specific Idris2 proofs
├── lean4/ # Lean4 proofs (algebra, lattices)
│ └── *.lean
├── agda/ # Agda proofs (induction, metatheory)
│ └── *.agda
├── coq/ # Coq proofs (type systems, compilation)
│ └── *.v
└── tlaplus/ # TLA+ specs (distributed protocols)
└── *.tla