Documentation

LeanPool.Lentil.Gadgets.TheoremDeriving

Gadgets for providing different variants of a proven theorem.

Assemble premises and a conclusion under a shared context Γ.

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

    Assemble a list of premise predicates and a conclusion into the arrow chain of separated predImplies/valid statements used by tla_derive.

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

      Simplify a premise list and conclusion before assembling the implication chain.

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

        For a TLA theorem whose conclusion is a single TLA.predImplies or TLA.valid, this function automatically derives its several equivalent or weakened versions, which might be easier to use elsewhere.

        For example, consider the following statement:

        |-tla- ((p' ⇒ p) → (q ⇒ q') → (p ↝ q) ⇒ (p' ↝ q'))
        

        One useful, but weaker version is:

        (p') |-tla- (p) → (q) |-tla- (q') → (p ↝ q) |-tla- (p' ↝ q')
        

        which is derived by repeatly applying impl_decouple, impl_intro and always_intro.

        Another useful and equivalent version is:

        ∀ Γ, (Γ) |-tla- (p' ⇒ p) → (Γ) |-tla- (q ⇒ q') → (Γ) |-tla- ((p ↝ q) ⇒ (p' ↝ q'))
        

        which can be used in case we want to keep the context Γ.

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

          For a TLA theorem with this attribute in the form of a single TLA.predImplies or TLA.valid, its different variants will be derived. See the docstring of TLA.Deriving.deriveForPredImpliesOrValid for more details.

          Equations
          Instances For