FO(≤, PFP) is contained in SO(TC) #
The easy half of the capture theorem FO(≤, PFP) = PSPACE (Abiteboul–Vianu
1989; Ebbinghaus–Flum 1995,
ch. 7): a partial fixed-point iteration is a deterministic walk on the
state space SO(TC) walks on – the assignments of the block – so a
DescriptiveComplexity.StepDef read partially translates into a
DescriptiveComplexity.SOTCSpec verbatim
(DescriptiveComplexity.StepDef.toSOTCSpec):
- the walk's states are the assignments of the same block;
- its transition sentence says «the second copy is one application of the
step formulas to the first» (
DescriptiveComplexity.StepDef.nextSentence); - its source is the empty assignment
(
DescriptiveComplexity.StepDef.botSentence); - its target says «the state is a fixed point of the step, and the output
holds» (
DescriptiveComplexity.StepDef.isFixedPtF, conjoined with the output).
The states reachable from the source along the deterministic transition are
exactly the partial stages, so acceptance is
DescriptiveComplexity.StepDef.PFPHolds
(DescriptiveComplexity.StepDef.accepts_toSOTCSpec) – with no divergence
detection: under the convergence-requiring semantics of
DescriptiveComplexity.FixedPointPartial, a diverging iteration simply
reaches no target state. This is what the divergence convention buys; the
textbook convention would need a step counter to make divergence positively
detectable, and a counter is the one thing this translation would otherwise
need the order for.
Whence FO(≤, PFP) ⊆ PSPACE: DescriptiveComplexity.PFPDefinable.sotcDefinable
and DescriptiveComplexity.mem_PSPACE_of_pfpDefinable. The converse
inclusion – PSPACE ⊆ FO(≤, PFP), completing the capture – iterates the
PSPACE-complete deterministic machine problem and is built in
DescriptiveComplexity.FixedPointPartialMachine.
DescriptiveComplexity.StepDef.isFixedPtF is also the guard that reads a
definition of this library in the textbook divergence convention – see the
divergence discussion in DescriptiveComplexity.FixedPointPartial.
Enumerating the variables of a block #
The relation variables of a block, as a list: the sentences below conjoin one clause per variable.
Equations
Instances For
Dependency graph
Dependency graph
The three sentences of the walk #
The atom of a block variable in the second copy of the block, over two copies.
Equations
Instances For
Dependency graph
«The second copy of the block is one application of the step formulas to the first»: the transition sentence of the walk.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
«Every relation of the block is empty»: the source sentence of the walk.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
«The state is a fixed point of the step formulas», as a sentence over one
copy of the block. Also the guard that transfers a definition between the two
divergence conventions – see DescriptiveComplexity.FixedPointPartial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Their semantics #
Dependency graph
Dependency graph
Dependency graph
The walk of a partial iteration #
The SO(TC) specification of a partial fixed-point definition: walk the deterministic iteration of the step formulas from the empty assignment, and accept at a stable stage satisfying the output.
Equations
- d.toSOTCSpec = { B := d.B, step := d.nextSentence, src := d.botSentence, tgt := d.isFixedPtF ⊓ d.out }
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The states reachable from the empty assignment are exactly the partial stages.
Dependency graph
Acceptance of the walk is the value of the partial definition: a stable stage satisfying the output is reachable from the empty assignment exactly when the iteration converges to a limit satisfying the output.
Dependency graph
FO(≤, PFP) is contained in PSPACE #
Every FO(≤, PFP) definable problem is SO(TC) definable: the partial iteration is a deterministic walk on the assignments of its own block.
Dependency graph
FO(≤, PFP) is contained in PSPACE.