Pulling an exponential expansion back through an interpretation #
An interpretation followed by an expansion is an expansion. Given an
ordered first-order interpretation I of L' in L and an exponential
expansion X of L'-structures, the composite A ↦ X.Map (I.Map A) is again
an exponential expansion of L-structures,
DescriptiveComplexity.ExpExpansion.pullOrdered. This is what makes
DescriptiveComplexity.ExpDefinable closed under (ordered) first-order
reductions, hence DescriptiveComplexity.ComplexityClass.exp a genuine
complexity class; and, read the other way round, it is the formal content of
the side condition the succinctness literature attaches to its upgrade theorem
– that the reduction must act on the description rather than on the described
instance.
Three existing pieces do the work, and no new mathematics is needed.
- The order of the interpreted universe is definable
(
DescriptiveComplexity.FOInterpretation.ordExtend): an expansion's sentences see the order of the structure they expand, so pulling them back throughIrequiresIto define that order. It does, lexicographically, andDescriptiveComplexity.FOInterpretation.ordExtendLEquivsays the extended interpretation produces exactly the interpreted structure with the lexicographic order. - A block pulls back through an interpretation
(
DescriptiveComplexity.SOBlock.pull,DescriptiveComplexity.FOInterpretation.extendSO): ana-ary relation variable onTag × A^dbecomes one(a·d)-ary relation variable onAper tuple of tags, and assignments correspond bijectively (DescriptiveComplexity.SOBlock.pullAssignEquiv). - Replication commutes with that pullback
(
DescriptiveComplexity.SOBlock.homAssign_replicatePullHom), definitionally, which is why the defining sentences of the composite are the pulled ones read through a renaming of relation variables and nothing more.
The chain of transports is the one
DescriptiveComplexity.SecondOrderTransitiveClosurePull runs for an
DescriptiveComplexity.SOTCSpec, stated here over an arbitrary block so that
one lemma – DescriptiveComplexity.ExpExpansion.realize_extendSO_pullSentence
– serves both the domain sentence (one copy of the block) and every defining
sentence (as many copies as the symbol has arguments).
Realizing a pulled block-expanded sentence #
The transport lemma. A sentence over the ordered vocabulary of L'
expanded by a block, read in the interpreted universe with the block
interpreted by ρ, says in A exactly what its pullback says with the pulled
block interpreted by the pulled assignment.
The three steps are the three ingredients of the module docstring: pull the
sentence through the block-extended interpretation, identify the interpreted
structure of the block extension with the block expansion of the interpreted
structure, and identify the order the extended interpretation defines with the
lexicographic order of
DescriptiveComplexity.FOInterpretation.mapLinearOrder.
Dependency graph
The pulled expansion #
An interpretation followed by an expansion is an expansion: the tags and the expanded vocabulary are unchanged, the block is pulled back, and every sentence is pulled back through the order-extended, block-extended interpretation – the defining sentences also being read through the renaming of relation variables that identifies the pullback of a replicated block with the replication of the pulled block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The universes and the relations match #
The pulled expansion has the same expanded vocabulary as the original, by
definition; but DescriptiveComplexity.ExpExpansion.pullOrdered is not
reducible, so the expanded structure has to be named rather than found by
instance search. DescriptiveComplexity.ExpExpansion.pullOrderedStructure is
that name, and it is the very term a goal about X.pullOrdered I elaborates
to.
The expanded structure of the pulled expansion, at the vocabulary of the original expansion – the two vocabularies being equal by definition.
Equations
- X.pullOrderedStructure I A = (X.pullOrdered I).mapStructure A
Instances For
Dependency graph
The domain condition of the pulled expansion, at the assignment pulled from the interpreted universe, is the domain condition of the original expansion.
Dependency graph
The domain condition of the pulled expansion, read at a base assignment:
the same condition on the assignment it merges to. This is
DescriptiveComplexity.ExpExpansion.domHolds_pullOrdered in the direction the
inverse of the universe bijection consumes it, stated at a variable
assignment so that the round-trip rewrite happens away from any subtype
coercion.
Dependency graph
The relations match: the defining sentence of the pulled expansion, at the pulled assignments, says what the original defining sentence says of the points of the expansion of the interpreted structure.
Dependency graph
The expanded universes are isomorphic: the expansion of the interpreted structure is the pulled expansion of the base structure.
The bijection is DescriptiveComplexity.SOBlock.pullAssign on assignments,
with DescriptiveComplexity.SOBlock.mergeAssign as its inverse; the tags are
carried unchanged.
Equations
- One or more equations did not get rendered due to their size.