Documentation

MathematicalLogic.FirstOrder.Completeness.Henkin

theorem Set.decompose_subset_union {α : Type u_1} {s₁ s₂ s₃ : Set α} :
s₁ s₂ s₃∃ (s₄ : Set α) (s₅ : Set α), s₁ = s₄ s₅ s₄ s₂ s₅ s₃
def Fin.embedAt {n : } (k : ) :
Fin (n + k + 1)
Equations
Instances For
    def Fin.insertAt {n : } (k : ) :
    Fin (n + k)Fin (n + k + 1)
    Equations
    Instances For
      theorem Fin.embedAt_or_insertAt {n k : } (x : Fin (n + k + 1)) :
      x = embedAt k ∃ (y : Fin (n + k)), x = insertAt k y
      Equations
      Instances For
        Equations
        Instances For
          theorem FirstOrder.Language.Formula.consts_ex {L✝ : Language} {a✝ : } {p : L✝.Formula (a✝ + 1)} :
          theorem FirstOrder.Language.Term.consts_of_subst {L✝ : Language} {n✝ : } {t : L✝.Term n✝} {m✝ : } {σ : L✝.Subst n✝ m✝} :
          t[σ]ₜ.consts = t.consts xt.vars, (σ x).consts
          theorem FirstOrder.Language.Formula.consts_of_subst {L : Language} {n m : } {p : L.Formula n} {σ : L.Subst n m} :
          p[σ]ₚ.consts = p.consts xp.free, (σ x).consts
          theorem FirstOrder.Language.Subst.singleAt_app_insertAt {k : } {L✝ : Language} {n✝ : } {t : L✝.Term n✝} {x : Fin (n✝ + k)} :
          theorem FirstOrder.Language.Subst.shiftAt_app {L : Language} {k a✝ : } {x : Fin (a✝ + k)} :
          def FirstOrder.Language.Subst.insertAt {L : Language} {n m : } (k : ) :
          L.Subst (n + k) m(t : L.Term m) → L.Subst (n + k + 1) m
          Equations
          Instances For
            theorem FirstOrder.Language.Subst.insertAt_app_embedAt {k : } {L✝ : Language} {a✝ m✝ : } {σ : L✝.Subst (a✝ + k) m✝} {t : L✝.Term m✝} :
            insertAt k σ t (Fin.embedAt k) = t
            theorem FirstOrder.Language.Subst.insertAt_app_insertAt {k : } {L✝ : Language} {a✝ m✝ : } {σ : L✝.Subst (a✝ + k) m✝} {t : L✝.Term m✝} {x : Fin (a✝ + k)} :
            insertAt k σ t (Fin.insertAt k x) = σ x
            noncomputable def FirstOrder.Language.Term.invConst {L : Language} {n : } (k : ) :
            L.Term (n + k)L.ConstL.Term (n + k + 1)
            Equations
            Instances For
              theorem FirstOrder.Language.Term.subst_singleAt_invConst {L : Language} {n k : } {c : L.Const} {t : L.Term (n + k + 1)} (h : ct.consts) :
              theorem FirstOrder.Language.Term.invConst_eq_shiftAt {L : Language} {n k : } {c : L.Const} {t : L.Term (n + k)} (h : ct.consts) :
              theorem FirstOrder.Language.Term.invConst_subst {L : Language} {n k n' k' : } {c : L.Const} {t : L.Term (n + k)} {σ : L.Subst (n + k) (n' + k')} :
              invConst k' t[σ]ₜ c = (invConst k t c)[Subst.insertAt k ((fun (x : L.Term (n' + k')) => invConst k' x c) σ) #(Fin.embedAt k')]ₜ
              theorem FirstOrder.Language.Term.invConst_shift {L : Language} {n k : } {c : L.Const} {t : L.Term (n + k)} :
              invConst (k + 1) (↑ₜt) c = ↑ₜ(invConst k t c)
              @[simp]
              theorem FirstOrder.Language.Formula.invConst_imp {L : Language} {n k : } {p q : L.Formula (n + k)} {c : L.Const} :
              invConst k (p q) c = invConst k p c invConst k q c
              @[simp]
              theorem FirstOrder.Language.Formula.invConst_neg {L : Language} {n k : } {p : L.Formula (n + k)} {c : L.Const} :
              invConst k (~ p) c = ~ invConst k p c
              theorem FirstOrder.Language.Formula.invConst_andN {L : Language} {n k m : } {c : L.Const} {v : Vec (L.Formula (n + k)) m} :
              invConst k ( (i : Fin m), v i) c = (i : Fin m), invConst k (v i) c
              @[irreducible]
              theorem FirstOrder.Language.Formula.subst_singleAt_invConst {L : Language} {n k : } {c : L.Const} {p : L.Formula (n + k + 1)} (h : cp.consts) :
              @[irreducible]
              theorem FirstOrder.Language.Formula.invConst_eq_shiftAt {L : Language} {n k : } {c : L.Const} {p : L.Formula (n + k)} (h : cp.consts) :
              @[irreducible]
              theorem FirstOrder.Language.Formula.invConst_subst {L : Language} {n k n' k' : } {c : L.Const} {p : L.Formula (n + k)} {σ : L.Subst (n + k) (n' + k')} :
              invConst k' p[σ]ₚ c = (invConst k p c)[Subst.insertAt k ((fun (x : L.Term (n' + k')) => Term.invConst k' x c) σ) #(Fin.embedAt k')]ₚ
              theorem FirstOrder.Language.Formula.invConst_shift {L : Language} {n k : } {c : L.Const} {p : L.Formula (n + k)} :
              invConst (k + 1) (↑ₚp) c = ↑ₚ(invConst k p c)
              theorem FirstOrder.Language.Formula.invConst_subst_single {L : Language} {n k : } {c : L.Const} {p : L.Formula (n + k + 1)} {t : L.Term (n + k)} :
              @[irreducible]
              theorem FirstOrder.Language.Axiom.inv_const {L : Language} {n k : } {Γ : L.FormulaSet (n + k + 1)} {c : L.Const} {p : L.Formula (n + k)} :
              p L.AxiomΓFormula.invConst k p c
              theorem FirstOrder.Language.Proof.inv_const {L : Language} {n k : } {Γ : L.FormulaSet (n + k)} {c : L.Const} {p : L.Formula (n + k)} (h₁ : pΓ, cp.consts) :
              Γp(fun (x : L.Formula (n + k)) => x[Subst.shiftAt k]ₚ) '' ΓFormula.invConst k p c
              theorem FirstOrder.Language.Proof.const_generalization {L : Language} {n : } {c : L.Const} {p : L.Formula (n + 1)} {Γ : L.FormulaSet n} (h₁ : pΓ, cp.consts) (h₂ : cp.consts) :
              Γp[↦ₛ (c ⬝ᶠ []ᵥ)]ₚΓ∀' p
              Instances For
                Equations
                Instances For
                  Equations
                  Instances For
                    @[simp]
                    theorem FirstOrder.Language.henkinStep.hom_onFunc {L : Language} {n n✝ : } (f : L.Func n✝) :
                    @[simp]
                    theorem FirstOrder.Language.henkinStep.hom_onRel {L : Language} {n n✝ : } (r : L.Rel n✝) :
                    hom.onRel r = r
                    theorem FirstOrder.Language.henkinStep.wit_not_in_homTerm {L✝ : Language} {n✝ : } {t : L✝.Term n✝} {a✝ : } {p : L✝.Formula (a✝ + 1)} :
                    wit p(hom.onTerm t).consts
                    theorem FirstOrder.Language.henkinStep.wit_not_in_homFormula {L✝ : Language} {a✝ : } {q : L✝.Formula a✝} {a✝¹ : } {p : L✝.Formula (a✝¹ + 1)} :
                    theorem FirstOrder.Language.henkinStep.invTerm_subst {L : Language} {n m k m' k' : } {t : (L.henkinStep n).Term (m + k)} {σ : (L.henkinStep n).Subst (m + k) (m' + k')} :
                    invTerm k' t[σ]ₜ = (invTerm k t)[Subst.insertAt k ((fun (x : (L.henkinStep n).Term (m' + k')) => invTerm k' x) σ) #(Fin.embedAt k')]ₜ
                    theorem FirstOrder.Language.henkinStep.invTerm_shift {k : } {L✝ : Language} {n✝ a✝ : } {t : (L✝.henkinStep n✝).Term (a✝.add k)} :
                    @[simp]
                    @[simp]
                    theorem FirstOrder.Language.henkinStep.invFormula_neg {k : } {L✝ : Language} {n✝ a✝ : } {p : (L✝.henkinStep n✝).Formula (a✝ + k)} :
                    theorem FirstOrder.Language.henkinStep.invFormula_andN {L : Language} {n m k l : } {v : Vec ((L.henkinStep n).Formula (m + k)) l} :
                    invFormula k ( (i : Fin l), v i) = (i : Fin l), invFormula k (v i)
                    @[irreducible]
                    theorem FirstOrder.Language.henkinStep.invFormula_subst {L : Language} {n m k m' k' : } {p : (L.henkinStep n).Formula (m + k)} {σ : (L.henkinStep n).Subst (m + k) (m' + k')} :
                    invFormula k' p[σ]ₚ = (invFormula k p)[Subst.insertAt k ((fun (x : (L.henkinStep n).Term (m' + k')) => invTerm k' x) σ) #(Fin.embedAt k')]ₚ
                    theorem FirstOrder.Language.henkinStep.invFormula_shift {k : } {L✝ : Language} {n✝ a✝ : } {p : (L✝.henkinStep n✝).Formula (a✝.add k)} :
                    theorem FirstOrder.Language.henkinStep.invFormula_subst_single {k : } {L✝ : Language} {n✝ a✝ : } {p : (L✝.henkinStep n✝).Formula (a✝ + k + 1)} {t : (L✝.henkinStep n✝).Term (a✝ + k)} :
                    @[irreducible]
                    theorem FirstOrder.Language.henkinStep.inv_axiom {L : Language} {n m k : } {Γ : L.FormulaSet (m + k + 1)} {p : (L.henkinStep n).Formula (m + k)} :
                    p (L.henkinStep n).AxiomΓinvFormula k p
                    theorem FirstOrder.Language.henkinStep.inv_proof {L✝ : Language} {a✝ : } {Δ : Set (L✝.Formula a✝)} {n✝ : } {p : (L✝.henkinStep n✝).Formula a✝} :
                    hom.onFormula '' ΔpΔ∀' invFormula 0 p
                    Instances For
                      Equations
                      Instances For
                        Equations
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem FirstOrder.Language.FormulaSet.henkinChain.nontrivial {n : } {L : Language} {Γ : L.FormulaSet n} (h₁ : Γ∃' ) {i : } :
                            theorem FirstOrder.Language.FormulaSet.henkinChain.consistent {n : } {L : Language} {Γ : L.FormulaSet n} (h₁ : Γ∃' ) (h₂ : Consistent Γ) {i : } :