Hoare triples #
Hoare triples form the basis for compositional functional correctness proofs about programs.
As usual, Triple x pre post eposts holds iff the precondition pre entails the weakest
precondition wp x post eposts of x : Prog for the postcondition post and error
postcondition eposts.
It is thus defined in terms of an instance WP Prog Value Pred EPosts.
The triples for the monadic combinators are in Std.WP.Triple.Monad.
A Hoare triple for reasoning about programs. A Hoare triple Triple x pre post eposts
is a specification for x: if assertion pre holds before x, then postcondition post holds
after running x (and eposts handles any errors).
- intro :: (
- le_wp : Lean.Order.PartialOrder.rel pre (wp x post eposts)
The weakest precondition entailment witnessing the triple.
- )
Instances For
Hoare triple notation without exception postcondition (defaults to ⊥). An optional (m := …)
after the precondition ascribes the program to monad ….
Equations
- One or more equations did not get rendered due to their size.
Instances For
Hoare triple notation with an exception postcondition:
⦃ P ⦄ x ⦃ Q; E ⦄ := Triple x P Q E.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pretty-print Triple applications back as ⦃ … ⦄ notation.
Equations
- One or more equations did not get rendered due to their size.