Documentation

MathematicalLogic.FirstOrder.Theories.Order.Theory

Theory of orders #

This file formalizes the basic theories of orders -- the theory of partial order PO and the theory of linear (total) order LO.

Design note #

We always use less-equal and less-than for orders, and do not define greater-equal or greater-than . When naming theorems, we may use ge or gt when it is actually le or lt (e.g. LO.lt_or_ge is the lt_or_le in Mathlib).

Language with two binary formulas that represent less-equal and less-than .

Instances
    def FirstOrder.Language.Order.le {n : } {L : Language} [L.Order] (t₁ t₂ : L.Term n) :
    Equations
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem FirstOrder.Language.Order.subst_le {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} {m✝ : } {σ : L.Subst n m✝} :
        (t₁ t₂)[σ]ₚ = t₁[σ]ₜ t₂[σ]ₜ
        def FirstOrder.Language.Order.lt {n : } {L : Language} [L.Order] (t₁ t₂ : L.Term n) :
        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem FirstOrder.Language.Order.subst_lt {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} {m✝ : } {σ : L.Subst n m✝} :
            (t₁ t₂)[σ]ₚ = t₁[σ]ₜ t₂[σ]ₜ
            def FirstOrder.Language.Order.bdall {n : } {L : Language} [L.Order] (t : L.Term n) (p : L.Formula (n + 1)) :

            Bounded forall.

            Equations
            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem FirstOrder.Language.Order.subst_bdall {n : } {L : Language} [L.Order] {t : L.Term n} {p : L.Formula (n + 1)} {m✝ : } {σ : L.Subst n m✝} :
                def FirstOrder.Language.Order.bdex {n : } {L : Language} [L.Order] (t : L.Term n) (p : L.Formula (n + 1)) :

                Bounded exists.

                Equations
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem FirstOrder.Language.Order.subst_bdex {n : } {L : Language} [L.Order] {t : L.Term n} {p : L.Formula (n + 1)} {m✝ : } {σ : L.Subst n m✝} :
                    theorem FirstOrder.Language.Order.iff_congr_le {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} {Γ : L.FormulaSet n} {t₁' t₂' : L.Term n} :
                    Γt₁ t₁' t₂ t₂' t₁ t₂ t₁' t₂'
                    theorem FirstOrder.Language.Order.iff_congr_lt {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} {Γ : L.FormulaSet n} {t₁' t₂' : L.Term n} :
                    Γt₁ t₁' t₂ t₂' t₁ t₂ t₁' t₂'
                    theorem FirstOrder.Language.Order.iff_congr_bdall {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} {Γ : L.FormulaSet n} {p : L.Formula (n + 1)} :
                    Γt₁ t₂ ∀[ t₁] p ∀[ t₂] p
                    theorem FirstOrder.Language.Order.iff_congr_bdex {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} {Γ : L.FormulaSet n} {p : L.Formula (n + 1)} :
                    Γt₁ t₂ ∃[ t₁] p ∃[ t₂] p
                    theorem FirstOrder.Language.Order.neg_bdall_iff {n : } {L : Language} [L.Order] {t : L.Term n} {Γ : L.FormulaSet n} {p : L.Formula (n + 1)} :
                    Γ~ ∀[ t] p ∃[ t] (~ p)
                    theorem FirstOrder.Language.Order.neg_bdex_iff {n : } {L : Language} [L.Order] {t : L.Term n} {Γ : L.FormulaSet n} {p : L.Formula (n + 1)} :
                    Γ~ ∃[ t] p ∀[ t] (~ p)

                    The language of order, with only two binary relations, and .

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

                      Theory of partial order.

                      Instances For
                        theorem FirstOrder.Language.Theory.PO.le_antisymm {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₂ t₁ t₁ t₂
                        theorem FirstOrder.Language.Theory.PO.le_trans {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₂ t₃ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.lt_iff_le_not_ge {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₁ t₂ ~ t₂ t₁
                        theorem FirstOrder.Language.Theory.PO.le_trans' {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₂ t₃ t₁ t₂ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.le_of_lt {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₁ t₂
                        theorem FirstOrder.Language.Theory.PO.not_ge_of_lt {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ ~ t₂ t₁
                        theorem FirstOrder.Language.Theory.PO.not_gt_of_le {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ ~ t₂ t₁
                        theorem FirstOrder.Language.Theory.PO.lt_iff_le_and_ne {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₁ t₂ ~ t₁ t₂
                        theorem FirstOrder.Language.Theory.PO.ne_of_lt {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ ~ t₁ t₂
                        theorem FirstOrder.Language.Theory.PO.le_iff_lt_or_eq {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₁ t₂ t₁ t₂
                        theorem FirstOrder.Language.Theory.PO.lt_of_lt_of_le {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₂ t₃ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.lt_of_le_of_lt {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₂ t₃ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.lt_of_lt_of_le' {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₂ t₃ t₁ t₂ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.lt_of_le_of_lt' {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₂ t₃ t₁ t₂ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.lt_asymm {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ ~ t₂ t₁
                        theorem FirstOrder.Language.Theory.PO.lt_trans {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₁ t₂ t₂ t₃ t₁ t₃
                        theorem FirstOrder.Language.Theory.PO.lt_trans' {n : } {L : Language} [L.Order] {t₁ t₂ t₃ : L.Term n} :
                        ↑ᵀ^[n] POt₂ t₃ t₁ t₂ t₁ t₃

                        Theory of linear order.

                        Instances For
                          theorem FirstOrder.Language.Theory.LO.le_total {n : } {L : Language} [L.Order] (t₁ t₂ : L.Term n) :
                          ↑ᵀ^[n] LOt₁ t₂ t₂ t₁
                          theorem FirstOrder.Language.Theory.LO.neg_le_iff {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                          ↑ᵀ^[n] LO~ t₁ t₂ t₂ t₁
                          theorem FirstOrder.Language.Theory.LO.neg_lt_iff {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                          ↑ᵀ^[n] LO~ t₁ t₂ t₂ t₁
                          theorem FirstOrder.Language.Theory.LO.le_or_gt {n : } {L : Language} [L.Order] (t₁ t₂ : L.Term n) :
                          ↑ᵀ^[n] LOt₁ t₂ t₂ t₁
                          theorem FirstOrder.Language.Theory.LO.lt_or_ge {n : } {L : Language} [L.Order] (t₁ t₂ : L.Term n) :
                          ↑ᵀ^[n] LOt₁ t₂ t₂ t₁
                          theorem FirstOrder.Language.Theory.LO.lt_trichotomy {n : } {L : Language} [L.Order] (t₁ t₂ : L.Term n) :
                          ↑ᵀ^[n] LOt₁ t₂ t₁ t₂ t₂ t₁
                          theorem FirstOrder.Language.Theory.LO.ne_iff_lt_or_gt {n : } {L : Language} [L.Order] {t₁ t₂ : L.Term n} :
                          ↑ᵀ^[n] LO~ t₁ t₂ t₁ t₂ t₂ t₁