Documentation

DescriptiveComplexity.FixedPointReductionSpace

PSPACE is closed under FO(LFP) reductions #

DescriptiveComplexity.mem_PSPACE_of_lfpReduction: a problem reducing to a polynomial-space problem by a polynomial-time reduction is in polynomial space. With it, every class of this library from PTIME to PSPACE – and every level of the polynomial hierarchy in between – is closed under ≤ˡᶠᵖ, hence under ≤ᵗᶜ and ≤ᵈᵗᶜ.

The route, and why it is the fixed-point one #

DescriptiveComplexity.PSPACE is defined by SO(TC), so the natural attempt is to absorb the reduction's induction into the walk: give the walk's state a copy of the induction's variables, iterate the induction in it, freeze, then run the original walk. That works, and it is the same construction as the one carried out here – but on the fixed-point side of the capture theorem it costs one construction instead of two, because the pullback half is already built: DescriptiveComplexity.StepDef.pullRel pulls a simultaneous iteration through a relativized interpretation, where SO(TC) would need that written afresh.

So the proof goes: FO(≤, PFP) is PSPACE (DescriptiveComplexity.PSPACE through DescriptiveComplexity.pfpDefinable_iff_mem_PSPACE); the membership witness of Q is pulled back through the reduction's interpretation (DescriptiveComplexity.StepDef.pfpHolds_pullRel); and the reduction's own induction is absorbed by DescriptiveComplexity.StepDef.pfpHolds_stratifyPFP – an inflationary stratum gating a partial one, which is the walk-with-a-preliminary-phase written as an iteration.

That last step is where the earlier pessimism about FO(PFP) was wrong: what a partial iteration cannot do is gate itself, and it does not have to – the gate is an arity-0 variable of the state, set by the inflationary stratum, and the partial stratum is merely conjoined with it.

FO(≤, PFP) definability is closed under FO(LFP) reductions: the membership iteration is pulled back through the (order-extended) interpretation, and the reduction's induction is absorbed as an inflationary stratum gating it.

Dependency graph

PSPACE is closed under FO(LFP) reductions.

Dependency graph

PSPACE is closed under FO(TC) reductions.

Dependency graph

PSPACE is closed under FO(DTC) reductions.

Dependency graph

SO(TC) definability is closed under FO(LFP) reductions – the same statement as DescriptiveComplexity.mem_PSPACE_of_lfpReduction, at the logic PSPACE is defined by.

Dependency graph