Documentation

LeanPool.Lentil.ProofMode.Tactics.Intro

theorem TLA.ProofMode.Entails_intro_forall {σ : Type u} {hyps : List (NamedPred σ)} {α : Sort v} {p : α → pred σ} :
(∀ (x : α), Entails hyps (p x)) → Entails hyps [tlafml|∀ x, (p x)]
theorem TLA.ProofMode.Entails_pure_fact_intro {σ : Type u} {hyps : List (NamedPred σ)} {q : Prop} {p : pred σ} :
(q → Entails hyps p) = Entails hyps [tlafml|⌞ q ⌟ → p]
theorem TLA.ProofMode.Entails_intro_temporal {σ : Type u} {hyps : List (NamedPred σ)} {goal newHyp : pred σ} (newHypName : String) :
Entails (hyps ++ [{ name := newHypName, pred := newHyp }]) goal = Entails hyps [tlafml|newHyp → goal]

Reduction rules used after introducing a proof-mode hypothesis.

Equations
Instances For

    Introduce one proof-mode hypothesis with the given name.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      tla_intro x₁ x₂ ... introduces binders from the proof-mode goal.

      If the goal starts with a temporal implication p → q, then tla_intro hp adds hp : p to the proof-mode context and changes the goal to q. If the goal starts with a universal quantifier, the introduced name becomes a Lean local. If the goal starts with a pure implication ⌞P⌟ → q, the introduced name is a Lean proof of P.

      Examples:

      tla_intro hp    -- p → q  becomes  hp : p ⊢ q
      tla_intro n hp -- ∀ n, p n → q n  introduces `n`, then `hp`
      
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For