Isomorphism assembly and restriction for row assemblies #
Over arbitrary row types and fiber families. Throughout, R, S are row types,
C : R → Label U → Type, D : S → Label U → Type are fiber families with Lc-structures on
every fiber, and the assembled structures are Carrier R C, Carrier S D
(ModelTheory/FiberAssembly.lean).
- Exact interpretation on canonical fiber points (
relMap_lift_pt,relMap_own_pt,relMap_lab_pt,relMap_lift0_row): the lifted symbols evaluated on points of one fiber are exactly the component relations there. Uses only injectivity of the constructors. - Assembly (
assemble): a bijection of rowse : R ≃ Stogether with component isomorphismsf r τ : C r τ ≃[Lc] D (e r) τfor every row and label induces an isomorphismCarrier R C ≃[lang U Lc] Carrier S D, sendingrow r ↦ row (e r)andpt r τ x ↦ pt (e r) τ (f r τ x). No relationality ofLc, no inhabited fibers, and no order-preservation ofeare assumed: the supplied component isomorphisms carry the component nullary facts throughmap_relat arity0. - Restriction: an arbitrary assembled isomorphism
gsends rows to rows (restrictRows g : R ≃ S) and the fiber(r, τ)onto the fiber(restrictRows g r, τ); nullary facts restrict with no fiber point required (restrict_lift0). Neither of these needs relationality. The restrictionrestrictFiber g r τ : C r τ ≃[Lc] D (restrictRows g r) τto a component isomorphism requires[Lc.IsRelational], because the assembly encodes only relation symbols; it too needs no fiber point. - Compatibility equations:
assemble_row,assemble_pt(definitional),restrictRows_apply,restrictFiber_apply,restrictRows_assemble, andrestrictFiber_assemble_pt: restricting the assembled isomorphism returns the supplied component isomorphism, as an equality of the images in the carrier.
Full-profile bounds, companions, and effective presentations are outside this module.
Constructor injectivity, packaged #
Exact interpretation on canonical fiber points #
A lifted relation on points of one fiber is the component relation there.
Assembly #
Assembly of an isomorphism from a row bijection and component isomorphisms. No relationality, no inhabited fibers, no order-preservation.
Equations
- FirstOrder.Language.FiberAssembly.assemble e f = { toEquiv := Equiv.ofBijective (FirstOrder.Language.FiberAssembly.assembleFun✝ e f) ⋯, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Restriction #
Restriction to rows: the row bijection of an assembled isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restriction to a labeled fiber: the component isomorphism induced by an assembled
isomorphism. This is the one construction needing [Lc.IsRelational], because the assembly
encodes only relation symbols; no fiber point is required.
Equations
- FirstOrder.Language.FiberAssembly.restrictFiber g r τ = { toEquiv := Equiv.ofBijective (FirstOrder.Language.FiberAssembly.fiberMap✝ g r τ) ⋯, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Nullary facts restrict along an assembled isomorphism, with no fiber point required.
Compatibility of restriction with assembly #
Restricting the assembled isomorphism returns the supplied component isomorphism: the two images of a fiber point in the carrier are equal.