Documentation

Foundation.FirstOrder.Basic.Semantics.Semantics

Model-theoretic semantics of first-order classical logic #

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

class LO.FirstOrder.Structure (L : Language) (M : Type w) :
Type (max u w)

A first-order L-structure associates domain M with interpretations of function and relation symbols.

Instances
    theorem LO.FirstOrder.Structure.ext {L : Language} {M : Type w} {x y : Structure L M} (func : func = func) (rel : rel = rel) :
    x = y
    structure LO.FirstOrder.Struc (L : Language) :
    Type (max (u_1 + 1) u_2)

    An auxiliary structure that corresponds to a first-order L-structure with a nonempty domain.

    Instances For
      @[reducible, inline]
      abbrev LO.FirstOrder.SmallStruc (L : Language) :
      Type (u + 1)
      Equations
      Instances For
        @[implicit_reducible]
        Equations
        @[reducible, inline]
        abbrev LO.FirstOrder.Structure.lMap {L₁ : Language} {L₂ : Language} (φ : L₁.Hom L₂) {M : Type w} (S : Structure L₂ M) :
        Structure L₁ M
        Equations
        Instances For
          @[simp]
          theorem LO.FirstOrder.Structure.lMap_func {L₁ : Language} {L₂ : Language} (φ : L₁.Hom L₂) {M : Type w} (s₂ : Structure L₂ M) {k : } {f : L₁.Func k} {v : Fin kM} :
          func f v = func (φ.func f) v
          @[simp]
          theorem LO.FirstOrder.Structure.lMap_rel {L₁ : Language} {L₂ : Language} (φ : L₁.Hom L₂) {M : Type w} (s₂ : Structure L₂ M) {k : } {r : L₁.Rel k} {v : Fin kM} :
          rel r v rel (φ.rel r) v
          @[reducible, inline]
          abbrev LO.FirstOrder.Structure.ofEquiv {L : Language} {M : Type w} [Structure L M] {N : Type w'} (Θ : M N) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]
            abbrev LO.FirstOrder.Structure.Decidable (L : Language) (M : Type w) [s : Structure L M] :
            Type (max w u)
            Equations
            Instances For
              @[reducible]
              def LO.FirstOrder.Structure.toStruc {L : Language} {M : Type w} [i : Nonempty M] (s : Structure L M) :
              Equations
              • s.toStruc = { Dom := M, nonempty := i, struc := s }
              Instances For
                @[implicit_reducible]
                Equations
                def LO.FirstOrder.Semiterm.val {n : } {ξ : Type u_1} {L : Language} {M : Type w} [s : Structure L M] (b : Fin nM) (f : ξM) :
                Semiterm L ξ nM
                Equations
                Instances For
                  @[reducible, inline]
                  abbrev LO.FirstOrder.Semiterm.valb {n : } {L : Language} {M : Type w} [s : Structure L M] (b : Fin nM) (t : ClosedSemiterm L n) :
                  M
                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev LO.FirstOrder.Semiterm.valf {L : Language} {M : Type w} [s : Structure L M] {n : } (b : Fin nM) :
                    Semiterm L Empty nM
                    Equations
                    Instances For
                      @[simp]
                      theorem LO.FirstOrder.Semiterm.val_bvar {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} (x : Fin n) :
                      val b f (bvar x) = b x
                      @[simp]
                      theorem LO.FirstOrder.Semiterm.val_fvar {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} (x : ξ) :
                      val b f (fvar x) = f x
                      @[simp]
                      theorem LO.FirstOrder.Semiterm.val_func {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} {k : } (F : L.Func k) (v : Fin kSemiterm L ξ n) :
                      val b f (func F v) = Structure.func F (val b f v)
                      theorem LO.FirstOrder.Semiterm.val_func' {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} {k : } (F : L.Func k) (v : Fin kSemiterm L ξ n) :
                      val b f (func F v) = Structure.func F fun (i : Fin k) => val b f (v i)
                      theorem LO.FirstOrder.Semiterm.val_rew {n₁ n₂ : } {ξ₁ : Type u_1} {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {b₂ : Fin n₂M} {f₂ : ξ₂M} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (t : Semiterm L ξ₁ n₁) :
                      val b₂ f₂ (ω t) = val (val b₂ f₂ ω bvar) (val b₂ f₂ ω fvar) t
                      theorem LO.FirstOrder.Semiterm.val_rewrite {n : } {ξ₁ : Type u_2} {ξ₂ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f₂ : ξ₂M} (f : ξ₁Semiterm L ξ₂ n) (t : Semiterm L ξ₁ n) :
                      val b f₂ ((Rew.rewrite f) t) = val b (val b f₂ f) t
                      theorem LO.FirstOrder.Semiterm.val_rewriteMap {n : } {ξ₁ : Type u_1} {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f₂ : ξ₂M} (f : ξ₁ξ₂) (t : Semiterm L ξ₁ n) :
                      val b f₂ ((Rew.rewriteMap f) t) = val b (f₂ f) t
                      theorem LO.FirstOrder.Semiterm.val_substs {n₁ n₂ : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b₂ : Fin n₂M} {f : ξM} (w : Fin n₁Semiterm L ξ n₂) (t : Semiterm L ξ n₁) :
                      val b₂ f ((Rew.subst w) t) = val (val b₂ f w) f t
                      @[simp]
                      theorem LO.FirstOrder.Semiterm.val_bShift {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} (a : M) (t : Semiterm L ξ n) :
                      val (a :> b) f (Rew.bShift t) = val b f t
                      theorem LO.FirstOrder.Semiterm.val_bShift' {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {f : ξM} (b : Fin (n + 1)M) (t : Semiterm L ξ n) :
                      val b f (Rew.bShift t) = val (fun (x : Fin n) => b x.succ) f t
                      @[simp]
                      theorem LO.FirstOrder.Semiterm.val_emb {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} {o : Type v'} [i : IsEmpty o] (t : Semiterm L o n) :
                      val b f (Rew.emb t) = val b (fun (a : o) => i.elim a) t
                      @[simp]
                      theorem LO.FirstOrder.Semiterm.val_castLE {n₁ n₂ : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b₂ : Fin n₂M} {f : ξM} (h : n₁ n₂) (t : Semiterm L ξ n₁) :
                      val b₂ f ((Rew.castLE h) t) = val (fun (x : Fin n₁) => b₂ (Fin.castLE h x)) f t
                      theorem LO.FirstOrder.Semiterm.val_embSubsts {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} {k : } (w : Fin kSemiterm L ξ n) (t : Semiterm L Empty k) :
                      val b f ((Rew.embSubsts w) t) = valb (val b f w) t
                      theorem LO.FirstOrder.Semiterm.val_lMap {n : } {ξ : Type u_3} {L₁ : Language} {L₂ : Language} {M : Type w} (φ : L₁.Hom L₂) (s₂ : Structure L₂ M) (b : Fin nM) (f : ξM) {t : Semiterm L₁ ξ n} :
                      val b f (lMap φ t) = val b f t
                      theorem LO.FirstOrder.Semiterm.val_shift {n : } {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} (f : M) (t : SyntacticSemiterm L n) :
                      val b f (Rew.shift t) = val b (f Nat.succ) t
                      theorem LO.FirstOrder.Semiterm.val_free {n : } {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} (f : M) (a : M) (t : SyntacticSemiterm L (n + 1)) :
                      val b (a :>ₙ f) (Rew.free t) = val (b <: a) f t
                      theorem LO.FirstOrder.Semiterm.val_fix {n : } {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} (f : M) (a : M) (t : SyntacticSemiterm L n) :
                      val (b <: a) f (Rew.fix t) = val b (a :>ₙ f) t
                      theorem LO.FirstOrder.Semiterm.val_eq_of_funEqOn {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f f' : ξM} [DecidableEq ξ] (t : Semiterm L ξ n) (h : Function.funEqOn t.FVar? f f') :
                      val b f t = val b f' t
                      theorem LO.FirstOrder.Semiterm.val_toEmpty {n : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b : Fin nM} {f : ξM} [DecidableEq ξ] (t : Semiterm L ξ n) (h : t.freeVariables = ) :
                      val b f t = valb b (t.toEmpty h)
                      theorem LO.FirstOrder.Structure.ofEquiv_func {M : Type u_2} {N : Type u_1} {L : Language} [s : Structure L M] (Θ : M N) {k : } (f : L.Func k) (v : Fin kN) :
                      func f v = Θ (func f (Θ.symm v))
                      theorem LO.FirstOrder.Structure.ofEquiv_val {M : Type u_3} {N : Type u_2} {L : Language} [s : Structure L M] (Θ : M N) {n : } {ξ : Type u_1} (b : Fin nN) (f : ξN) (t : Semiterm L ξ n) :
                      Semiterm.val b f t = Θ (Semiterm.val (Θ.symm b) (Θ.symm f) t)
                      @[simp]
                      theorem LO.FirstOrder.Semiformula.EvalAux_neg {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} (φ : Semiformula L ξ n) :
                      EvalAux s f b (φ) = ¬EvalAux s f b φ
                      def LO.FirstOrder.Semiformula.Eval {ξ : Type u_1} {L : Language} {M : Type w} {n : } [s : Structure L M] (b : Fin nM) (f : ξM) :

                      Evaluation of semiformula with variation of free-variables f and bounded-variables b

                      Equations
                      Instances For
                        @[reducible, inline]
                        abbrev LO.FirstOrder.Semiformula.Evalf {ξ : Type u_1} {L : Language} {M : Type w} [s : Structure L M] (f : ξM) :
                        Equations
                        Instances For
                          @[reducible, inline]
                          abbrev LO.FirstOrder.Semiformula.Evalb {L : Language} {M : Type w} {n : } [s : Structure L M] (b : Fin nM) :
                          Equations
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              theorem LO.FirstOrder.Semiformula.Eval.of_eq {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b e' : Fin nM} {f f' : ξM} {φ : Semiformula L ξ n} (h : (Eval b f) φ) (he : b = e') (hf : f = f') :
                              (Eval e' f') φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_rel {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {k : } {r : L.Rel k} {v : Fin kSemiterm L ξ n} :
                              (Eval b f) (rel r v) Structure.rel r (Semiterm.val b f v)
                              theorem LO.FirstOrder.Semiformula.eval_rel' {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {k : } {r : L.Rel k} {v : Fin kSemiterm L ξ n} :
                              (Eval b f) (rel r v) Structure.rel r fun (i : Fin k) => Semiterm.val b f (v i)
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_nrel {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {k : } {r : L.Rel k} {v : Fin kSemiterm L ξ n} :
                              theorem LO.FirstOrder.Semiformula.eval_nrel' {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {k : } {r : L.Rel k} {v : Fin kSemiterm L ξ n} :
                              (Eval b f) (nrel r v) ¬Structure.rel r fun (i : Fin k) => Semiterm.val b f (v i)
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_all {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {φ : Semiformula L ξ (n + 1)} :
                              (Eval b f) (∀⁰ φ) ∀ (x : M), (Eval (x :> b) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_ex {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {φ : Semiformula L ξ (n + 1)} :
                              (Eval b f) (∃⁰ φ) ∃ (x : M), (Eval (x :> b) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_ball {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {φ ψ : Semiformula L ξ (n + 1)} :
                              (Eval b f) (∀⁰[φ] ψ) ∀ (x : M), (Eval (x :> b) f) φ(Eval (x :> b) f) ψ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_bexs {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {φ ψ : Semiformula L ξ (n + 1)} :
                              (Eval b f) (∃⁰[φ] ψ) ∃ (x : M), (Eval (x :> b) f) φ (Eval (x :> b) f) ψ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_allClosure {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {f : ξM} {k : } {b : Fin 0M} {φ : Semiformula L ξ k} :
                              (Eval b f) (∀⁰* φ) ∀ (e' : Fin kM), (Eval e' f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_exsClosure {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {f : ξM} {k : } {b : Fin 0M} {φ : Semiformula L ξ k} :
                              (Eval b f) (∃⁰* φ) ∃ (e' : Fin kM), (Eval e' f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_allItr {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {f : ξM} {k : } {b : Fin nM} {φ : Semiformula L ξ (n + k)} :
                              (Eval b f) (∀⁰^[k] φ) ∀ (e' : Fin kM), (Eval (Matrix.appendr e' b) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_exsItr {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {f : ξM} {k : } {b : Fin nM} {φ : Semiformula L ξ (n + k)} :
                              (Eval b f) (∃⁰^[k] φ) ∃ (e' : Fin kM), (Eval (Matrix.appendr e' b) f) φ
                              theorem LO.FirstOrder.Semiformula.eval_rew {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {ξ₁ : Type u_1} {n₁ n₂ : } {b₂ : Fin n₂M} {f₂ : ξ₂M} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (φ : Semiformula L ξ₁ n₁) :
                              (Eval b₂ f₂) ((Rewriting.app ω) φ) (Eval (Semiterm.val b₂ f₂ ω Semiterm.bvar) (Semiterm.val b₂ f₂ ω Semiterm.fvar)) φ
                              theorem LO.FirstOrder.Semiformula.eval_rew_q {n₂ : } {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {b₂ : Fin n₂M} {ξ₁ : Type u_1} {n₁ : } {x : M} {f₂ : ξ₂M} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (φ : Semiformula L ξ₁ (n₁ + 1)) :
                              (Eval (x :> b₂) f₂) ((Rewriting.app ω.q) φ) (Eval (x :> Semiterm.val b₂ f₂ ω Semiterm.bvar) (Semiterm.val b₂ f₂ ω Semiterm.fvar)) φ
                              theorem LO.FirstOrder.Semiformula.eval_map {n₂ : } {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {n₁ : } {ξ₁ : Type u_1} (θ : Fin n₁Fin n₂) (η : ξ₁ξ₂) (b : Fin n₂M) (f : ξ₂M) (φ : Semiformula L ξ₁ n₁) :
                              (Eval b f) ((Rewriting.app (Rew.map θ η)) φ) (Eval (b θ) (f η)) φ
                              theorem LO.FirstOrder.Semiformula.eval_rewrite {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f₂ : ξ₂M} {ξ₁ : Type u_1} (f : ξ₁Semiterm L ξ₂ n) (φ : Semiformula L ξ₁ n) :
                              (Eval b f₂) ((Rewriting.app (Rew.rewrite f)) φ) (Eval b fun (x : ξ₁) => Semiterm.val b f₂ (f x)) φ
                              theorem LO.FirstOrder.Semiformula.eval_rewriteMap {ξ₂ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f₂ : ξ₂M} {ξ₁ : Type u_1} (f : ξ₁ξ₂) (φ : Semiformula L ξ₁ n) :
                              (Eval b f₂) ((Rewriting.app (Rew.rewriteMap f)) φ) (Eval b fun (x : ξ₁) => f₂ (f x)) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_castLE {n₂ : } {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {b₂ : Fin n₂M} {f : ξM} {n₁ : } (h : n₁ n₂) (φ : Semiformula L ξ n₁) :
                              (Eval b₂ f) ((Rewriting.app (Rew.castLE h)) φ) (Eval (fun (x : Fin n₁) => b₂ (Fin.castLE h x)) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_bShift {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {x : M} (φ : Semiformula L ξ n) :
                              (Eval (x :> b) f) ((Rewriting.app Rew.bShift) φ) (Eval b f) φ
                              theorem LO.FirstOrder.Semiformula.eval_bShift' {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {f : ξM} {e' : Fin (n + 1)M} (φ : Semiformula L ξ n) :
                              (Eval e' f) ((Rewriting.app Rew.bShift) φ) (Eval (fun (x : Fin n) => e' x.succ) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_substs {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {k : } (w : Fin kSemiterm L ξ n) (φ : Semiformula L ξ k) :
                              (Eval b f) (φ w) (Eval (Semiterm.val b f w) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_emb {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} (φ : Semiformula L Empty n) :
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_empty {ξ : Type u_2} {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {f : ξM} {o : Type u_1} [h : IsEmpty o] (φ : Formula L o) :
                              (Eval b f) ((Rewriting.app Rew.empty) φ) (Eval ![] fun (a : o) => h.elim a) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_embSubsts {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} {ξ : Type u_1} {f : ξM} {k : } (w : Fin kSemiterm L ξ n) (σ : Semisentence L k) :
                              (Eval b f) ((Rewriting.app (Rew.embSubsts w)) σ) (Evalb (Semiterm.val b f w)) σ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_free {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} (f : M) {a : M} (φ : Semiproposition L (n + 1)) :
                              (Eval b (a :>ₙ f)) ((Rewriting.app Rew.free) φ) (Eval (b <: a) f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_shift {L : Language} {M : Type w} {s : Structure L M} {n : } {b : Fin nM} (f : M) {a : M} (φ : Semiproposition L n) :
                              (Eval b (a :>ₙ f)) ((Rewriting.app Rew.shift) φ) (Eval b f) φ
                              theorem LO.FirstOrder.Semiformula.eval_iff_of_funEqOn {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {f f' : ξM} [DecidableEq ξ] {n : } {b : Fin nM} (φ : Semiformula L ξ n) (h : Function.funEqOn φ.FVar? f f') :
                              (Eval b f) φ (Eval b f') φ
                              theorem LO.FirstOrder.Semiformula.eval_toEmpty {ξ : Type u_1} {L : Language} {M : Type w} {s : Structure L M} {f : ξM} [DecidableEq ξ] {n : } {φ : Semiformula L ξ n} (hp : φ.freeVariables = ) {b : Fin nM} :
                              (Eval b f) φ (Evalb b) (φ.toEmpty hp)
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_univCl' {L : Language} {M : Type w} {s : Structure L M} {f : M} (φ : Proposition L) :
                              (Evalf f) (univCl' φ) ∀ (g : M), (Evalf g) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_univCl {L : Language} {M : Type w} {s : Structure L M} [Nonempty M] (φ : Proposition L) :
                              (Realize M) (univCl φ) ∀ (f : M), (Evalf f) φ
                              @[simp]
                              theorem LO.FirstOrder.Semiformula.eval_enumarateFVar_idxOfFVar_eq_id {L : Language} {M : Type w} {s : Structure L M} {n : } [DecidableEq M] [Inhabited M] (φ : Semiformula L M n) (v : Fin nM) :
                              (Eval v fun (x : M) => φ.enumarateFVar (φ.idxOfFVar x)) φ (Eval v id) φ
                              theorem LO.FirstOrder.Structure.ofEquiv_rel {M : Type u_2} {N : Type u_1} {L : Language} [s : Structure L M] (Θ : M N) {k : } (r : L.Rel k) (v : Fin kN) :
                              rel r v rel r (Θ.symm v)
                              theorem LO.FirstOrder.Structure.eval_ofEquiv_iff {M : Type u_3} {N : Type u_2} {L : Language} [s : Structure L M] (Θ : M N) {n : } {ξ : Type u_1} {b : Fin nN} {f : ξN} {φ : Semiformula L ξ n} :
                              (Semiformula.Eval b f) φ (Semiformula.Eval (Θ.symm b) (Θ.symm f)) φ
                              theorem LO.FirstOrder.Structure.evalf_ofEquiv_iff {M : Type u_3} {N : Type u_2} {L : Language} [s : Structure L M] (Θ : M N) {ξ : Type u_1} {f : ξN} {φ : Formula L ξ} :
                              @[reducible, inline]
                              abbrev LO.FirstOrder.Language.str (M : Type u_2) [Nonempty M] (L : Language) [s : Structure L M] :

                              Standard structure inferred from a given domain

                              Equations
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[reducible, inline]
                                  abbrev LO.FirstOrder.Consequence {L : Language} (T : Theory L) (σ : Sentence L) :
                                  Equations
                                  Instances For

                                    Semantic entailment, also known as logical consequence.

                                    Equations
                                    Instances For
                                      theorem LO.FirstOrder.models_iff {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {σ : Sentence L} :
                                      theorem LO.FirstOrder.notModels_iff {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {σ : Sentence L} :
                                      theorem LO.FirstOrder.models_iff_proposition {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {φ : Proposition L} :
                                      M↓[L] Semiformula.univCl φ ∀ (f : M), (Semiformula.Evalf f) φ
                                      theorem LO.FirstOrder.models_theory_iff {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {T : Theory L} :
                                      M↓[L] ⊧* T φT, M↓[L] φ
                                      theorem LO.FirstOrder.models_of_mem {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {T : Theory L} [M↓[L] ⊧* T] {φ : Sentence L} (h : φ T) :
                                      M↓[L] φ
                                      theorem LO.FirstOrder.Theory.models {L : Language} (M : Type u_1) [Nonempty M] [s : Structure L M] (T : Theory L) [M↓[L] ⊧* T] {σ : Sentence L} ( : σ T) :
                                      M↓[L] σ
                                      theorem LO.FirstOrder.models_iff_models {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {φ : Sentence L} :
                                      M↓[L] φ s.toStruc φ
                                      theorem LO.FirstOrder.consequence_iff {L : Language} {T : Theory L} {φ : Sentence L} :
                                      T ⊨[Struc L] φ ∀ (M : Type v) [inst : Nonempty M] [inst_1 : Structure L M], M↓[L] ⊧* TM↓[L] φ
                                      theorem LO.FirstOrder.consequence_iff' {L : Language} {T : Theory L} {φ : Sentence L} :
                                      T ⊨[Struc L] φ ∀ (M : Type v) [inst : Nonempty M] [inst_1 : Structure L M] [M↓[L] ⊧* T], M↓[L] φ
                                      theorem LO.FirstOrder.valid_iff {L : Language} {φ : Sentence L} :
                                      Semantics.Valid (Struc L) φ ∀ (M : Type v) [inst : Nonempty M] [inst_1 : Structure L M], M↓[L] φ
                                      theorem LO.FirstOrder.satisfiable_iff {L : Language} {T : Theory L} :
                                      Semantics.Satisfiable (Struc L) T ∃ (M : Type v) (x : Nonempty M) (x_1 : Structure L M), M↓[L] ⊧* T
                                      theorem LO.FirstOrder.unsatisfiable_iff {L : Language} {T : Theory L} :
                                      ¬Semantics.Satisfiable (Struc L) T ∀ (M : Type v) (x : Nonempty M) (x_1 : Structure L M), ¬M↓[L] ⊧* T
                                      noncomputable def LO.FirstOrder.ModelOfSat {L : Language} {T : Theory L} (h : Semantics.Satisfiable (Struc L) T) :
                                      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 u_1} {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {M : Type u} {s₂ : Structure L₂ M} {n : } {b : Fin nM} {f : ξM} [Nonempty M] {φ : Semiformula L₁ ξ n} :
                                          (Eval b f) ((lMap Φ) φ) (Eval b f) φ
                                          theorem LO.FirstOrder.Semiformula.models_lMap {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {M : Type u} {s₂ : Structure L₂ M} [Nonempty M] {σ : Sentence L₁} :
                                          s₂.toStruc (lMap Φ) σ (Structure.lMap Φ s₂).toStruc σ
                                          theorem LO.FirstOrder.lMap_models_lMap {L₁ L₂ : Language} {Φ : L₁.Hom L₂} {T : Theory L₁} {σ : Sentence L₁} (h : T ⊨[Struc L₁] σ) :
                                          theorem LO.FirstOrder.models_of_ss {L : Language} {M : Type u_1} [Nonempty M] [Structure L M] {T U : Theory L} (h : M↓[L] ⊧* U) (ss : T U) :
                                          theorem LO.FirstOrder.models_of_le {L : Language} {M : Type u_1} [Nonempty M] [Structure L M] {T₁ T₂ : Theory L} (h : M↓[L] ⊧* T₂) (le : T₁ T₂) :
                                          M↓[L] ⊧* T₁
                                          instance LO.FirstOrder.models_theory_sup {L : Language} {M : Type u_1} [Nonempty M] [Structure L M] (T₁ T₂ : Theory L) [M↓[L] ⊧* T₁] [M↓[L] ⊧* T₂] :
                                          M↓[L] ⊧* T₁ T₂
                                          theorem LO.FirstOrder.models_of_mem_theory {L : Language} {M : Type u_1} [Nonempty M] [Structure L M] {φ : Sentence L} {T : Theory L} [h : M↓[L] ⊧* T] (hf : φ T) :
                                          M↓[L] φ
                                          @[reducible, inline]
                                          abbrev LO.FirstOrder.Structure.theory (L : Language) (M : Type u_1) [Nonempty M] [s : Structure L M] :
                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem LO.FirstOrder.Structure.mem_theory_iff {L : Language} {M : Type v} [Nonempty M] [s : Structure L M] {σ : Sentence L} :
                                            σ theory L M M↓[L] σ