Documentation

Foundation.FirstOrder.Ultraproduct

structure LO.FirstOrder.Structure.Uprod {I : Type u} (A : I β†’ Type u) (𝓀 : Ultrafilter I) :
  • val (i : I) : A i
Instances For
    @[implicit_reducible]
    instance LO.FirstOrder.Structure.UprodStruc {L : Language} {I : Type u} (A : I β†’ Type u) [s : (i : I) β†’ Structure L (A i)] (𝓀 : Ultrafilter I) :
    Structure L (Uprod A 𝓀)
    Equations
    • One or more equations did not get rendered due to their size.
    instance LO.FirstOrder.Structure.instNonemptyUprod {I : Type u} (A : I β†’ Type u) (𝓀 : Ultrafilter I) [Nonempty I] [βˆ€ (i : I), Nonempty (A i)] :
    Nonempty (Uprod A 𝓀)
    @[simp]
    theorem LO.FirstOrder.Structure.func_Uprod {L : Language} {I : Type u} (A : I β†’ Type u) [s : (i : I) β†’ Structure L (A i)] (𝓀 : Ultrafilter I) {k : β„•} (f : L.Func k) (v : Fin k β†’ Uprod A 𝓀) :
    func f v = { val := fun (i : I) => func f fun (x : Fin k) => (v x).val i }
    @[simp]
    theorem LO.FirstOrder.Structure.rel_Uprod {L : Language} {I : Type u} (A : I β†’ Type u) [s : (i : I) β†’ Structure L (A i)] (𝓀 : Ultrafilter I) {k : β„•} (r : L.Rel k) (v : Fin k β†’ Uprod A 𝓀) :
    rel r v ↔ {i : I | rel r fun (x : Fin k) => (v x).val i} ∈ 𝓀
    theorem LO.FirstOrder.Semiterm.val_Uprod {n : β„•} {L : Language} {ΞΎ : Type v} {I : Type u} (A : I β†’ Type u) [s : (i : I) β†’ Structure L (A i)] (𝓀 : Ultrafilter I) (e : Fin n β†’ Structure.Uprod A 𝓀) (Ξ΅ : ΞΎ β†’ Structure.Uprod A 𝓀) (t : Semiterm L ΞΎ n) :
    val e Ξ΅ t = { val := fun (i : I) => val (fun (x : Fin n) => (e x).val i) (fun (x : ΞΎ) => (Ξ΅ x).val i) t }
    theorem LO.FirstOrder.Semiformula.val_vecCons_val_eq {n : β„•} {I : Type u} {A : I β†’ Type u} {𝓀 : Ultrafilter I} {e : Fin n β†’ Structure.Uprod A 𝓀} {z : Structure.Uprod A 𝓀} {i : I} :
    (z.val i :> fun (x : Fin n) => (e x).val i) = fun (x : Fin n.succ) => ((z :> e) x).val i
    theorem LO.FirstOrder.Semiformula.eval_Uprod {n : β„•} {L : Language} {ΞΎ : Type v} {I : Type u} {A : I β†’ Type u} [s : (i : I) β†’ Structure L (A i)] {𝓀 : Ultrafilter I} {e : Fin n β†’ Structure.Uprod A 𝓀} {Ξ΅ : ΞΎ β†’ Structure.Uprod A 𝓀} [βˆ€ (i : I), Nonempty (A i)] {Ο† : Semiformula L ΞΎ n} :
    (Eval e Ξ΅) Ο† ↔ {i : I | (Eval (fun (x : Fin n) => (e x).val i) fun (x : ΞΎ) => (Ξ΅ x).val i) Ο†} ∈ 𝓀
    theorem LO.FirstOrder.Semiformula.val_Uprod {L : Language} {ΞΎ : Type v} {I : Type u} {A : I β†’ Type u} [s : (i : I) β†’ Structure L (A i)] {𝓀 : Ultrafilter I} {Ξ΅ : ΞΎ β†’ Structure.Uprod A 𝓀} [βˆ€ (i : I), Nonempty (A i)] {Ο† : Formula L ΞΎ} :
    (Evalf Ξ΅) Ο† ↔ {i : I | (Evalf fun (x : ΞΎ) => (Ξ΅ x).val i) Ο†} ∈ 𝓀
    theorem LO.FirstOrder.models_Uprod {L : Language} {I : Type u} {A : I β†’ Type u} [s : (i : I) β†’ Structure L (A i)] {𝓀 : Ultrafilter I} [Nonempty I] [βˆ€ (i : I), Nonempty (A i)] {Ο† : Sentence L} :
    (Structure.Uprod A 𝓀)↓[L] ⊧ Ο† ↔ {i : I | (A i)↓[L] ⊧ Ο†} ∈ 𝓀
    def LO.FirstOrder.Sentence.domain {L : Language} {I : Type u} (A : I β†’ Type u) [s : (i : I) β†’ Structure L (A i)] [βˆ€ (i : I), Nonempty (A i)] (Ο† : Sentence L) :
    Set I
    Equations
    Instances For
      @[reducible, inline]
      Equations
      Instances For
        theorem LO.FirstOrder.ultrafilter_exists {L : Language} {T : Theory L} (A : FinSubtheory T β†’ Type u) [s : (i : FinSubtheory T) β†’ Structure L (A i)] [βˆ€ (t : FinSubtheory T), Nonempty (A t)] (H : βˆ€ (i : FinSubtheory T), (A i)↓[L] ⊧* ↑↑i) :
        βˆƒ (𝓀 : Ultrafilter (FinSubtheory T)), Sentence.domain A '' T βŠ† (↑𝓀).sets
        theorem LO.FirstOrder.compactness_aux {L : Language} {T : Theory L} :
        Satisfiable T ↔ βˆ€ (i : FinSubtheory T), Satisfiable ↑↑i
        theorem LO.FirstOrder.compact {L : Language} {T : Theory L} :
        Satisfiable T ↔ βˆ€ (u : Finset (Sentence L)), ↑u βŠ† T β†’ Satisfiable ↑u