Elementary Maps Between First-Order Structures #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main Definitions #
- A
first_order.language.elementary_embedding
is an embedding that commutes with the realizations of formulas. - A
first_order.language.elementary_substructure
is a substructure where the realization of each formula agrees with the realization in the larger model. - The
first_order.language.elementary_diagram
of a structure is the set of all sentences with parameters that the structure satisfies. first_order.language.elementary_embedding.of_models_elementary_diagram
is the canonical elementary embedding of any structure into a model of its elementary diagram.
Main Results #
- The Tarski-Vaught Test for embeddings:
first_order.language.embedding.is_elementary_of_exists
gives a simple criterion for an embedding to be elementary. - The Tarski-Vaught Test for substructures:
first_order.language.embedding.is_elementary_of_exists
gives a simple criterion for a substructure to be elementary.
- to_fun : M → N
- map_formula' : (∀ ⦃n : ℕ⦄ (φ : L.formula (fin n)) (x : fin n → M), φ.realize (self.to_fun ∘ x) ↔ φ.realize x) . "obviously"
An elementary embedding of first-order structures is an embedding that commutes with the realizations of formulas.
Instances for first_order.language.elementary_embedding
- first_order.language.elementary_embedding.has_sizeof_inst
- first_order.language.elementary_embedding.fun_like
- first_order.language.elementary_embedding.has_coe_to_fun
- first_order.language.elementary_embedding.embedding_like
- first_order.language.elementary_embedding.strong_hom_class
- first_order.language.elementary_embedding.inhabited
Equations
- first_order.language.elementary_embedding.fun_like = {coe := λ (f : L.elementary_embedding M N), f.to_fun, coe_injective' := _}
Equations
- first_order.language.elementary_embedding.embedding_like = {coe := fun_like.coe (show fun_like (L.elementary_embedding M N) M (λ (_x : M), N), from infer_instance), coe_injective' := _, injective' := _}
Equations
An elementary embedding is also a first-order embedding.
Equations
- f.to_embedding = {to_embedding := {to_fun := ⇑f, inj' := _}, map_fun' := _, map_rel' := _}
An elementary embedding is also a first-order homomorphism.
The identity elementary embedding from a structure to itself
Equations
- first_order.language.elementary_embedding.refl L M = {to_fun := id M, map_formula' := _}
Equations
Composition of elementary embeddings
Composition of elementary embeddings is associative.
The elementary diagram of an L
-structure is the set of all sentences with parameters it
satisfies.
The canonical elementary embedding of an L
-structure into any model of its elementary diagram
Equations
The Tarski-Vaught test for elementarity of an embedding.
Bundles an embedding satisfying the Tarski-Vaught test as an elementary embedding.
Equations
- f.to_elementary_embedding htv = {to_fun := ⇑f, map_formula' := _}
A first-order equivalence is also an elementary embedding.
Equations
- f.to_elementary_embedding = {to_fun := ⇑f, map_formula' := _}
A substructure is elementary when every formula applied to a tuple in the subtructure agrees with its value in the overall structure.
- to_substructure : L.substructure M
- is_elementary' : self.to_substructure.is_elementary
An elementary substructure is one in which every formula applied to a tuple in the subtructure agrees with its value in the overall structure.
Instances for first_order.language.elementary_substructure
- first_order.language.elementary_substructure.has_sizeof_inst
- first_order.language.elementary_substructure.first_order.language.substructure.has_coe
- first_order.language.elementary_substructure.set_like
- first_order.language.elementary_substructure.has_top
- first_order.language.elementary_substructure.inhabited
Equations
- first_order.language.elementary_substructure.set_like = {coe := λ (x : L.elementary_substructure M), x.to_substructure.carrier, coe_injective' := _}
The natural embedding of an L.substructure
of M
into M
.
Equations
- S.subtype = {to_fun := coe coe_to_lift, map_formula' := _}
The substructure M
of the structure M
is elementary.
Equations
Equations
The Tarski-Vaught test for elementarity of a substructure.
Bundles a substructure satisfying the Tarski-Vaught test as an elementary substructure.
Equations
- S.to_elementary_substructure htv = {to_substructure := S, is_elementary' := _}