Documentation

Foundation.FirstOrder.Basic.Semantics.Semantics

Semantics of first-order logic #

This file defines the structure and the evaluation of terms and formulas by Tarski's truth definition.

theorem LO.FirstOrder.Structure.ext {L : LO.FirstOrder.Language} {M : Type w} (x : LO.FirstOrder.Structure L M) (y : LO.FirstOrder.Structure L M) (func : LO.FirstOrder.Structure.func = LO.FirstOrder.Structure.func) (rel : LO.FirstOrder.Structure.rel = LO.FirstOrder.Structure.rel) :
x = y
theorem LO.FirstOrder.Structure.ext_iff {L : LO.FirstOrder.Language} {M : Type w} (x : LO.FirstOrder.Structure L M) (y : LO.FirstOrder.Structure L M) :
x = y LO.FirstOrder.Structure.func = LO.FirstOrder.Structure.func LO.FirstOrder.Structure.rel = LO.FirstOrder.Structure.rel
  • func : k : ⦄ → L.Func k(Fin kM)M
  • rel : k : ⦄ → L.Rel k(Fin kM)Prop
Instances
    structure LO.FirstOrder.Struc (L : LO.FirstOrder.Language) :
    Type (max (u_1 + 1) u_2)
    Instances For
      @[reducible, inline]
      Equations
      Instances For
        Equations
        Instances For
          @[simp]
          theorem LO.FirstOrder.Structure.lMap_func {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (φ : L₁.Hom L₂) {M : Type w} (s₂ : LO.FirstOrder.Structure L₂ M) {k : } {f : L₁.Func k} {v : Fin kM} :
          @[simp]
          theorem LO.FirstOrder.Structure.lMap_rel {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (φ : L₁.Hom L₂) {M : Type w} (s₂ : LO.FirstOrder.Structure L₂ M) {k : } {r : L₁.Rel k} {v : Fin kM} :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]
            Equations
            Instances For
              @[reducible]
              Equations
              • s.toStruc = { Dom := M, nonempty := i, struc := s }
              Instances For
                @[reducible, inline]
                Equations
                Instances For
                  @[reducible, inline]
                  abbrev LO.FirstOrder.Semiterm.valm {L : LO.FirstOrder.Language} {ξ : Type v} (M : Type w) [s : LO.FirstOrder.Structure L M] {n : } (e : Fin nM) (ε : ξM) :
                  Equations
                  Instances For
                    @[reducible, inline]
                    Equations
                    Instances For
                      @[reducible, inline]
                      Equations
                      Instances For
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_bvar {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} (x : Fin n) :
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_fvar {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} (x : ξ) :
                        theorem LO.FirstOrder.Semiterm.val_func {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} {k : } (f : L.Func k) (v : Fin kLO.FirstOrder.Semiterm L ξ n) :
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_func₀ {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} (f : L.Func 0) (v : Fin 0LO.FirstOrder.Semiterm L ξ n) :
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_rew {n₁ : } {n₂ : } {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {e₂ : Fin n₂M} {ε₂ : μ₂M} (ω : LO.FirstOrder.Rew L μ₁ n₁ μ₂ n₂) (t : LO.FirstOrder.Semiterm L μ₁ n₁) :
                        LO.FirstOrder.Semiterm.val s e₂ ε₂ (ω t) = LO.FirstOrder.Semiterm.val s (LO.FirstOrder.Semiterm.val s e₂ ε₂ ω LO.FirstOrder.Semiterm.bvar) (LO.FirstOrder.Semiterm.val s e₂ ε₂ ω LO.FirstOrder.Semiterm.fvar) t
                        theorem LO.FirstOrder.Semiterm.val_rewrite {n : } {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε₂ : μ₂M} (f : μ₁LO.FirstOrder.Semiterm L μ₂ n) (t : LO.FirstOrder.Semiterm L μ₁ n) :
                        theorem LO.FirstOrder.Semiterm.val_rewriteMap {n : } {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε₂ : μ₂M} (f : μ₁μ₂) (t : LO.FirstOrder.Semiterm L μ₁ n) :
                        LO.FirstOrder.Semiterm.val s e ε₂ ((LO.FirstOrder.Rew.rewriteMap f) t) = LO.FirstOrder.Semiterm.val s e (fun (x : μ₁) => ε₂ (f x)) t
                        theorem LO.FirstOrder.Semiterm.val_substs {n₁ : } {n₂ : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e₂ : Fin n₂M} {ε : ξM} (w : Fin n₁LO.FirstOrder.Semiterm L ξ n₂) (t : LO.FirstOrder.Semiterm L ξ n₁) :
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_bShift {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} (a : M) (t : LO.FirstOrder.Semiterm L ξ n) :
                        LO.FirstOrder.Semiterm.val s (a :> e) ε (LO.FirstOrder.Rew.bShift t) = LO.FirstOrder.Semiterm.val s e ε t
                        theorem LO.FirstOrder.Semiterm.val_bShift' {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {ε : ξM} (e : Fin (n + 1)M) (t : LO.FirstOrder.Semiterm L ξ n) :
                        LO.FirstOrder.Semiterm.val s e ε (LO.FirstOrder.Rew.bShift t) = LO.FirstOrder.Semiterm.val s (fun (x : Fin n) => e x.succ) ε t
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_emb {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} {o : Type v'} [i : IsEmpty o] (t : LO.FirstOrder.Semiterm L o n) :
                        LO.FirstOrder.Semiterm.val s e ε (LO.FirstOrder.Rew.emb t) = LO.FirstOrder.Semiterm.val s e (fun (a : o) => i.elim a) t
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_castLE {n₁ : } {n₂ : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e₂ : Fin n₂M} {ε : ξM} (h : n₁ n₂) (t : LO.FirstOrder.Semiterm L ξ n₁) :
                        LO.FirstOrder.Semiterm.val s e₂ ε ((LO.FirstOrder.Rew.castLE h) t) = LO.FirstOrder.Semiterm.val s (fun (x : Fin n₁) => e₂ (Fin.castLE h x)) ε t
                        theorem LO.FirstOrder.Semiterm.val_embSubsts {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} {k : } (w : Fin kLO.FirstOrder.Semiterm L ξ n) (t : LO.FirstOrder.Semiterm L Empty k) :
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_toS {n : } {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} (t : LO.FirstOrder.Semiterm L (Fin n) 0) :
                        LO.FirstOrder.Semiterm.valb s e (LO.FirstOrder.Rew.toS t) = LO.FirstOrder.Semiterm.val s ![] e t
                        @[simp]
                        theorem LO.FirstOrder.Semiterm.val_toF {n : } {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} (t : LO.FirstOrder.Semiterm L Empty n) :
                        LO.FirstOrder.Semiterm.val s ![] e (LO.FirstOrder.Rew.toF t) = LO.FirstOrder.Semiterm.valb s e t
                        theorem LO.FirstOrder.Semiterm.val_lMap {n : } {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} (φ : L₁.Hom L₂) (s₂ : LO.FirstOrder.Structure L₂ M) (e : Fin nM) (ε : ξM) {t : LO.FirstOrder.Semiterm L₁ ξ n} :
                        theorem LO.FirstOrder.Semiterm.val_shift {n : } {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} (ε : M) (t : LO.FirstOrder.SyntacticSemiterm L n) :
                        LO.FirstOrder.Semiterm.val s e ε (LO.FirstOrder.Rew.shift t) = LO.FirstOrder.Semiterm.val s e (ε Nat.succ) t
                        theorem LO.FirstOrder.Semiterm.val_free {n : } {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} (ε : M) (a : M) (t : LO.FirstOrder.SyntacticSemiterm L (n + 1)) :
                        LO.FirstOrder.Semiterm.val s e (a :>ₙ ε) (LO.FirstOrder.Rew.free t) = LO.FirstOrder.Semiterm.val s (e <: a) ε t
                        theorem LO.FirstOrder.Semiterm.val_fix {n : } {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} (ε : M) (a : M) (t : LO.FirstOrder.SyntacticSemiterm L n) :
                        LO.FirstOrder.Semiterm.val s (e <: a) ε (LO.FirstOrder.Rew.fix t) = LO.FirstOrder.Semiterm.val s e (a :>ₙ ε) t
                        theorem LO.FirstOrder.Semiterm.val_eq_of_funEqOn {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} {ε' : ξM} (t : LO.FirstOrder.Semiterm L ξ n) (h : Function.funEqOn t.fvar? ε ε') :
                        theorem LO.FirstOrder.Semiterm.val_toEmpty {n : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e : Fin nM} {ε : ξM} (t : LO.FirstOrder.Semiterm L ξ n) (h : t.fvarList = []) :
                        theorem LO.FirstOrder.Structure.ofEquiv_func {M : Type u_2} {N : Type u_1} {L : LO.FirstOrder.Language} [s : LO.FirstOrder.Structure L M] (φ : M N) {k : } (f : L.Func k) (v : Fin kN) :
                        theorem LO.FirstOrder.Structure.ofEquiv_val {M : Type u_2} {N : Type u_1} {L : LO.FirstOrder.Language} {ξ : Type v} [s : LO.FirstOrder.Structure L M] (φ : M N) {n : } (e : Fin nN) (ε : ξN) (t : LO.FirstOrder.Semiterm L ξ n) :
                        def LO.FirstOrder.Semiformula.Eval {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {n : } (s : LO.FirstOrder.Structure L M) (e : Fin nM) (ε : ξM) :
                        Equations
                        Instances For
                          @[reducible, inline]
                          abbrev LO.FirstOrder.Semiformula.Evalm {L : LO.FirstOrder.Language} {ξ : Type v} (M : Type w) [s : LO.FirstOrder.Structure L M] {n : } (e : Fin nM) (ε : ξM) :
                          Equations
                          Instances For
                            @[reducible, inline]
                            Equations
                            Instances For
                              @[reducible, inline]
                              Equations
                              Instances For
                                @[reducible, inline]
                                Equations
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    theorem LO.FirstOrder.Semiformula.eval_rel {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {k : } {r : L.Rel k} {v : Fin kLO.FirstOrder.Semiterm L ξ n} :
                                    theorem LO.FirstOrder.Semiformula.Eval.of_eq {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {e' : Fin nM} {ε : ξM} {ε' : ξM} {p : LO.FirstOrder.Semiformula L ξ n} (h : (LO.FirstOrder.Semiformula.Eval s e ε) p) (he : e = e') (hε : ε = ε') :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_rel₀ {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {r : L.Rel 0} :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_rel₂ {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {r : L.Rel 2} (t₁ : LO.FirstOrder.Semiterm L ξ n) (t₂ : LO.FirstOrder.Semiterm L ξ n) :
                                    theorem LO.FirstOrder.Semiformula.eval_nrel {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {k : } {r : L.Rel k} {v : Fin kLO.FirstOrder.Semiterm L ξ n} :
                                    @[simp]
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_nrel₂ {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {r : L.Rel 2} (t₁ : LO.FirstOrder.Semiterm L ξ n) (t₂ : LO.FirstOrder.Semiterm L ξ n) :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_all {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {p : LO.FirstOrder.Semiformula L ξ (n + 1)} :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_ex {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {p : LO.FirstOrder.Semiformula L ξ (n + 1)} :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_ball {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {p : LO.FirstOrder.Semiformula L ξ (n + 1)} {q : LO.FirstOrder.Semiformula L ξ (n + 1)} :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_bex {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {p : LO.FirstOrder.Semiformula L ξ (n + 1)} {q : LO.FirstOrder.Semiformula L ξ (n + 1)} :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_univClosure {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {ε : ξM} {n' : } {e' : Fin 0M} {p : LO.FirstOrder.Semiformula L ξ n'} :
                                    (LO.FirstOrder.Semiformula.Eval s e' ε) (∀* p) ∀ (e : Fin n'M), (LO.FirstOrder.Semiformula.Eval s e ε) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_exClosure {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {ε : ξM} {n' : } {e' : Fin 0M} {p : LO.FirstOrder.Semiformula L ξ n'} :
                                    (LO.FirstOrder.Semiformula.Eval s e' ε) (∃* p) ∃ (e : Fin n'M), (LO.FirstOrder.Semiformula.Eval s e ε) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_univItr {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {ε : ξM} {k : } {e : Fin nM} {p : LO.FirstOrder.Semiformula L ξ (n + k)} :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_exItr {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {ε : ξM} {k : } {e : Fin nM} {p : LO.FirstOrder.Semiformula L ξ (n + k)} :
                                    theorem LO.FirstOrder.Semiformula.eval_rew {n₂ : } {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {e₂ : Fin n₂M} {ε₂ : μ₂M} {n₁ : } (ω : LO.FirstOrder.Rew L μ₁ n₁ μ₂ n₂) (p : LO.FirstOrder.Semiformula L μ₁ n₁) :
                                    (LO.FirstOrder.Semiformula.Eval s e₂ ε₂) (ω.hom p) (LO.FirstOrder.Semiformula.Eval s (LO.FirstOrder.Semiterm.val s e₂ ε₂ ω LO.FirstOrder.Semiterm.bvar) (LO.FirstOrder.Semiterm.val s e₂ ε₂ ω LO.FirstOrder.Semiterm.fvar)) p
                                    theorem LO.FirstOrder.Semiformula.eval_rew_q {n₂ : } {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {n₁ : } {x : M} {e₂ : Fin n₂M} {ε₂ : μ₂M} (ω : LO.FirstOrder.Rew L μ₁ n₁ μ₂ n₂) (p : LO.FirstOrder.Semiformula L μ₁ (n₁ + 1)) :
                                    (LO.FirstOrder.Semiformula.Eval s (x :> e₂) ε₂) (ω.q.hom p) (LO.FirstOrder.Semiformula.Eval s (x :> LO.FirstOrder.Semiterm.val s e₂ ε₂ ω LO.FirstOrder.Semiterm.bvar) (LO.FirstOrder.Semiterm.val s e₂ ε₂ ω LO.FirstOrder.Semiterm.fvar)) p
                                    theorem LO.FirstOrder.Semiformula.eval_map {n₂ : } {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {n₁ : } (b : Fin n₁Fin n₂) (f : μ₁μ₂) (e : Fin n₂M) (ε : μ₂M) (p : LO.FirstOrder.Semiformula L μ₁ n₁) :
                                    theorem LO.FirstOrder.Semiformula.eval_rewrite {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε₂ : μ₂M} (f : μ₁LO.FirstOrder.Semiterm L μ₂ n) (p : LO.FirstOrder.Semiformula L μ₁ n) :
                                    theorem LO.FirstOrder.Semiformula.eval_rewriteMap {L : LO.FirstOrder.Language} {μ₁ : Type v₁} {μ₂ : Type v₂} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε₂ : μ₂M} (f : μ₁μ₂) (p : LO.FirstOrder.Semiformula L μ₁ n) :
                                    (LO.FirstOrder.Semiformula.Eval s e ε₂) ((LO.FirstOrder.Rew.rewriteMap f).hom p) (LO.FirstOrder.Semiformula.Eval s e fun (x : μ₁) => ε₂ (f x)) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_castLE {n₂ : } {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {e₂ : Fin n₂M} {ε : ξM} {n₁ : } (h : n₁ n₂) (p : LO.FirstOrder.Semiformula L ξ n₁) :
                                    (LO.FirstOrder.Semiformula.Eval s e₂ ε) ((LO.FirstOrder.Rew.castLE h).hom p) (LO.FirstOrder.Semiformula.Eval s (fun (x : Fin n₁) => e₂ (Fin.castLE h x)) ε) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_bShift {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {x : M} (p : LO.FirstOrder.Semiformula L ξ n) :
                                    (LO.FirstOrder.Semiformula.Eval s (x :> e) ε) (LO.FirstOrder.Rew.bShift.hom p) (LO.FirstOrder.Semiformula.Eval s e ε) p
                                    theorem LO.FirstOrder.Semiformula.eval_bShift' {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {ε : ξM} {e' : Fin (n + 1)M} (p : LO.FirstOrder.Semiformula L ξ n) :
                                    (LO.FirstOrder.Semiformula.Eval s e' ε) (LO.FirstOrder.Rew.bShift.hom p) (LO.FirstOrder.Semiformula.Eval s (fun (x : Fin n) => e' x.succ) ε) p
                                    theorem LO.FirstOrder.Semiformula.eval_substs {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {k : } (w : Fin kLO.FirstOrder.Semiterm L ξ n) (p : LO.FirstOrder.Semiformula L ξ k) :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_emb {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} (p : LO.FirstOrder.Semiformula L Empty n) :
                                    (LO.FirstOrder.Semiformula.Eval s e ε) (LO.FirstOrder.Rew.emb.hom p) (LO.FirstOrder.Semiformula.Eval s e Empty.elim) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_empty {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {o : Type u_1} [h : IsEmpty o] (p : LO.FirstOrder.Formula L o) :
                                    (LO.FirstOrder.Semiformula.Eval s e ε) (LO.FirstOrder.Rew.empty.hom p) (LO.FirstOrder.Semiformula.Eval s ![] fun (a : o) => h.elim a) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_toS {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : EmptyM} (p : LO.FirstOrder.Formula L (Fin n)) :
                                    (LO.FirstOrder.Semiformula.Eval s e ε) (LO.FirstOrder.Rew.toS.hom p) (LO.FirstOrder.Semiformula.Eval s ![] e) p
                                    theorem LO.FirstOrder.Semiformula.eval_embSubsts {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {k : } (w : Fin kLO.FirstOrder.Semiterm L ξ n) (σ : LO.FirstOrder.Semisentence L k) :
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_free {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} (ε : M) {a : M} (p : LO.FirstOrder.SyntacticSemiformula L (n + 1)) :
                                    (LO.FirstOrder.Semiformula.Eval s e (a :>ₙ ε)) ((LO.FirstOrder.Rew.hom LO.FirstOrder.Rew.free) p) (LO.FirstOrder.Semiformula.Eval s (e <: a) ε) p
                                    @[simp]
                                    theorem LO.FirstOrder.Semiformula.eval_shift {L : LO.FirstOrder.Language} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} (ε : M) {a : M} (p : LO.FirstOrder.SyntacticSemiformula L n) :
                                    theorem LO.FirstOrder.Semiformula.eval_iff_of_funEqOn {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {ε : ξM} {ε' : ξM} (p : LO.FirstOrder.Semiformula L ξ n) (h : Function.funEqOn p.fvar? ε ε') :
                                    theorem LO.FirstOrder.Semiformula.eval_toEmpty {L : LO.FirstOrder.Language} {ξ : Type v} {M : Type w} {s : LO.FirstOrder.Structure L M} {n : } {e : Fin nM} {f : ξM} {p : LO.FirstOrder.Semiformula L ξ n} (hp : p.fvarList = []) :
                                    theorem LO.FirstOrder.Structure.ofEquiv_rel {M : Type u_2} {N : Type u_1} {L : LO.FirstOrder.Language} [s : LO.FirstOrder.Structure L M] (φ : M N) {k : } (r : L.Rel k) (v : Fin kN) :
                                    theorem LO.FirstOrder.Structure.eval_ofEquiv_iff {M : Type u_2} {N : Type u_1} {L : LO.FirstOrder.Language} {ξ : Type v} [s : LO.FirstOrder.Structure L M] (φ : M N) {n : } {e : Fin nN} {ε : ξN} {p : LO.FirstOrder.Semiformula L ξ n} :
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Equations
                                    • LO.FirstOrder.instTopStrucSyntacticFormula = { realize_top := }
                                    Equations
                                    • LO.FirstOrder.instBotStrucSyntacticFormula = { realize_bot := }
                                    Equations
                                    • LO.FirstOrder.instAndStrucSyntacticFormula = { realize_and := }
                                    @[reducible, inline]
                                    Equations
                                    Instances For
                                      @[reducible, inline]
                                      Equations
                                      Instances For
                                        @[reducible, inline]
                                        Equations
                                        Instances For
                                          @[reducible, inline]
                                          Equations
                                          Instances For
                                            Equations
                                            • =
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                theorem LO.FirstOrder.Semiformula.eval_lMap {ξ : Type v} {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} {Φ : L₁.Hom L₂} {M : Type u} {s₂ : LO.FirstOrder.Structure L₂ M} {n : } {e : Fin nM} {ε : ξM} {p : LO.FirstOrder.Semiformula L₁ ξ n} :