Documentation

GL.Logic.Syntax

Syntax of Basic Modal Logic #

Here we supply basic definitions, abbreviations, and lemmas about the syntax of BML.

inductive Formula :

Type of BML Formulas.

Instances For
    Equations
    Instances For
      def instDecidableEqFormula.decEq (x✝ x✝¹ : Formula) :
      Decidable (x✝ = x✝¹)
      Equations
      Instances For
        @[reducible, inline]
        abbrev Sequent :

        A sequent is a finite set of formulas, read disjunctively.

        Equations
        Instances For

          Negation of a BML Formula.

          Equations
          Instances For

            Basic operations and simp lemmas for Formulas #

            Returns true if the formula is a propositional atom at n.

            Equations
            Instances For

              Returns true if the formula is a negated atom na n.

              Equations
              Instances For

                Returns true if the formula is a diamond formula ◇ φ.

                Equations
                Instances For

                  Returns some φ if the formula is ◇ φ, otherwise none.

                  Equations
                  Instances For
                    @[simp]
                    theorem Formula.opUnDi_eq {φ ψ : Formula} :
                    φ.opUnDi = some ψ φ = ψ

                    Extracts φ from ◇ φ, given a proof that the formula is a diamond.

                    Equations
                    Instances For

                      Returns true if the formula is a box formula □ φ.

                      Equations
                      Instances For
                        @[simp]
                        theorem Formula.neg_eq {φ ψ : Formula} :
                        (~φ) = (~ψ) → φ = ψ

                        Negation is injective.

                        @[simp]
                        theorem Formula.neg_neg_eq (φ : Formula) :
                        (~~φ) = φ

                        Negation is involutive.

                        Length of a BML Formula.

                        Equations
                        Instances For

                          Vocab of a BML Formula. Expressed as underlying natural numbers.

                          Equations
                          Instances For

                            Atoms of a BML Formula. Expressed as underlying natural numbers.

                            Equations
                            Instances For

                              Literals of a BML Formula. Expressed as underlying natural numbers.

                              Equations
                              Instances For

                                Get a fresh variable not occuring in a BML Formula.

                                Equations
                                Instances For

                                  Fischer-Ladner closure of a BML Formula.

                                  Equations
                                  Instances For

                                    Lemmas about FL Closure of BML Formulas #

                                    theorem Formula.FL_refl {φ : Formula} :
                                    φ φ.FL

                                    Fischer-Ladner closure is reflexive.

                                    theorem Formula.FL_mon {φ ψ : Formula} (ψ_sub_φ : ψ φ.FL) :
                                    ψ.FL φ.FL

                                    Fischer-Ladner closure is monotone.

                                    Basic operations and simp lemmas for Sequents #

                                    Length of a sequent.

                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        Equations
                                        Instances For
                                          Equations
                                          Instances For
                                            Equations
                                            Instances For

                                              Fischer-Ladner closure of a sequent.

                                              Equations
                                              Instances For

                                                Lemmas about FL Closure of Sequents #

                                                theorem Sequent.FL_refl {Δ : Sequent} :
                                                Δ Δ.FL
                                                theorem Sequent.FL_mon {Δ Γ : Sequent} (Δ_sub_Γ : Δ Γ) :
                                                Δ.FL Γ.FL
                                                theorem Sequent.FL_idem {Δ : Sequent} :
                                                Δ.FL.FL = Δ.FL
                                                @[reducible, inline]
                                                Equations
                                                Instances For
                                                  @[reducible, inline]
                                                  Equations
                                                  Instances For

                                                    Basic operations and simp lemmas for Split Sequents #

                                                    Lemmas about FL Closure of Split Formulas #

                                                    theorem SplitFormula.FL_refl {φ : SplitFormula} :
                                                    φ φ.FL

                                                    Fischer-Ladner Closure is reflexive.

                                                    theorem SplitFormula.FL_mon {φ ψ : SplitFormula} (ψ_sub_φ : ψ φ.FL) :
                                                    ψ.FL φ.FL

                                                    Fischer-Ladner Closure is monotone.

                                                    Lemmas about FL Closure of Split Sequents #

                                                    theorem SplitSequent.FL_refl {Δ : SplitSequent} :
                                                    Δ Δ.FL

                                                    Fischer-Ladner Closure is reflexive.

                                                    theorem SplitSequent.FL_mon {Δ Γ : SplitSequent} (Δ_sub_Γ : Δ Γ) :
                                                    Δ.FL Γ.FL

                                                    Fischer-Ladner Closure is monotone.

                                                    theorem SplitSequent.FL_idem {Δ : SplitSequent} :
                                                    Δ.FL.FL = Δ.FL

                                                    Fischer-Ladner Closure is idempotent.

                                                    □₄⁻¹ operator for Split Sequents.

                                                    Equations
                                                    Instances For

                                                      Basic operations and simp lemmas for Split Sequents #

                                                      Find underlying Sequent of a Split Sequent.

                                                      Equations
                                                      Instances For

                                                        Length of a Split Sequent.

                                                        Equations
                                                        Instances For
                                                          Equations
                                                          Instances For
                                                            Equations
                                                            Instances For

                                                              Properties of Substitutions #

                                                              def single (n : ) (ψ : Formula) :

                                                              Substiting p with ψ in φ (φ[ψ/p]). -

                                                              Equations
                                                              Instances For
                                                                theorem single_neg (n : ) (φ ψ : Formula) :
                                                                single n ψ (~φ) = (~single n ψ φ)
                                                                theorem single_imp (n : ) (C D E : Formula) :
                                                                single n C (~D v E) = (~single n C D v single n C E)
                                                                theorem single_iff (n : ) (C D E : Formula) :
                                                                single n C ((~D v E)&~E v D) = ((~single n C D v single n C E)&~single n C E v single n C D)
                                                                @[simp]
                                                                theorem single_identity (n : ) (φ : Formula) :
                                                                single n (at n) φ = φ
                                                                def partial_ {c : Prop} [DecidablePred c] (σ : Subtype cFormula) :

                                                                Simultaneous substitution for p meeting criteria c. -

                                                                Equations
                                                                Instances For
                                                                  @[irreducible]
                                                                  def full (σ : Formula) (A : Formula) :

                                                                  Full substitution of all p.

                                                                  Equations
                                                                  Instances For

                                                                    Properties of Vocab #

                                                                    @[simp]
                                                                    theorem in_neg_voc_iff {n : } {φ : Formula} :
                                                                    n (~φ).vocab n φ.vocab
                                                                    theorem in_single_voc (m n : ) (φ ψ : Formula) :
                                                                    mφ.vocab(m nmψ.vocab)nφ.vocabm(single n φ ψ).vocab
                                                                    theorem not_in_single_voc (n : ) (φ ψ : Formula) :
                                                                    nφ.vocabsingle n ψ φ = φ
                                                                    theorem not_in_single_top_voc (n : ) (φ : Formula) :
                                                                    n(single n φ).vocab
                                                                    theorem not_in_single_bot_voc (n : ) (φ : Formula) :
                                                                    n(single n φ).vocab
                                                                    theorem in_single_voc' {m n : } {φ ψ : Formula} :
                                                                    m (single n φ ψ).vocabm φ.vocab n ψ.vocab m ψ.vocab m n

                                                                    Some very specific lemmas about Finset.sum #

                                                                    Ideally grind or aesop or some other tactic could sort out these simple helper lemmas, but I could not figure out how.

                                                                    theorem sub_add_left {n m l : } :
                                                                    n + m = ln = l - m
                                                                    theorem lt_and_le_imp_add_lt {a b c : } :
                                                                    b ac < ba - b + c < a
                                                                    theorem Finset.sum_diff_singleton_lt {α : Type} [DecidableEq α] {A C : Finset α} {b : α} {f : α} :
                                                                    b AC.sum f < f b(A \ {b} C).sum f < A.sum f