Gadgets for lifting a propositional theorem to the level of temporal logic.
Recursively convert a propositional Expr p into the corresponding TLA
predicate, replacing leaves via alist. fuel bounds the recursion depth;
each recursive call descends into a strict subterm, so seeding it from the
expression's depth always suffices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert a subterm and lift the result to a pure predicate.
Equations
- TLA.Lifting.convertPropToTLAPredAux.go alist σ fuel p = TLA.Lifting.convertPropToTLAPredAux fuel alist σ p >>= TLA.Lifting.liftPropToPurePred σ
Instances For
Convert a propositional Expr into the corresponding TLA predicate,
seeding the recursion fuel from the expression's approximate depth.
Equations
- TLA.Lifting.convertPropToTLAPred alist σ p = TLA.Lifting.convertPropToTLAPredAux (p.approxDepth.toNat + 1) alist σ p >>= TLA.Lifting.liftPropToPurePred σ
Instances For
Which shape a lifted theorem's conclusion takes.
- Iff : LiftingCase
The case where the conclusion is a single
↔. - Other : LiftingCase
The other cases, including those where the conclusion is a series of
→.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Convert a theorem statement to the level of temporal logic. Given the theorem statement
and the name of the additional universe level (required by σ in TLA.pred σ),
return the case for lifting and the converted statement.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Lift the theorem named thmName to the temporal-logic level, optionally
renaming the result (liftedThmName) and supplying a proof tactic?.
Equations
- One or more equations did not get rendered due to their size.
Instances For
#tla_lift thm₁ ... thmₙ lifts (typically purely first-order) theorems
thm₁, ... ,thmₙ to the temporal logic level. Each new theorem will
have the prefix TLA. and the same suffix as before.
For example, after executing #tla_lift Decidable.not_not,
there will be a new theorem named TLA.not_not in the environment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
#tla_lift thm => newthm behaves like #tla_lift, but only lifts
one theorem, while naming the new theorem as newthm.
Equations
- One or more equations did not get rendered due to their size.