Morphisms of second-order blocks #
An arity-preserving map of relation variables induces a morphism of the
blocks' vocabularies (DescriptiveComplexity.SOBlock.homLHom), and a sentence
over a base vocabulary expanded by the source block transports to one over
the base expanded by the target block
(DescriptiveComplexity.SOBlock.realize_homSentence): realization against an
assignment of the target block is realization against its pullback along the
map (DescriptiveComplexity.SOBlock.homAssign).
This is the bookkeeping that reads a formula written for one block inside a
larger block containing a copy of it. Its first consumer is the FO(≤, IFP)
→ FO(LFP) translation (DescriptiveComplexity.FixedPointInflationaryLFP),
whose output sentence mentions the original relation variables while the
translated program computes them as one group of a larger block; the
invariant-structure simulations of DescriptiveComplexity.Invariant.Simulation
want it for the same reason.
The vocabulary morphism induced by an arity-preserving map of relation variables.
Equations
Instances For
Dependency graph
The pullback of an assignment of the target block along the map: each source variable reads its image.
Equations
- DescriptiveComplexity.SOBlock.homAssign f hf σ i x = σ (f i) fun (j : Fin (B'.arity (f i))) => x (Fin.cast ⋯ j)
Instances For
Dependency graph
The vocabulary morphism is an expansion between the two induced structures.
Dependency graph
Transport of a formula along a block morphism: realization over the target block's assignment is realization of the original formula over the pulled-back assignment.
Dependency graph
Transport of a sentence along a block morphism: realization over the target block's assignment is realization of the original sentence over the pulled-back assignment.