Composition of FO(LFP) reductions #
Transitivity of P ≤ˡᶠᵖ Q (DescriptiveComplexity.LFPReduction.trans), the
FO(LFP) analogue of DescriptiveComplexity.RelOrderedFOReduction.trans. It is
what makes ≤ˡᶠᵖ a reduction order, and what the hardness notion of
DescriptiveComplexity.FixedPointReductionClosure consumes.
Why this is a theorem and not bookkeeping #
Composing two first-order interpretations pulls the outer formulas back through the inner one. Here the outer formulas may also read the outer induction, run over the interpreted structure, so composition has to say that a fixed point computed on the interpreted structure is computed by an induction on the base – after the inner induction, whose value the inner interpretation reads. Nothing about that is formal: it is the substitution property of the logic, and the statement classically known as “FO(LFP) reductions compose”.
Three constructions already in the library supply the three halves:
- the outer induction pulls back through the inner (relativized)
interpretation,
DescriptiveComplexity.StepDef.pullRel, giving an induction over the base expanded by the inner induction's block; - two inductions run one after the other are one induction,
DescriptiveComplexity.StepDef.stratify– whose gate fires exactly when the first has converged, so the composite's limit has the inner limit and the pulled outer limit as its two parts (DescriptiveComplexity.StepDef.strat1Assign_inflLimit,DescriptiveComplexity.StepDef.strat2Assign_inflLimit); - the interpretations compose, with the guarded pullback that a definable
domain requires,
DescriptiveComplexity.RelFOInterpretation.compRel.
DescriptiveComplexity.LFPInterpretation.compLEquiv assembles them: the
composite interpretation produces the twice-interpreted structure.
The order of the intermediate structure #
As for DescriptiveComplexity.OrderedFOReduction.trans, the outer reduction's
formulas mention the order of the intermediate structure, which the inner
interpretation does not produce. The fix is the same – the lexicographic order
on tagged tuples – with one twist: the inner interpretation's source is the
base expanded by its own induction's block, so the lexicographic formula has to
be read there. DescriptiveComplexity.RelFOInterpretation.ordExtendSrc is the
order extension along an arbitrary vocabulary map of the source, of which
DescriptiveComplexity.RelFOInterpretation.ordExtendRel is the identity case.
The order extension, over a larger source vocabulary #
Extension of a relativized interpretation with the lexicographic order on
tagged tuples, the comparison formula being read through a vocabulary map of
the source: this is DescriptiveComplexity.RelFOInterpretation.ordExtendRel
where the source is not the ordered expansion itself but an expansion of it,
as happens when the interpretation reads an induction over the ordered base.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The lexicographic linear order on the interpreted universe of an
interpretation with an arbitrary source vocabulary: as
DescriptiveComplexity.RelFOInterpretation.mapRelLinearOrder, of which this is
the generalization the composition needs.
Equations
- I.mapRelLinearOrderSrc instS = LinearOrder.lift' Subtype.val ⋯
Instances For
Dependency graph
The order-extended interpretation produces exactly the interpreted structure equipped with the lexicographic order, restricted to the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Composition of FO(LFP) interpretations #
The composite of two FO(LFP) interpretations: the two inductions are stratified – the inner one first, then the outer one pulled back through the inner interpretation – and the two interpretations compose with the guarded pullback, read over the stratified block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The composite interpretation produces the twice-interpreted structure. This is the substitution property of FO(LFP): what the composite computes in one induction and one layer of formulas is what the two interpretations compute in sequence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The order of the interpreted structure #
Extension of an FO(LFP) interpretation over an ordered base to one whose target carries the order vocabulary, interpreted by the lexicographic order on tagged tuples. The induction is unchanged; the comparison formula is read over the base expanded by its block.
Equations
- I.ordExtend = { ind := I.ind, toRel := DescriptiveComplexity.RelFOInterpretation.ordExtendSrc FirstOrder.Language.LHom.sumInl I.toRel }
Instances For
Dependency graph
The lexicographic linear order on the universe interpreted by an FO(LFP) interpretation.
Equations
- I.mapLinearOrder A = I.toRel.mapRelLinearOrderSrc (I.expStructure A)
Instances For
Dependency graph
The order-extended interpretation produces exactly the interpreted structure equipped with the lexicographic order.
Equations
Instances For
Dependency graph
Transitivity #
Transitivity of FO(LFP) reductions: if P ≤ˡᶠᵖ Q and Q ≤ˡᶠᵖ R, then
P ≤ˡᶠᵖ R. The two inductions are stratified into one, the interpretations
compose, and the intermediate structure is ordered lexicographically – the same
three ingredients as DescriptiveComplexity.RelOrderedFOReduction.trans, plus
the stratification that is this notion's own.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Trans instance for FO(LFP) reductions, enabling calc chains.
Equations
- One or more equations did not get rendered due to their size.