pub struct Equation {
pub formula: String,
pub domain: Option<String>,
pub codomain: Option<String>,
pub invariants: Vec<String>,
pub preconditions: Vec<String>,
pub postconditions: Vec<String>,
pub lean_theorem: Option<String>,
pub float_tolerance: Option<f64>,
pub assumes: Option<ShapeContract>,
pub guarantees: Option<ShapeContract>,
}Expand description
A mathematical equation extracted from a paper (Phase 1 output).
Fields§
§formula: StringDefault-empty so diagnostic/methodology contracts that use prose
requirements instead of a formula (e.g.
decode-hot-path-prefix-cache-diagnostic-v1) still parse.
domain: Option<String>§codomain: Option<String>§invariants: Vec<String>§preconditions: Vec<String>Rust preconditions — compiled to debug_assert!() by build.rs.
postconditions: Vec<String>Rust postconditions — compiled to debug_assert!() by build.rs.
lean_theorem: Option<String>Lean 4 theorem name that proves this equation correct. Example: “ProvableContracts.Theorems.Softmax.PartitionOfUnity”
float_tolerance: Option<f64>IEEE 754 tolerance: codegen emits >= instead of > for boundaries (GH-67).
assumes: Option<ShapeContract>Compositional verification: what this equation requires from upstream. References a guarantees block from another contract/equation.
guarantees: Option<ShapeContract>Compositional verification: what this equation provides to downstream. Must be satisfiable by any downstream equation that assumes it.