Documentation

Foundation.FirstOrder.Basic.Syntax.Formula

Formulas of first-order logic #

This file defines the formulas of first-order logic.

φ : Semiformula L ξ n is a (semi-)formula of language L with bounded variables of Fin n and free variables of ξ. The quantification is represented by de Bruijn index.

inductive LO.FirstOrder.Semiformula (L : Language) (ξ : Type u_1) :
Type (max u_1 u_2)

A semiformula of language L. Free variables are of type ξ, and bound variables are implemented as de Bruijn indices, of a type Fin n separate from free variables.

Instances For
    @[reducible, inline]
    abbrev LO.FirstOrder.Formula (L : Language) (ξ : Type u_1) :
    Type (max u_1 u_2)
    Equations
    Instances For
      @[reducible, inline]
      Equations
      Instances For
        @[reducible, inline]
        Equations
        Instances For
          @[reducible, inline]
          Equations
          Instances For
            @[reducible, inline]
            Equations
            Instances For
              theorem LO.FirstOrder.Semiformula.neg_neg {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
              φ.neg.neg = φ
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              def LO.FirstOrder.Semiformula.toStr {L : Language} {ξ : Type u_1} [(k : ) → ToString (L.Func k)] [(k : ) → ToString (L.Rel k)] [ToString ξ] {n : } :
              Semiformula L ξ nString
              Equations
              Instances For
                @[implicit_reducible]
                instance LO.FirstOrder.Semiformula.instRepr {L : Language} {ξ : Type u_1} {n : } [(k : ) → ToString (L.Func k)] [(k : ) → ToString (L.Rel k)] [ToString ξ] :
                Repr (Semiformula L ξ n)
                Equations
                @[implicit_reducible]
                instance LO.FirstOrder.Semiformula.instToString {L : Language} {ξ : Type u_1} {n : } [(k : ) → ToString (L.Func k)] [(k : ) → ToString (L.Rel k)] [ToString ξ] :
                Equations
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_rel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                rel r v = nrel r v
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_nrel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                nrel r v = rel r v
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_all {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_ex {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_inj {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                φ = ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_allClosure {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_exsClosure {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
                theorem LO.FirstOrder.Semiformula.neg_eq {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
                φ = φ.neg
                theorem LO.FirstOrder.Semiformula.imp_eq {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                φ 🡒 ψ = φ ψ
                theorem LO.FirstOrder.Semiformula.iff_eq {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                φ 🡘 ψ = (φ ψ) (ψ φ)
                theorem LO.FirstOrder.Semiformula.ball_eq {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ (n + 1)) :
                (∀⁰[φ] ψ) = ∀⁰ (φ 🡒 ψ)
                theorem LO.FirstOrder.Semiformula.bexs_eq {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ (n + 1)) :
                (∃⁰[φ] ψ) = ∃⁰ φ ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_ball {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ (n + 1)) :
                @[simp]
                theorem LO.FirstOrder.Semiformula.neg_bexs {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ (n + 1)) :
                @[simp]
                theorem LO.FirstOrder.Semiformula.and_inj {L : Language} {ξ : Type u_1} {n : } (φ₁ ψ₁ φ₂ ψ₂ : Semiformula L ξ n) :
                φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
                @[simp]
                theorem LO.FirstOrder.Semiformula.or_inj {L : Language} {ξ : Type u_1} {n : } (φ₁ ψ₁ φ₂ ψ₂ : Semiformula L ξ n) :
                φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
                @[simp]
                theorem LO.FirstOrder.Semiformula.all_inj {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ (n + 1)) :
                ∀⁰ φ = ∀⁰ ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.exs_inj {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ (n + 1)) :
                ∃⁰ φ = ∃⁰ ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.allClosure_inj {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                ∀⁰* φ = ∀⁰* ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.exsClosure_inj {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                ∃⁰* φ = ∃⁰* ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.allItr_inj {L : Language} {ξ : Type u_1} {n k : } (φ ψ : Semiformula L ξ (n + k)) :
                ∀⁰^[k] φ = ∀⁰^[k] ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.exsItr_inj {L : Language} {ξ : Type u_1} {n k : } (φ ψ : Semiformula L ξ (n + k)) :
                ∃⁰^[k] φ = ∃⁰^[k] ψ φ = ψ
                @[simp]
                theorem LO.FirstOrder.Semiformula.imp_inj {L : Language} {ξ : Type u_1} {n : } {φ₁ φ₂ ψ₁ ψ₂ : Semiformula L ξ n} :
                φ₁ 🡒 φ₂ = ψ₁ 🡒 ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
                @[reducible, inline]
                abbrev LO.FirstOrder.Semiformula.rel! {ξ : Type u_1} {n : } (L : Language) (k : ) (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                Equations
                Instances For
                  @[reducible, inline]
                  abbrev LO.FirstOrder.Semiformula.nrel! {ξ : Type u_1} {n : } (L : Language) (k : ) (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                  Equations
                  Instances For
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_rel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                    (rel r v).complexity = 0
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_nrel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                    (nrel r v).complexity = 0
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_and {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_and' {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_or {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_or' {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_all {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_all' {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_exs {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                    @[simp]
                    theorem LO.FirstOrder.Semiformula.complexity_exs' {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                    def LO.FirstOrder.Semiformula.cases' {L : Language} {ξ : Type u_1} {C : (n : ) → Semiformula L ξ nSort w} (hverum : {n : } → C n ) (hfalsum : {n : } → C n ) (hrel : {n k : } → (r : L.Rel k) → (v : Fin kSemiterm L ξ n) → C n (rel r v)) (hnrel : {n k : } → (r : L.Rel k) → (v : Fin kSemiterm L ξ n) → C n (nrel r v)) (hand : {n : } → (φ ψ : Semiformula L ξ n) → C n (φ ψ)) (hor : {n : } → (φ ψ : Semiformula L ξ n) → C n (φ ψ)) (hall : {n : } → (φ : Semiformula L ξ (n + 1)) → C n (∀⁰ φ)) (hexs : {n : } → (φ : Semiformula L ξ (n + 1)) → C n (∃⁰ φ)) {n : } (φ : Semiformula L ξ n) :
                    C n φ
                    Equations
                    Instances For
                      def LO.FirstOrder.Semiformula.rec' {L : Language} {ξ : Type u_1} {C : (n : ) → Semiformula L ξ nSort w} (hverum : {n : } → C n ) (hfalsum : {n : } → C n ) (hrel : {n k : } → (r : L.Rel k) → (v : Fin kSemiterm L ξ n) → C n (rel r v)) (hnrel : {n k : } → (r : L.Rel k) → (v : Fin kSemiterm L ξ n) → C n (nrel r v)) (hand : {n : } → (φ ψ : Semiformula L ξ n) → C n φC n ψC n (φ ψ)) (hor : {n : } → (φ ψ : Semiformula L ξ n) → C n φC n ψC n (φ ψ)) (hall : {n : } → (φ : Semiformula L ξ (n + 1)) → C (n + 1) φC n (∀⁰ φ)) (hexs : {n : } → (φ : Semiformula L ξ (n + 1)) → C (n + 1) φC n (∃⁰ φ)) {n : } (φ : Semiformula L ξ n) :
                      C n φ
                      Equations
                      Instances For
                        @[simp]
                        theorem LO.FirstOrder.Semiformula.complexity_neg {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
                        def LO.FirstOrder.Semiformula.hasDecEq {L : Language} {ξ : Type u_1} [L.DecidableEq] [DecidableEq ξ] {n : } (φ ψ : Semiformula L ξ n) :
                        Decidable (φ = ψ)
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Quantifier rank

                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_top {L : Language} {ξ : Type u_1} {n : } :
                          .qr = 0
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_bot {L : Language} {ξ : Type u_1} {n : } :
                          .qr = 0
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_rel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                          (rel r v).qr = 0
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_nrel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                          (nrel r v).qr = 0
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_and {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                          (φ ψ).qr = max φ.qr ψ.qr
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_or {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                          (φ ψ).qr = max φ.qr ψ.qr
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_all {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                          (∀⁰ φ).qr = φ.qr + 1
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_exs {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ (n + 1)) :
                          (∃⁰ φ).qr = φ.qr + 1
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_neg {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
                          (φ).qr = φ.qr
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_imply {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                          (φ 🡒 ψ).qr = max φ.qr ψ.qr
                          @[simp]
                          theorem LO.FirstOrder.Semiformula.qr_iff {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                          (φ 🡘 ψ).qr = max φ.qr ψ.qr

                          Open (Semi-)Formula

                          def LO.FirstOrder.Semiformula.Open {L : Language} {ξ : Type u_1} {n : } (φ : Semiformula L ξ n) :
                          Equations
                          Instances For
                            @[simp]
                            @[simp]
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_rel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                            (rel r v).Open
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_nrel {L : Language} {ξ : Type u_1} {n k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                            (nrel r v).Open
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_and {L : Language} {ξ : Type u_1} {n : } {φ ψ : Semiformula L ξ n} :
                            (φ ψ).Open φ.Open ψ.Open
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_or {L : Language} {ξ : Type u_1} {n : } {φ ψ : Semiformula L ξ n} :
                            (φ ψ).Open φ.Open ψ.Open
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.not_open_all {L : Language} {ξ : Type u_1} {n : } {φ : Semiformula L ξ (n + 1)} :
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.not_open_exs {L : Language} {ξ : Type u_1} {n : } {φ : Semiformula L ξ (n + 1)} :
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_neg {L : Language} {ξ : Type u_1} {n : } {φ : Semiformula L ξ n} :
                            (φ).Open φ.Open
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_imply {L : Language} {ξ : Type u_1} {n : } {φ ψ : Semiformula L ξ n} :
                            (φ 🡒 ψ).Open φ.Open ψ.Open
                            @[simp]
                            theorem LO.FirstOrder.Semiformula.open_iff {L : Language} {ξ : Type u_1} {n : } {φ ψ : Semiformula L ξ n} :
                            (φ 🡘 ψ).Open φ.Open ψ.Open

                            Free Variables

                            theorem LO.FirstOrder.Semiformula.freeVariables_rel {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] {k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                            theorem LO.FirstOrder.Semiformula.freeVariables_nrel {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] {k : } (r : L.Rel k) (v : Fin kSemiterm L ξ n) :
                            @[simp]
                            @[simp]
                            @[simp]
                            @[reducible, inline]
                            abbrev LO.FirstOrder.Semiformula.FVar? {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (φ : Semiformula L ξ n) (x : ξ) :
                            Equations
                            Instances For
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_rel {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] {x : ξ} {k : } {R : L.Rel k} {v : Fin kSemiterm L ξ n} :
                              (rel R v).FVar? x ∃ (i : Fin k), (v i).FVar? x
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_nrel {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] {x : ξ} {k : } {R : L.Rel k} {v : Fin kSemiterm L ξ n} :
                              (nrel R v).FVar? x ∃ (i : Fin k), (v i).FVar? x
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_top {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) :
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_falsum {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) :
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_and {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) (φ ψ : Semiformula L ξ n) :
                              (φ ψ).FVar? x φ.FVar? x ψ.FVar? x
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_or {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) (φ ψ : Semiformula L ξ n) :
                              (φ ψ).FVar? x φ.FVar? x ψ.FVar? x
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_all {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) (φ : Semiformula L ξ (n + 1)) :
                              (∀⁰ φ).FVar? x φ.FVar? x
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_exs {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) (φ : Semiformula L ξ (n + 1)) :
                              (∃⁰ φ).FVar? x φ.FVar? x
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.fvar?_allClosure {L : Language} {ξ : Type u_1} {n : } [DecidableEq ξ] (x : ξ) (φ : Semiformula L ξ n) :
                              (∀⁰* φ).FVar? x φ.FVar? x
                              theorem LO.FirstOrder.Semiformula.List.maximam?_eq_some {α : Type u_5} [LinearOrder α] [Std.LawfulOrderSup α] {l : List α} {a : α} (h : l.max? = some a) (x : α) :
                              x lx a
                              theorem LO.FirstOrder.Semiformula.ne_of_ne_complexity {L : Language} {ξ : Type u_1} {n : } {φ ψ : Semiformula L ξ n} (h : φ.complexity ψ.complexity) :
                              φ ψ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.ne_or_left {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                              φ φ ψ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.ne_or_right {L : Language} {ξ : Type u_1} {n : } (φ ψ : Semiformula L ξ n) :
                              ψ φ ψ
                              theorem LO.FirstOrder.Semiformula.lMapAux_neg {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} {n : } (φ : Semiformula L₁ ξ n) :
                              lMapAux Φ (φ) = lMapAux Φ φ
                              def LO.FirstOrder.Semiformula.lMap {L₁ : Language} {L₂ : Language} {ξ : Type u_5} (Φ : L₁.Hom L₂) {n : } :
                              Semiformula L₁ ξ n →ˡᶜ Semiformula L₂ ξ n

                              The map on semiformulas induced by a homomorphism between languages.

                              Equations
                              Instances For
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_rel {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} {k : } (r : L₁.Rel k) (v : Fin kSemiterm L₁ ξ n) :
                                (lMap Φ) (rel r v) = rel (Φ.rel r) (Semiterm.lMap Φ v)
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_nrel {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} {k : } (r : L₁.Rel k) (v : Fin kSemiterm L₁ ξ n) :
                                (lMap Φ) (nrel r v) = nrel (Φ.rel r) (Semiterm.lMap Φ v)
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_all {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} (φ : Semiformula L₁ ξ (n + 1)) :
                                (lMap Φ) (∀⁰ φ) = ∀⁰ (lMap Φ) φ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_exs {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} (φ : Semiformula L₁ ξ (n + 1)) :
                                (lMap Φ) (∃⁰ φ) = ∃⁰ (lMap Φ) φ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_ball {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} (φ ψ : Semiformula L₁ ξ (n + 1)) :
                                (lMap Φ) (∀⁰[φ] ψ) = ∀⁰[(lMap Φ) φ] (lMap Φ) ψ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_bexs {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} (φ ψ : Semiformula L₁ ξ (n + 1)) :
                                (lMap Φ) (∃⁰[φ] ψ) = ∃⁰[(lMap Φ) φ] (lMap Φ) ψ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_allClosure {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} (φ : Semiformula L₁ ξ n) :
                                (lMap Φ) (∀⁰* φ) = ∀⁰* (lMap Φ) φ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_exsClosure {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} (φ : Semiformula L₁ ξ n) :
                                (lMap Φ) (∃⁰* φ) = ∃⁰* (lMap Φ) φ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_allItr {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} {k : } (φ : Semiformula L₁ ξ (n + k)) :
                                (lMap Φ) (∀⁰^[k] φ) = ∀⁰^[k] (lMap Φ) φ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.lMap_exsItr {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} {Φ : L₁.Hom L₂} {k : } (φ : Semiformula L₁ ξ (n + k)) :
                                (lMap Φ) (∃⁰^[k] φ) = ∃⁰^[k] (lMap Φ) φ
                                @[simp]
                                theorem LO.FirstOrder.Semiformula.freeVariables_lMap {n : } {L₁ : Language} {L₂ : Language} {ξ : Type u_5} [DecidableEq ξ] (Φ : L₁.Hom L₂) (φ : Semiformula L₁ ξ n) :
                                def LO.FirstOrder.Semiformula.idxOfFVar {n : } {L : Language} {ξ : Type u_5} [DecidableEq ξ] (φ : Semiformula L ξ n) :
                                ξ
                                Equations
                                Instances For
                                  def LO.FirstOrder.Semiformula.enumarateFVar {n : } {L : Language} {ξ : Type u_5} [Inhabited ξ] (φ : Semiformula L ξ n) :
                                  ξ
                                  Equations
                                  Instances For
                                    theorem LO.FirstOrder.Semiformula.enumarateFVar_idxOfFVar {n : } {L : Language} {ξ : Type u_5} [DecidableEq ξ] [Inhabited ξ] {φ : Semiformula L ξ n} {x : ξ} (hx : x φ.fvarList) :
                                    theorem LO.FirstOrder.Semiformula.mem_fvarList_iff_fvar? {n : } {L : Language} {ξ : Type u_5} {x : ξ} [DecidableEq ξ] {φ : Semiformula L ξ n} :
                                    x φ.fvarList φ.FVar? x
                                    @[reducible, inline]
                                    Equations
                                    Instances For
                                      def LO.FirstOrder.Theory.lMap {L₁ : Language} {L₂ : Language} (Φ : L₁.Hom L₂) (T : Theory L₁) :
                                      Theory L₂
                                      Equations
                                      Instances For