Documentation

DescriptiveComplexity.Problems.SuccinctReach.Membership

SUCCINCT-REACH is in PSPACE #

The membership half: reachability in a propositionally described transition system is SO(TC) definable, hence in DescriptiveComplexity.PSPACE.

This is the cheapest membership proof in the library, and the reason is structural: SUCCINCT-REACH is the syntactic image of SO(TC), so the specification is a transcription rather than a construction. The walk carries four monadic relation variables:

V, W₁ and W₂ are unconstrained wherever they are not used, so the walk on the four variables projects onto the walk on states, which is what DescriptiveComplexity.succinctReachable_iff_accepts says.

Building the sentences #

The three sentences share three generic shapes, stated over an arbitrary vocabulary so that the same builder and the same realization lemma serve the current copy of the block and the next one:

Three generic sentence shapes #

noncomputable def DescriptiveComplexity.clausesHoldS {L : FirstOrder.Language} (grp : L.Relations 1) (pos neg : L.Relations 2) (nu : L.Relations 1) :

“Every clause of the group grp contains a literal that nu makes true.”

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph
    noncomputable def DescriptiveComplexity.agreeOnS {L : FirstOrder.Language} (mark nu st : L.Relations 1) :

    “On every element marked by mark, the unary relations nu and st agree.”

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      noncomputable def DescriptiveComplexity.writesS {L : FirstOrder.Language} (mark : L.Relations 1) (nxt : L.Relations 2) (nu st : L.Relations 1) :

      “Whenever y is the nxt-successor of an element x marked by mark, nu holds of y exactly when st holds of x.”

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

        The block and the vocabularies #

        The block of the SO(TC) specification of SUCCINCT-REACH: four unary relation variables – the state, the transition witness, and the two endpoint witnesses.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The relation variable holding the current state.

          Equations
          Instances For
            Dependency graph
            @[reducible, inline]

            The relation variable holding the valuation witnessing the transition that entered the current state.

            Equations
            Instances For
              Dependency graph
              @[reducible, inline]

              The relation variable holding the valuation witnessing the source condition.

              Equations
              Instances For
                Dependency graph
                @[reducible, inline]

                The relation variable holding the valuation witnessing the target condition.

                Equations
                Instances For
                  Dependency graph

                  The symbol of the relation variable i of the block.

                  Equations
                  Instances For
                    Dependency graph
                    @[reducible, inline]

                    The input vocabulary together with the order, over which the sentences of an SO(TC) specification live.

                    Equations
                    Instances For
                      Dependency graph
                      @[reducible, inline]

                      The vocabulary of the endpoint sentences: one copy of the block.

                      Equations
                      Instances For
                        Dependency graph
                        @[reducible, inline]

                        The vocabulary of the transition sentence: two copies of the block.

                        Equations
                        Instances For
                          Dependency graph
                          @[reducible, inline]

                          An input symbol, in the endpoint vocabulary.

                          Equations
                          Instances For
                            Dependency graph
                            @[reducible, inline]

                            A relation variable of the block, in the endpoint vocabulary.

                            Equations
                            Instances For
                              Dependency graph
                              @[reducible, inline]

                              An input symbol, in the transition vocabulary.

                              Equations
                              Instances For
                                Dependency graph
                                @[reducible, inline]

                                A relation variable of the current copy of the block, in the transition vocabulary.

                                Equations
                                Instances For
                                  Dependency graph
                                  @[reducible, inline]

                                  A relation variable of the next copy of the block, in the transition vocabulary.

                                  Equations
                                  Instances For
                                    Dependency graph

                                    The SO(TC) specification of SUCCINCT-REACH. A transition holds when the next state's transition witness satisfies every transition clause, reads the current state on the state variables and writes the next state on their next-state copies; the endpoint conditions are the two clause groups checked against their own witnesses.

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

                                      Reading the specification back #

                                      The predicate held by the relation variable i in the assignment ρ.

                                      Equations
                                      Instances For
                                        Dependency graph

                                        The assignment holding the given four predicates.

                                        Equations
                                        Instances For
                                          Dependency graph
                                          @[simp]
                                          theorem DescriptiveComplexity.srPred_srAssign {A : Type} (f : Bool × BoolAProp) (i : Bool × Bool) :
                                          srPred (srAssign f) i = f i
                                          Dependency graph

                                          Splitting a conjunction of endpoint sentences, with the block expansion supplied explicitly: instance search does not see through the specification's block field.

                                          Dependency graph

                                          The same splitting for the transition sentence.

                                          Dependency graph
                                          Dependency graph
                                          Dependency graph
                                          Dependency graph
                                          Dependency graph
                                          Dependency graph

                                          A starting state of the specification is a state whose W₁ component witnesses the source condition.

                                          Dependency graph

                                          An accepting state of the specification is a state whose W₂ component witnesses the target condition.

                                          Dependency graph

                                          A transition of the specification is a transition of the system, witnessed by the V component of the state it enters.

                                          Dependency graph

                                          Correctness of the specification #

                                          The specification is correct: it accepts a transition system exactly when some target state is reachable from some source state.

                                          Dependency graph

                                          SUCCINCT-REACH is SO(TC) definable: the walk on states is the walk of the specification, its extra components carrying the existential witnesses a transitive closure cannot quantify on its own.

                                          Dependency graph
                                          Dependency graph