HoareElaborator #
This module provides the elaborator for MRiscX Hoare-triple syntax.
Notation a₁ ∧∧ a₂ for the conjunction Assertion.And a₁ a₂ of two assertions.
Equations
- «term_∧∧_» = Lean.ParserDescr.trailingNode `«term_∧∧_» 1022 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ∧∧ ") (Lean.ParserDescr.cat `term 0))
Instances For
Notation ∼a for the negation Assertion.Not a of an assertion.
Equations
- «term∼_» = Lean.ParserDescr.node `«term∼_» 1022 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∼") (Lean.ParserDescr.const `ident))
Instances For
Preprocess a parsed Hoare condition, expanding assignment chains and binding
the implicit state identifier st.
Equations
Instances For
Differentiate between a Hoare assignment and an ordinary term in a pre- or post-condition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Elaborate a Hoare condition into the MState → _ predicate it denotes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation ⦃t⦄ elaborating a Hoare condition into its state predicate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Some utility function which casts an Array TSyntax mriscxLabel to TSyntax term
Equations
- One or more equations did not get rendered due to their size.
Instances For
Some utility function which casts TSyntax mriscxLabel to TSyntax term
Equations
- One or more equations did not get rendered due to their size.
Instances For
Hoare-triples for specifications with only one instruction
Equations
- One or more equations did not get rendered due to their size.
Instances For
Regular Hoare-triple with concrete MRiscX syntax before the actual triple
Equations
- term__3 = Lean.ParserDescr.node `term__3 1022 (Lean.ParserDescr.cat `hoareTerm 0)
Instances For
Define the code beforehand, does not support the usage of variables
Equations
- One or more equations did not get rendered due to their size.
Instances For
To define the code beforehand with some some variables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Fallback elab if no Labelnames in l, L_w or L_b required
Equations
- One or more equations did not get rendered due to their size.
Instances For
Elab of hoare assignment
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation ⟦⟧ for the identity assignment, denoting the unchanged state st.
Equations
- «term⟦⟧» = Lean.ParserDescr.node `«term⟦⟧» 1024 (Lean.ParserDescr.symbol "⟦⟧")