Documentation

Foundation.FirstOrder.LK.Completeness.CountableSublanguage

Finite sublanguage #

def FFL.FirstOrder.Language.sublanguage (L : Language) (pFunc : (k : ℕ) → L.Func k → Prop) (pRel : (k : ℕ) → L.Rel k → Prop) :
Equations
Instances For
    def FFL.FirstOrder.Language.unsub (L : Language) {pf : (k : ℕ) → L.Func k → Prop} {pr : (k : ℕ) → L.Rel k → Prop} :
    (L.sublanguage pf pr).Hom L
    Equations
    Instances For
      @[simp]
      theorem FFL.FirstOrder.Language.unsub_onFunc (L : Language) {pFunc✝ : (k : ℕ) → L.Func k → Prop} {pRel✝ : (k : ℕ) → L.Rel k → Prop} {a✝ : ℕ} {φ : (L.sublanguage pFunc✝ pRel✝).Func a✝} :
      L.unsub.func φ = ↑φ
      @[simp]
      theorem FFL.FirstOrder.Language.unsub_onRel (L : Language) {pFunc✝ : (k : ℕ) → L.Func k → Prop} {pRel✝ : (k : ℕ) → L.Rel k → Prop} {a✝ : ℕ} {φ : (L.sublanguage pFunc✝ pRel✝).Rel a✝} :
      L.unsub.rel φ = ↑φ
      def FFL.FirstOrder.Semiterm.symbols {L : Language} [(k : ℕ) → DecidableEq (L.Func k)] {ξ : Type u_1} {n : ℕ} :
      Semiterm L ξ n → Finset ((k : ℕ) × L.Func k)
      Equations
      Instances For
        @[simp]
        theorem FFL.FirstOrder.Semiterm.lang_func {L : Language} [(k : ℕ) → DecidableEq (L.Func k)] {ξ : Type u_1} {n k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) :
        theorem FFL.FirstOrder.Semiterm.lang_func_ss {L : Language} [(k : ℕ) → DecidableEq (L.Func k)] {ξ : Type u_1} {n k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) (i : Fin k) :
        (v i).symbols ⊆ (func f v).symbols
        @[simp]
        theorem FFL.FirstOrder.Semiterm.lMap_toSublanguage {L : Language} [(k : ℕ) → DecidableEq (L.Func k)] {ξ : Type u_1} {n : ℕ} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) (t : Semiterm L ξ n) (h : ∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ t.symbols → pf k f) :
        lMap L.unsub (toSublanguage pf pr t h) = t
        theorem FFL.FirstOrder.Semiformula.functionSymbols_rel_ss {L : Language} [L.DecidableEq] {ξ : Type u_1} {n k : ℕ} (r : L.Rel k) (v : Fin k → Semiterm L ξ n) (i : Fin k) :
        (v i).symbols ⊆ (rel r v).functionSymbols
        def FFL.FirstOrder.Semiformula.toSublanguage {L : Language} [L.DecidableEq] {ξ : Type u_1} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) {n : ℕ} (φ : Semiformula L ξ n) :
        (∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ φ.functionSymbols → pf k f) → (∀ (k : ℕ) (r : L.Rel k), ⟨k, r⟩ ∈ φ.relationSymbols → pr k r) → Semiformula (L.sublanguage pf pr) ξ n
        Equations
        Instances For
          @[simp]
          theorem FFL.FirstOrder.Semiformula.lMap_toSublanguage {L : Language} [L.DecidableEq] {ξ : Type u_1} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) {n : ℕ} (φ : Semiformula L ξ n) (hf : ∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ φ.functionSymbols → pf k f) (hr : ∀ (k : ℕ) (r : L.Rel k), ⟨k, r⟩ ∈ φ.relationSymbols → pr k r) :
          (lMap L.unsub) (toSublanguage pf pr φ hf hr) = φ
          @[reducible, inline]

          A language consists of the function and relation symbols appearing in a given finite set of formulas.

          Equations
          Instances For
            @[instance_reducible]
            noncomputable instance FFL.FirstOrder.Semiformula.instFintypeFuncSublanguage {ξ : Type u_1} {n : ℕ} {L : Language} [L.DecidableEq] (φ : Semiformula L ξ n) (k : ℕ) :
            Equations
            @[instance_reducible]
            noncomputable instance FFL.FirstOrder.Semiformula.instFintypeRelSublanguage {ξ : Type u_1} {n : ℕ} {L : Language} [L.DecidableEq] (φ : Semiformula L ξ n) (k : ℕ) :
            Equations
            @[instance_reducible]
            noncomputable instance FFL.FirstOrder.Semiformula.instEncodableSublanguage {ξ : Type u_1} {n : ℕ} {L : Language} [L.DecidableEq] (φ : Semiformula L ξ n) :
            Equations
            Equations
            Instances For
              @[simp]

              Tarski.Structure induced by an injective language homomorphism #

              class FFL.FirstOrder.Language.Hom.Injective {L₁ : Language} {L₂ : Language} (Φ : L₁.Hom L₂) :
              Instances
                instance FFL.FirstOrder.Language.unsub_injective {L : Language} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) :
                @[reducible, inline]
                noncomputable abbrev FFL.FirstOrder.Tarski.Structure.extendStructure {L₁ : Language} {L₂ : Language} (Φ : L₁.Hom L₂) {M : Type u_1} [Nonempty M] (s : Structure L₁ M) :
                Structure L₂ M
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem FFL.FirstOrder.Tarski.Structure.extendStructure.func {L₁ : Language} {M : Type u_1} [Nonempty M] (s₁ : Structure L₁ M) {L₂ : Language} {k : ℕ} (Φ : L₁.Hom L₂) [hΦ : Φ.Injective] (f₁ : L₁.Func k) (v : Fin k → M) :
                  func (Φ.func f₁) v = func f₁ v
                  theorem FFL.FirstOrder.Tarski.Structure.extendStructure.rel {L₁ : Language} {M : Type u_1} [Nonempty M] (s₁ : Structure L₁ M) {L₂ : Language} {k : ℕ} (Φ : L₁.Hom L₂) [hΦ : Φ.Injective] (r₁ : L₁.Rel k) (v : Fin k → M) :
                  rel (Φ.rel r₁) v ↔ rel r₁ v
                  theorem FFL.FirstOrder.Tarski.Structure.extendStructure.val_lMap {L₁ : Language} {M : Type u_1} [Nonempty M] (s₁ : Structure L₁ M) {L₂ : Language} {n : ℕ} {ξ : Type u_3} (Φ : L₁.Hom L₂) [Φ.Injective] (bv : Fin n → M) (fv : ξ → M) (t : Semiterm L₁ ξ n) :
                  theorem FFL.FirstOrder.Tarski.Structure.extendStructure.eval_lMap {L₁ : Language} {M : Type u_1} [Nonempty M] (s₁ : Structure L₁ M) {L₂ : Language} {n : ℕ} {ξ : Type u_3} (Φ : L₁.Hom L₂) [Φ.Injective] (bv : Fin n → M) (fv : ξ → M) {φ : Semiformula L₁ ξ n} :
                  theorem FFL.FirstOrder.Tarski.Structure.extendStructure.models_lMap {L₁ : Language} {M : Type u_1} [Nonempty M] (s₁ : Structure L₁ M) {L₂ : Language} (Φ : L₁.Hom L₂) [Φ.Injective] (φ : Sentence L₁) :
                  theorem FFL.FirstOrder.lMap_models_lMap_iff {L₁ L₂ : Language} (Φ : L₁.Hom L₂) [Φ.Injective] {T : Theory L₁} {φ : Sentence L₁} :
                  theorem FFL.FirstOrder.satisfiable_lMap {L₁ L₂ : Language} (Φ : L₁.Hom L₂) [Φ.Injective] {T : Theory L₁} (s : Satisfiable T) :