Partial Isomorphisms #
This file defines partial isomorphisms between first-order structures.
Main Definitions #
FirstOrder.Language.PartialEquivis defined so thatL.PartialEquiv M N, annotatedM ≃ₚ[L] N, is the type of equivalences between substructures ofMandN.
A partial L-equivalence, implemented as an equivalence between substructures.
- dom : L.Substructure M
The substructure which is the domain of the equivalence.
- cod : L.Substructure N
The substructure which is the codomain of the equivalence.
- toEquiv : L.Equiv ↥self.dom ↥self.cod
The equivalence between the two subdomains.
Instances For
A partial L-equivalence, implemented as an equivalence between substructures.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FirstOrder.Language.PartialEquiv.instInhabited_self = { default := { dom := ⊤, cod := ⊤, toEquiv := FirstOrder.Language.Equiv.refl L ↥⊤ } }
Maps to the symmetric partial equivalence.
Equations
- f.symm = { dom := f.cod, cod := f.dom, toEquiv := f.toEquiv.symm }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- FirstOrder.Language.PartialEquiv.instPartialOrder = PartialOrder.mk ⋯
Restriction of a partial equivalence to a substructure of the domain.
Equations
- f.domRestrict h = let g := f.cod.subtype.comp (f.toEquiv.toEmbedding.comp (FirstOrder.Language.Substructure.inclusion h)); { dom := A, cod := g.toHom.range, toEquiv := g.equivRange }
Instances For
Restriction of a partial equivalence to a substructure of the codomain.
Equations
- f.codRestrict h = (f.symm.domRestrict h).symm
Instances For
A partial equivalence as an embedding from its domain.
Equations
- f.toEmbedding = f.cod.subtype.comp f.toEquiv.toEmbedding
Instances For
Given a partial equivalence which has the whole structure as domain, returns the corresponding embedding.
Equations
- FirstOrder.Language.PartialEquiv.toEmbeddingOfEqTop h = (h ▸ f.toEmbedding).comp FirstOrder.Language.Substructure.topEquiv.symm.toEmbedding
Instances For
Given a partial equivalence which has the whole structure as domain and as codomain, returns the corresponding equivalence.
Equations
- FirstOrder.Language.PartialEquiv.toEquivOfEqTop h_dom h_cod = FirstOrder.Language.Substructure.topEquiv.comp ((h_dom ▸ h_cod ▸ f.toEquiv).comp FirstOrder.Language.Substructure.topEquiv.symm)
Instances For
Given an embedding, returns the corresponding partial equivalence with ⊤ as domain.
Equations
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The limit of a directed system of PartialEquivs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type of equivalences between finitely generated substructures.
Equations
- L.FGEquiv M N = { f : L.PartialEquiv M N // f.dom.FG }
Instances For
Two structures M and N form an extension pair if the domain of any finitely-generated map
from M to N can be extended to include any element of M.
Equations
Instances For
Equations
- FirstOrder.Language.inhabited_self_FGEquiv = { default := ⟨{ dom := ⊥, cod := ⊥, toEquiv := FirstOrder.Language.Equiv.refl L ↥⊥ }, ⋯⟩ }
Maps to the symmetric finitely-generated partial equivalence.
Equations
- f.symm = ⟨(↑f).symm, ⋯⟩
Instances For
Alias of the forward direction of FirstOrder.Language.IsExtensionPair_iff_cod.
The cofinal set of finite equivalences with a given element in their domain.
Instances For
The cofinal set of finite equivalences with a given element in their codomain.
Instances For
For a countably generated structure M and a structure N, if any partial equivalence
between finitely generated substructures can be extended to any element in the domain,
then there exists an embedding of M in N.
For two countably generated structure M and N, if any PartialEquiv
between finitely generated substructures can be extended to any element in the domain and to
any element in the codomain, then there exists an equivalence between M and N.