Documentation

Foundation.Modal.Hilbert.Basic

structure LO.Modal.Hilbert.InferenceRule (α : Type u_2) :
Type u_2

instance of inference rule

  • antecedents : List (LO.Modal.Formula α)
  • consequence : LO.Modal.Formula α
  • antecedents_nonempty : self.antecedents []

    Empty antecedent rule can be simply regarded as axiom rule. However, union of all these rules including to Hilbert.rules would be too complex for implementation and induction, so more than one antecedent is required.

Instances For
    @[reducible, inline]
    Equations
    Instances For
      @[reducible, inline]
      Equations
      Instances For
        @[reducible, inline]
        Equations
        Instances For
          structure LO.Modal.Hilbert (α : Type u_2) :
          Type u_2
          Instances For
            inductive LO.Modal.Hilbert.Deduction {α : Type u_1} (H : LO.Modal.Hilbert α) :
            Instances For
              Equations
              • LO.Modal.Hilbert.Deduction.instSystemFormula = { Prf := LO.Modal.Hilbert.Deduction }
              Equations
              • LO.Modal.Hilbert.Deduction.instLukasiewiczFormula = LO.System.Lukasiewicz.mk
              Equations
              • LO.Modal.Hilbert.Deduction.instClassicalFormula = LO.System.Classical.mk
              Equations
              • LO.Modal.Hilbert.Deduction.instHasDiaDualityFormula = inferInstance
              theorem LO.Modal.Hilbert.Deduction.maxm! {α : Type u_1} {H : LO.Modal.Hilbert α} {φ : LO.Modal.Formula α} (h : φ H.axioms) :
              H ⊢! φ
              Instances
                Equations
                • One or more equations did not get rendered due to their size.
                Instances
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances
                      instance LO.Modal.Hilbert.instHasNecessitationOfHasNecOnly {α : Type u_1} {H : LO.Modal.Hilbert α} [h : H.HasNecOnly] :
                      H.HasNecessitation
                      Equations
                      • =
                      Instances
                        Equations
                        class LO.Modal.Hilbert.IsNormal {α : Type u_1} (H : LO.Modal.Hilbert α) extends H.HasNecOnly, H.HasAxiomK :
                        Instances
                          instance LO.Modal.Hilbert.instKFormulaOfIsNormal {α : Type u_1} {H : LO.Modal.Hilbert α} [H.IsNormal] :
                          Equations
                          • LO.Modal.Hilbert.instKFormulaOfIsNormal = LO.System.K.mk
                          noncomputable def LO.Modal.Hilbert.Deduction.inducition! {α : Type u_1} {H : LO.Modal.Hilbert α} {motive : (φ : LO.Modal.Formula α) → H ⊢! φSort u_2} (hRules : (r : LO.Modal.Hilbert.InferenceRule α) → (hr : r H.rules) → (hant : ∀ {φ : LO.Modal.Formula α}, φ r.antecedentsH ⊢! φ) → ({φ : LO.Modal.Formula α} → (hp : φ r.antecedents) → motive φ )motive r.consequence ) (hMaxm : {φ : LO.Modal.Formula α} → (h : φ H.axioms) → motive φ ) (hMdp : {φ ψ : LO.Modal.Formula α} → {hpq : H ⊢! φ ψ} → {hp : H ⊢! φ} → motive (φ ψ) hpqmotive φ hpmotive ψ ) (hImply₁ : {φ ψ : LO.Modal.Formula α} → motive (φ ψ φ) ) (hImply₂ : {φ ψ χ : LO.Modal.Formula α} → motive ((φ ψ χ) (φ ψ) φ χ) ) (hElimContra : {φ ψ : LO.Modal.Formula α} → motive (LO.Axioms.ElimContra φ ψ) ) {φ : LO.Modal.Formula α} (d : H ⊢! φ) :
                          motive φ d
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            noncomputable def LO.Modal.Hilbert.Deduction.inducition_with_necOnly! {α : Type u_1} {H : LO.Modal.Hilbert α} [H.HasNecOnly] {motive : (φ : LO.Modal.Formula α) → H ⊢! φProp} (hMaxm : ∀ {φ : LO.Modal.Formula α} (h : φ H.axioms), motive φ ) (hMdp : ∀ {φ ψ : LO.Modal.Formula α} {hpq : H ⊢! φ ψ} {hp : H ⊢! φ}, motive (φ ψ) hpqmotive φ hpmotive ψ ) (hNec : ∀ {φ : LO.Modal.Formula α} {hp : H ⊢! φ}, motive φ hpmotive (φ) ) (hImply₁ : ∀ {φ ψ : LO.Modal.Formula α}, motive (φ ψ φ) ) (hImply₂ : ∀ {φ ψ χ : LO.Modal.Formula α}, motive ((φ ψ χ) (φ ψ) φ χ) ) (hElimContra : ∀ {φ ψ : LO.Modal.Formula α}, motive (LO.Axioms.ElimContra φ ψ) ) {φ : LO.Modal.Formula α} (d : H ⊢! φ) :
                            motive φ d

                            Useful induction for normal modal logic.

                            Equations
                            • =
                            Instances For
                              @[reducible, inline]
                              Equations
                              Instances For
                                @[reducible, inline]
                                Equations
                                Instances For
                                  theorem LO.Modal.Hilbert.normal_weakerThan_of_maxm {α : Type u_1} {H₁ H₂ : LO.Modal.Hilbert α} [H₁.IsNormal] [H₂.IsNormal] (hMaxm : ∀ {φ : LO.Modal.Formula α}, φ H₁.axiomsH₂ ⊢! φ) :
                                  H₁ ≤ₛ H₂
                                  theorem LO.Modal.Hilbert.normal_weakerThan_of_subset {α : Type u_1} {H₁ H₂ : LO.Modal.Hilbert α} [H₁.IsNormal] [H₂.IsNormal] (hSubset : H₁.axioms H₂.axioms) :
                                  H₁ ≤ₛ H₂