Documentation

DescriptiveComplexity.FixedPointPartialSpace

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 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 #

    @[reducible, inline]

    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
            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
              Dependency graph