Right-fold a list of predicates into a single conjunction.
Equations
- TLA.ProofMode.repeatedAnd ps = LentilLib.List.foldrD TLA.tlaAnd [tlafml|⊤] ps
Instances For
Right-fold a list of predicates into a chain of implications to q.
Equations
Instances For
theorem
TLA.ProofMode.repeatedAnd_subset_implies
{σ : Type u_1}
(ps1 ps2 : List (pred σ))
:
ps1 ⊆ ps2 → ((repeatedAnd ps2)) |-tla- ((repeatedAnd ps1))
The proof-mode entailment: the conjunction of hypotheses entails the goal.
Equations
- TLA.ProofMode.Entails hyps goal = ((TLA.ProofMode.repeatedAnd (List.map TLA.ProofMode.NamedPred.pred hyps))) |-tla- (goal)
Instances For
theorem
TLA.ProofMode.repeatedAnd_modifyHyp_reorder
{σ : Type u}
(hyps : List (NamedPred σ))
(idx : Nat)
(h : idx < hyps.length)
(f : NamedPred σ → NamedPred σ)
:
((repeatedAnd (List.map NamedPred.pred hyps)) ∧ (f hyps[idx]).pred) =tla= ((repeatedAnd (List.map NamedPred.pred (hyps.modify idx f))) ∧ hyps[idx].pred)
theorem
TLA.ProofMode.ModifyHypSpecWithIndex_modify
{σ : Type u}
(hyps : List (NamedPred σ))
(f : NamedPred σ → NamedPred σ)
(idx : Nat)
:
ModifyHypSpecWithIndex hyps (hyps.modify idx f) f idx
theorem
TLA.ProofMode.ModifyHypSpecWithIndex_implies_ModifyHypSpec
{σ : Type u_1}
{hyps hyps' : List (NamedPred σ)}
{f : NamedPred σ → NamedPred σ}
{idx : Nat}
:
ModifyHypSpecWithIndex hyps hyps' f idx → ModifyHypSpec hyps hyps' f
theorem
TLA.ProofMode.ModifyHypSpec_implies_ModifyHypSpecWithIndex
{σ : Type u_1}
{hyps hyps' : List (NamedPred σ)}
{f : NamedPred σ → NamedPred σ}
:
ModifyHypSpec hyps hyps' f → ∃ (idx : Nat), ModifyHypSpecWithIndex hyps hyps' f idx
def
TLA.ProofMode.modifyHypByName
{σ : Type u}
(hyps : List (NamedPred σ))
(name : String)
(f : NamedPred σ → NamedPred σ)
:
Modify the hypothesis with the given name by applying f.
Equations
- TLA.ProofMode.modifyHypByName hyps name f = (List.findIdx? (fun (h : TLA.ProofMode.NamedPred σ) => h.name == name) hyps).elim hyps fun (idx : Nat) => hyps.modify idx f
Instances For
theorem
TLA.ProofMode.modifyHypByName_spec
{σ : Type u}
(hyps : List (NamedPred σ))
(name : String)
(f : NamedPred σ → NamedPred σ)
:
ModifyHypSpec hyps (modifyHypByName hyps name f) f
Like Expr.isStringLit, but returns the string.
Equations
Instances For
Obtain a cleaned-up version of e.
Equations
- TLA.ProofMode.cleanupAnnotAndMore e = do let __do_lift ← Lean.instantiateMVars e pure __do_lift.headBeta.cleanupAnnotations
Instances For
Run dsimp with the reflection lemmas after applying a proof-mode theorem.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recognize the hypothesis list of the current Entails goal.
Equations
Instances For
The number of hypotheses in the current proof-mode goal.