To compile this Coq development, simply run make.
This development is known to compile with
- Coq 8.20.1
- Coq-std++ 1.11.0
The lib/ directory contains auxiliary definitions and lemmas for generic definitions.
list.v: Additional facts about thelisttype from thestdpplibrary.gmap.v: Additional facts about thegmaptype from thestdpplibrary.
The lang/ directory contains the formalization of the semantics for our programming language and assertions.
lang.v: Language syntax, pure expression evaluation, variable substitution.semantics.v: Operational semantics, frame preservation.assertion.v: Logical assertions on heaps.
The model/ directory contains the formalization of RUXt.
logic.v: Template for a sound under-approximate program logic.risl.v: RISL proof rules, instantiation as UX logic.typechecker.v: Function type signatures and safe programs.summary.v: Summary contexts and properties.refute.v: The refutation algorithm and the inadequacy theorem.
The types/ directory contains the formalization of Rust types à la RustBelt.
type.v: Generic type definition, assertions for type ownership.lib/: Directory containing some default type definitions.rules.v: Rules of the type system.validity.v: Properties relating OX and UX reasoning.