Hoare triple specifications for select functions #
This module contains Hoare triple specifications for some functions in Core.
Lifting MonadStateOf #
Lifting MonadReaderOf #
Lifting MonadExceptOf #
The type of loop invariants used by the specifications of for ... in ... loops.
A loop invariant maps the iteration cursor and accumulator state to an assertion.
The exception invariant is specified separately via eInvariant.
Equations
- Std.Internal.Do.Invariant xs β Pred = (xs.Cursor × β → Pred)
Instances For
The type of exception invariants for loop specifications. An exception invariant is an exception postcondition that must be preserved by every iteration of the loop body.
Equations
- Std.Internal.Do.eInvariant EPred = EPred
Instances For
The type of loop invariants used by the specifications of for ... in ... loops over strings.
A loop invariant is a function mapping the current position and state to a lattice element.
Equations
- Std.Internal.Do.StringInvariant s β Pred = (s.Pos × β → Pred)
Instances For
The type of loop invariants used by the specifications of for ... in ... loops over string slices.
A loop invariant is a function mapping the current position and state to a lattice element.
Equations
- Std.Internal.Do.StringSliceInvariant s β Pred = (s.Pos × β → Pred)