Documentation

MathematicalLogic.FirstOrder.Completeness.Language

theorem directed_of_vec {α : Type u_1} (r : ααProp) [IsTrans α r] [IsDirected α r] {n : } [h : Nonempty α] (v : Vec α n) :
∃ (a : α), ∀ (i : Fin n), r (v i) a
theorem directed_of_three {α : Type u_1} (r : ααProp) [IsTrans α r] [IsDirected α r] (x y z : α) :
∃ (a : α), r x a r y a r z a
structure FirstOrder.Language.Hom (L₁ L₂ : Language) :
Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem FirstOrder.Language.Hom.ext {L₁ L₂ : Language} {φ ψ : L₁ →ᴸ L₂} (h₁ : ∀ (n : ) (f : L₁.Func n), φ.onFunc f = ψ.onFunc f) (h₂ : ∀ (n : ) (r : L₁.Rel n), φ.onRel r = ψ.onRel r) :
      φ = ψ
      theorem FirstOrder.Language.Hom.ext_iff {L₁ L₂ : Language} {φ ψ : L₁ →ᴸ L₂} :
      φ = ψ (∀ (n : ) (f : L₁.Func n), φ.onFunc f = ψ.onFunc f) ∀ (n : ) (r : L₁.Rel n), φ.onRel r = ψ.onRel r
      Equations
      Instances For
        @[simp]
        theorem FirstOrder.Language.Hom.id_onFunc {L : Language} {n✝ : } (f : L.Func n✝) :
        id.onFunc f = f
        @[simp]
        theorem FirstOrder.Language.Hom.id_onRel {L : Language} {n✝ : } (r : L.Rel n✝) :
        id.onRel r = r
        def FirstOrder.Language.Hom.comp {L₁ L₂ L₃ : Language} (φ₂ : L₂ →ᴸ L₃) (φ₁ : L₁ →ᴸ L₂) :
        L₁ →ᴸ L₃
        Equations
        Instances For
          @[simp]
          theorem FirstOrder.Language.Hom.comp_onRel {L₁ L₂ L₃ : Language} (φ₂ : L₂ →ᴸ L₃) (φ₁ : L₁ →ᴸ L₂) {n✝ : } (r : L₁.Rel n✝) :
          (φ₂ ∘ᴸ φ₁).onRel r = φ₂.onRel (φ₁.onRel r)
          @[simp]
          theorem FirstOrder.Language.Hom.comp_onFunc {L₁ L₂ L₃ : Language} (φ₂ : L₂ →ᴸ L₃) (φ₁ : L₁ →ᴸ L₂) {n✝ : } (f : L₁.Func n✝) :
          (φ₂ ∘ᴸ φ₁).onFunc f = φ₂.onFunc (φ₁.onFunc f)
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem FirstOrder.Language.Hom.comp_id {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} :
            φ ∘ᴸ id = φ
            theorem FirstOrder.Language.Hom.id_comp {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} :
            id ∘ᴸ φ = φ
            theorem FirstOrder.Language.Hom.comp_assoc {L₁✝ L₂✝ : Language} {φ₃ : L₁✝ →ᴸ L₂✝} {L₁✝¹ : Language} {φ₂ : L₁✝¹ →ᴸ L₁✝} {L₁✝² : Language} {φ₁ : L₁✝² →ᴸ L₁✝¹} :
            φ₃ ∘ᴸ φ₂ ∘ᴸ φ₁ = φ₃ ∘ᴸ (φ₂ ∘ᴸ φ₁)
            def FirstOrder.Language.Hom.onTerm {L₁ L₂ : Language} {n : } (φ : L₁ →ᴸ L₂) :
            L₁.Term nL₂.Term n
            Equations
            Instances For
              theorem FirstOrder.Language.Hom.id_onTerm {L✝ : Language} {n✝ : } {t : L✝.Term n✝} :
              id.onTerm t = t
              theorem FirstOrder.Language.Hom.comp_onTerm {L₁✝ L₂✝ : Language} {φ₂ : L₁✝ →ᴸ L₂✝} {L₁✝¹ : Language} {φ₁ : L₁✝¹ →ᴸ L₁✝} {n✝ : } {t : L₁✝¹.Term n✝} :
              (φ₂ ∘ᴸ φ₁).onTerm t = φ₂.onTerm (φ₁.onTerm t)
              theorem FirstOrder.Language.Hom.onTerm_subst {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {n✝ : } {t : L₁.Term n✝} {m✝ : } {σ : L₁.Subst n✝ m✝} :
              φ.onTerm t[σ]ₜ = (φ.onTerm t)[φ.onTerm σ]ₜ
              theorem FirstOrder.Language.Hom.onTerm_shift {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {n✝ : } {t : L₁.Term n✝} :
              def FirstOrder.Language.Hom.onFormula {L₁ L₂ : Language} {n : } (φ : L₁ →ᴸ L₂) :
              L₁.Formula nL₂.Formula n
              Equations
              Instances For
                theorem FirstOrder.Language.Hom.onFormula_neg {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {a✝ : } {p : L₁.Formula a✝} :
                φ.onFormula (~ p) = ~ φ.onFormula p
                theorem FirstOrder.Language.Hom.onFormula_and {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {a✝ : } {p q : L₁.Formula a✝} :
                φ.onFormula (p q) = φ.onFormula p φ.onFormula q
                theorem FirstOrder.Language.Hom.onFormula_andN {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {n m : } {v : Vec (L₁.Formula n) m} :
                φ.onFormula ( (i : Fin m), v i) = (i : Fin m), φ.onFormula (v i)
                theorem FirstOrder.Language.Hom.id_onFormula {L✝ : Language} {a✝ : } {p : L✝.Formula a✝} :
                theorem FirstOrder.Language.Hom.comp_onFormula {L₁✝ L₂✝ : Language} {φ₂ : L₁✝ →ᴸ L₂✝} {L₁✝¹ : Language} {φ₁ : L₁✝¹ →ᴸ L₁✝} {a✝ : } {p : L₁✝¹.Formula a✝} :
                (φ₂ ∘ᴸ φ₁).onFormula p = φ₂.onFormula (φ₁.onFormula p)
                theorem FirstOrder.Language.Hom.onFormula_subst {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {n m : } {p : L₁.Formula n} {σ : L₁.Subst n m} :
                theorem FirstOrder.Language.Hom.onFormula_shift {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {a✝ : } {p : L₁.Formula a✝} :
                theorem FirstOrder.Language.Hom.onFormula_subst_single {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {a✝ : } {p : L₁.Formula (a✝ + 1)} {t : L₁.Term a✝} :
                theorem FirstOrder.Language.Hom.on_axiom {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {a✝ : } {p : L₁.Formula a✝} :
                p L₁.Axiomφ.onFormula p L₂.Axiom
                theorem FirstOrder.Language.Hom.on_proof {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {n✝ : } {Γ : L₁.FormulaSet n✝} {p : L₁.Formula n✝} :
                Γpφ.onFormula '' Γφ.onFormula p
                def FirstOrder.Language.Hom.reduct {L₁ L₂ : Language} (φ : L₁ →ᴸ L₂) (M : L₂.Structure) :
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem FirstOrder.Language.Hom.reduct_interpFunc {L₁ L₂ : Language} (φ : L₁ →ᴸ L₂) (M : L₂.Structure) {m✝ : } (f : L₁.Func m✝) (v : Vec M.Dom m✝) :
                  (φ.reduct M).interpFunc f v = M.interpFunc (φ.onFunc f) v
                  @[simp]
                  theorem FirstOrder.Language.Hom.reduct_Dom {L₁ L₂ : Language} (φ : L₁ →ᴸ L₂) (M : L₂.Structure) :
                  (φ.reduct M).Dom = M.Dom
                  @[simp]
                  theorem FirstOrder.Language.Hom.reduct_interpRel {L₁ L₂ : Language} (φ : L₁ →ᴸ L₂) (M : L₂.Structure) {m✝ : } (r : L₁.Rel m✝) (v : Vec M.Dom m✝) :
                  (φ.reduct M).interpRel r v = M.interpRel (φ.onRel r) v
                  theorem FirstOrder.Language.Hom.interp_onTerm {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {M : L₂.Structure} {n✝ : } {t : L₁.Term n✝} {ρ : Vec M.Dom n✝} :
                  φ.onTerm t⟧ₜ M.Dom, ρ = t⟧ₜ (φ.reduct M).Dom, ρ
                  theorem FirstOrder.Language.Hom.satisfy_onFormula {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {M : L₂.Structure} {a✝ : } {p : L₁.Formula a✝} {ρ : Vec M.Dom a✝} :
                  M.Dom ⊨[ρ] φ.onFormula p (φ.reduct M).Dom ⊨[ρ] p
                  theorem FirstOrder.Language.Hom.on_satisfiable {L₁ L₂ : Language} {φ : L₁ →ᴸ L₂} {a✝ : } {Γ : Set (L₁.Formula a✝)} :
                  structure FirstOrder.Language.DirectedSystem {ι : Type} [Preorder ι] (L : ιLanguage) :
                  • hom (i j : ι) : i jL i →ᴸ L j
                  • hom_id {i : ι} (h : i i) : self.hom i i h = Hom.id
                  • hom_comp {i j k : ι} (h₁ : i j) (h₂ : j k) (h₃ : i k) : self.hom j k h₂ ∘ᴸ self.hom i j h₁ = self.hom i k h₃
                  Instances For
                    def FirstOrder.Language.DirectedSystem.setoidFunc {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} (φ : DirectedSystem L) (n : ) :
                    Setoid ((i : ι) × (L i).Func n)
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def FirstOrder.Language.DirectedSystem.setoidRel {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} (φ : DirectedSystem L) (n : ) :
                      Setoid ((i : ι) × (L i).Rel n)
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def FirstOrder.Language.DirectedSystem.directLimit {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} (φ : DirectedSystem L) :
                        Equations
                        Instances For
                          def FirstOrder.Language.DirectedSystem.homLimit {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} (φ : DirectedSystem L) (i : ι) :
                          Equations
                          Instances For
                            theorem FirstOrder.Language.DirectedSystem.homLimit_comp_hom {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {i j : ι} {h : i j} :
                            φ.homLimit j ∘ᴸ φ.hom i j h = φ.homLimit i
                            theorem FirstOrder.Language.DirectedSystem.term_hom_eq_of_homLimit_eq {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {i : ι} {n : } {j : ι} [Nonempty ι] (t₁ : (L i).Term n) (t₂ : (L j).Term n) (h : (φ.homLimit i).onTerm t₁ = (φ.homLimit j).onTerm t₂) :
                            ∃ (k : ι) (h₁ : i k) (h₂ : j k), (φ.hom i k h₁).onTerm t₁ = (φ.hom j k h₂).onTerm t₂
                            theorem FirstOrder.Language.DirectedSystem.formula_hom_eq_of_homLimit_eq {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {i : ι} {n : } {j : ι} [Nonempty ι] (p : (L i).Formula n) (q : (L j).Formula n) (h : (φ.homLimit i).onFormula p = (φ.homLimit j).onFormula q) :
                            ∃ (k : ι) (h₁ : i k) (h₂ : j k), (φ.hom i k h₁).onFormula p = (φ.hom j k h₂).onFormula q
                            theorem FirstOrder.Language.DirectedSystem.term_of_homLimit {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {n : } [h : Nonempty ι] (t : φ.directLimit.Term n) :
                            ∃ (i : ι) (t' : (L i).Term n), t = (φ.homLimit i).onTerm t'
                            theorem FirstOrder.Language.DirectedSystem.formula_of_homLimit {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {n : } [h : Nonempty ι] (p : φ.directLimit.Formula n) :
                            ∃ (i : ι) (q : (L i).Formula n), p = (φ.homLimit i).onFormula q
                            theorem FirstOrder.Language.DirectedSystem.axiom_of_homLimit {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {a✝ : } {p : φ.directLimit.Formula a✝} [Nonempty ι] (h : p φ.directLimit.Axiom) :
                            ∃ (i : ι) (q : (L i).Formula a✝), p = (φ.homLimit i).onFormula q q (L i).Axiom
                            theorem FirstOrder.Language.DirectedSystem.proof_of_homLimit {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {n✝ : } {Γ : φ.directLimit.FormulaSet n✝} {p : φ.directLimit.Formula n✝} [Nonempty ι] (h : Γp) :
                            ∃ (i : ι) (Δ : Set ((L i).Formula n✝)) (q : (L i).Formula n✝), (φ.homLimit i).onFormula '' Δ Γ p = (φ.homLimit i).onFormula q Δ.Finite Δq
                            theorem FirstOrder.Language.DirectedSystem.subset_of_monotone_union {ι : Type} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {L : ιLanguage} {φ : DirectedSystem L} {n : } {i : ι} [Nonempty ι] {Γ : (i : ι) → (L i).FormulaSet n} {Δ : (L i).FormulaSet n} (h₁ : ∀ (i j : ι) (h : i j), (φ.hom i j h).onFormula '' Γ i Γ j) (h₂ : (φ.homLimit i).onFormula '' Δ ⋃ (i : ι), (φ.homLimit i).onFormula '' Γ i) (h : Set.Finite Δ) :
                            ∃ (j : ι) (h : i j), (φ.hom i j h).onFormula '' Δ Γ j
                            def FirstOrder.Language.DirectedSystem.ofChain (L : Language) (φ : (i : ) → L i →ᴸ L (i + 1)) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              theorem FirstOrder.Language.DirectedSystem.ofChain_hom_succ {i : } {h : i i.succ} {L : Language} {φ : (i : ) → L i →ᴸ L (i + 1)} :
                              (ofChain L φ).hom i i.succ h = φ i
                              theorem FirstOrder.Language.DirectedSystem.monotone_chain {n : } {L : Language} {φ : (i : ) → L i →ᴸ L (i + 1)} {Γ : (i : ) → (L i).FormulaSet n} (h₁ : ∀ (i : ), (φ i).onFormula '' Γ i Γ (i + 1)) (i j : ) (h : i j) :
                              ((ofChain L φ).hom i j h).onFormula '' Γ i Γ j