Documentation

Logic.FirstOrder.Completeness.SubLanguage

def LO.FirstOrder.Language.subLanguage (L : LO.FirstOrder.Language) (pfunc : (k : ℕ) → L.Func k → Prop) (prel : (k : ℕ) → L.Rel k → Prop) :
Equations
  • L.subLanguage pfunc prel = { Func := fun (k : ℕ) => Subtype (pfunc k), Rel := fun (k : ℕ) => Subtype (prel k) }
Instances For
    def LO.FirstOrder.Language.ofSubLanguage (L : LO.FirstOrder.Language) {pf : (k : ℕ) → L.Func k → Prop} {pr : (k : ℕ) → L.Rel k → Prop} :
    (L.subLanguage pf pr).Hom L
    Equations
    • L.ofSubLanguage = { func := fun {k : ℕ} => Subtype.val, rel := fun {k : ℕ} => Subtype.val }
    Instances For
      @[simp]
      theorem LO.FirstOrder.Language.ofSubLanguage_onFunc (L : LO.FirstOrder.Language) :
      ∀ {pfunc : (k : ℕ) → L.Func k → Prop} {prel : (k : ℕ) → L.Rel k → Prop} {a : ℕ} {p : (L.subLanguage pfunc prel).Func a}, L.ofSubLanguage.func p = ↑p
      @[simp]
      theorem LO.FirstOrder.Language.ofSubLanguage_onRel (L : LO.FirstOrder.Language) :
      ∀ {pfunc : (k : ℕ) → L.Func k → Prop} {prel : (k : ℕ) → L.Rel k → Prop} {a : ℕ} {p : (L.subLanguage pfunc prel).Rel a}, L.ofSubLanguage.rel p = ↑p
      def LO.FirstOrder.Semiterm.lang {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} :
      LO.FirstOrder.Semiterm L μ n → Finset ((k : ℕ) × L.Func k)
      Equations
      Instances For
        @[simp]
        theorem LO.FirstOrder.Semiterm.lang_func {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} {k : ℕ} (f : L.Func k) (v : Fin k → LO.FirstOrder.Semiterm L μ n) :
        ⟨k, f⟩ ∈ (LO.FirstOrder.Semiterm.func f v).lang
        theorem LO.FirstOrder.Semiterm.lang_func_ss {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} {k : ℕ} (f : L.Func k) (v : Fin k → LO.FirstOrder.Semiterm L μ n) (i : Fin k) :
        (v i).lang ⊆ (LO.FirstOrder.Semiterm.func f v).lang
        def LO.FirstOrder.Semiterm.toSubLanguage' {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) (t : LO.FirstOrder.Semiterm L μ n) :
        (∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ t.lang → pf k f) → LO.FirstOrder.Semiterm (L.subLanguage pf pr) μ n
        Equations
        Instances For
          @[simp]
          theorem LO.FirstOrder.Semiterm.lMap_toSubLanguage' {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) (t : LO.FirstOrder.Semiterm L μ n) (h : ∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ t.lang → pf k f) :
          noncomputable def LO.FirstOrder.Semiformula.langFunc {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} :
          LO.FirstOrder.Semiformula L μ n → Finset ((k : ℕ) × L.Func k)
          Equations
          • LO.FirstOrder.Semiformula.verum.langFunc = ∅
          • LO.FirstOrder.Semiformula.falsum.langFunc = ∅
          • (LO.FirstOrder.Semiformula.rel a v).langFunc = Finset.univ.biUnion fun (i : Fin arity) => (v i).lang
          • (LO.FirstOrder.Semiformula.nrel a v).langFunc = Finset.univ.biUnion fun (i : Fin arity) => (v i).lang
          • (p.and q).langFunc = p.langFunc ∪ q.langFunc
          • (p.or q).langFunc = p.langFunc ∪ q.langFunc
          • p.all.langFunc = p.langFunc
          • p.ex.langFunc = p.langFunc
          Instances For
            noncomputable def LO.FirstOrder.Semiformula.langRel {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} {n : ℕ} :
            LO.FirstOrder.Semiformula L μ n → Finset ((k : ℕ) × L.Rel k)
            Equations
            Instances For
              theorem LO.FirstOrder.Semiformula.langFunc_rel_ss {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} {k : ℕ} (r : L.Rel k) (v : Fin k → LO.FirstOrder.Semiterm L μ n) (i : Fin k) :
              (v i).lang ⊆ (LO.FirstOrder.Semiformula.rel r v).langFunc
              def LO.FirstOrder.Semiformula.toSubLanguage' {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) {n : ℕ} (p : LO.FirstOrder.Semiformula L μ n) :
              (∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ p.langFunc → pf k f) → (∀ (k : ℕ) (r : L.Rel k), ⟨k, r⟩ ∈ p.langRel → pr k r) → LO.FirstOrder.Semiformula (L.subLanguage pf pr) μ n
              Equations
              Instances For
                @[simp]
                theorem LO.FirstOrder.Semiformula.lMap_toSubLanguage' {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} (pf : (k : ℕ) → L.Func k → Prop) (pr : (k : ℕ) → L.Rel k → Prop) {n : ℕ} (p : LO.FirstOrder.Semiformula L μ n) (hf : ∀ (k : ℕ) (f : L.Func k), ⟨k, f⟩ ∈ p.langFunc → pf k f) (hr : ∀ (k : ℕ) (r : L.Rel k), ⟨k, r⟩ ∈ p.langRel → pr k r) :
                noncomputable def LO.FirstOrder.Semiformula.languageFuncIndexed {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] {μ : Type u_1} {n : ℕ} (p : LO.FirstOrder.Semiformula L μ n) (k : ℕ) :
                Finset (L.Func k)
                Equations
                • p.languageFuncIndexed k = p.langFunc.preimage (Sigma.mk k) ⋯
                Instances For
                  noncomputable def LO.FirstOrder.Semiformula.languageRelIndexed {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} {n : ℕ} (p : LO.FirstOrder.Semiformula L μ n) (k : ℕ) :
                  Finset (L.Rel k)
                  Equations
                  • p.languageRelIndexed k = p.langRel.preimage (Sigma.mk k) ⋯
                  Instances For
                    @[reducible, inline]
                    abbrev LO.FirstOrder.Semiformula.languageFinset {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} {n : ℕ} (Γ : Finset (LO.FirstOrder.Semiformula L μ n)) :
                    Equations
                    Instances For
                      noncomputable instance LO.FirstOrder.Semiformula.instFintypeFuncLanguageFinset {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} {n : ℕ} (Γ : Finset (LO.FirstOrder.Semiformula L μ n)) (k : ℕ) :
                      Equations
                      noncomputable instance LO.FirstOrder.Semiformula.instFintypeRelLanguageFinset {L : LO.FirstOrder.Language} [(k : ℕ) → DecidableEq (L.Func k)] [(k : ℕ) → DecidableEq (L.Rel k)] {μ : Type u_1} {n : ℕ} (Γ : Finset (LO.FirstOrder.Semiformula L μ n)) (k : ℕ) :
                      Equations
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        instance LO.FirstOrder.Structure.subLanguageStructure {L : LO.FirstOrder.Language} {pf : (k : ℕ) → L.Func k → Prop} {pr : (k : ℕ) → L.Rel k → Prop} {M : Type w} (s : LO.FirstOrder.Structure L M) :
                        LO.FirstOrder.Structure (L.subLanguage pf pr) M
                        Equations
                        noncomputable def LO.FirstOrder.Structure.extendStructure {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (Φ : L₁.Hom L₂) {M : Type w} [Nonempty M] (s : LO.FirstOrder.Structure L₁ M) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          theorem LO.FirstOrder.Structure.extendStructure.func {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (Φ : L₁.Hom L₂) {M : Type u} [Nonempty M] (s₁ : LO.FirstOrder.Structure L₁ M) {k : ℕ} (injf : Function.Injective Φ.func) (f₁ : L₁.Func k) (v : Fin k → M) :
                          theorem LO.FirstOrder.Structure.extendStructure.rel {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (Φ : L₁.Hom L₂) {M : Type u} [Nonempty M] (s₁ : LO.FirstOrder.Structure L₁ M) {k : ℕ} (injr : Function.Injective Φ.rel) (r₁ : L₁.Rel k) (v : Fin k → M) :
                          theorem LO.FirstOrder.Structure.extendStructure.val_lMap {μ : Type u_1} {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (Φ : L₁.Hom L₂) {M : Type u} [Nonempty M] {n : ℕ} (e : Fin n → M) (ε : μ → M) (injf : ∀ (k : ℕ), Function.Injective Φ.func) (s₁ : LO.FirstOrder.Structure L₁ M) (t : LO.FirstOrder.Semiterm L₁ μ n) :
                          theorem LO.FirstOrder.Structure.extendStructure.eval_lMap {μ : Type u_1} {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (Φ : L₁.Hom L₂) (injf : ∀ (k : ℕ), Function.Injective Φ.func) (injr : ∀ (k : ℕ), Function.Injective Φ.rel) {M : Type u} [Nonempty M] (s₁ : LO.FirstOrder.Structure L₁ M) {n : ℕ} (e : Fin n → M) (ε : μ → M) {p : LO.FirstOrder.Semiformula L₁ μ n} :
                          theorem LO.FirstOrder.Structure.extendStructure.models_lMap {L₁ : LO.FirstOrder.Language} {L₂ : LO.FirstOrder.Language} (Φ : L₁.Hom L₂) (injf : ∀ (k : ℕ), Function.Injective Φ.func) (injr : ∀ (k : ℕ), Function.Injective Φ.rel) {M : Type u} [Nonempty M] (s₁ : LO.FirstOrder.Structure L₁ M) (p : LO.FirstOrder.SyntacticFormula L₁) :