Documentation

DescriptiveComplexity.TransitiveClosureFO

First-order logic sits inside FO(TC), and inside FO(DTC) #

The trivial half of FO ⊆ FO(TC), needed to state the strict inclusion that DescriptiveComplexity.Problems.Even proves: a sentence is the walk that takes no step at all – arity 0, one mode, no transition, the sentence as the condition on starting nodes and nothing to check at the end. Reachability is then reflexivity, and acceptance is the sentence.

The same walk is deterministic, and for the cheapest of reasons: a walk with no step has no step with a competitor either, so nothing in the argument reads the transition formula and the proof of DescriptiveComplexity.accepts_det_sentenceSpec_iff is the proof of DescriptiveComplexity.accepts_sentenceSpec_iff again. That gives FO(≤) ⊆ FO(DTC) (DescriptiveComplexity.FODefinable.dtcDefinable), hence FO(≤) ⊆ L through DescriptiveComplexity.mem_LOGSPACE_iff – the end of the chain FO(≤) ⊊ AC⁰ ⊆ L ⊆ NL that would otherwise be left implicit, since the strict half of it (DescriptiveComplexity.exists_ac0Definable_not_foDefinable) says nothing about where FO(≤) itself sits.

The converse fails, unconditionally: EVEN is a walk and is not a sentence (DescriptiveComplexity.exists_tcDefinable_not_foDefinable).

The walk that takes no step: the sentence decides the starting node, and the node it starts at is already accepting.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph

    A node of the walk is a starting node exactly when the sentence holds: the tuple is empty, so there is nothing for the relabeling to carry.

    Dependency graph
    Dependency graph

    The deterministic reading of the same walk accepts on the same instances. The proof does not mention the transition formula at all – neither direction takes a step – which is precisely why determinization costs nothing here.

    Dependency graph

    A first-order definable problem is FO(TC) definable: the walk that takes no step.

    Dependency graph

    A first-order definable problem is FO(DTC) definable, hence in DescriptiveComplexity.LOGSPACE by DescriptiveComplexity.mem_LOGSPACE_iff: the walk that takes no step is deterministic for want of any step to compete.

    Dependency graph