- Spa.Language.Base: Expr/BasicStmt/Stmt + HasVar relations; StringSet lifts to Finset String - Spa.Language.Semantics: Value/Env/Env.Mem, big-step relations, LatticeInterpretation (respects-≈ field drops out with =) - Spa.Language.Graphs: Graph with nodes : Fin size → List BasicStmt (Vec lookup lemmas lift to Fin.append_left/right), comp/link/loop/ skipto/singleton/wrap/buildCfg, predecessors via List.finRange - Spa.Language.Traces: Trace + EndToEndTrace (Prop-valued) - Spa.Language.Properties: trace embeddings, loop lemmas, buildCfg_sufficient; the 80-line Fin-disjointness block reduces to castAdd_ne_natAdd + mathlib list lemmas - Spa.Language: Program (vars via Finset.sort — toList is noncomputable) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
15 lines
359 B
Lean4
15 lines
359 B
Lean4
import Spa.Lattice
|
|
import Spa.Fixedpoint
|
|
import Spa.Isomorphism
|
|
import Spa.Lattice.Unit
|
|
import Spa.Lattice.Prod
|
|
import Spa.Lattice.AboveBelow
|
|
import Spa.Lattice.IterProd
|
|
import Spa.Lattice.FiniteMap
|
|
import Spa.Language.Base
|
|
import Spa.Language.Semantics
|
|
import Spa.Language.Graphs
|
|
import Spa.Language.Traces
|
|
import Spa.Language.Properties
|
|
import Spa.Language
|