SUCCINCT-REACH: reachability in a propositionally described transition system #
The vocabulary and semantics of the canonical PSPACE problem of this library: reachability in a graph whose vertices are the truth assignments to a set of state variables and whose edges, source set and target set are described by three CNF formulas rather than listed. The graph has exponentially many vertices in the size of the instance – it is succinctly represented – which is exactly why walking it costs polynomial space and not polynomial time.
Under other names the same problem is propositional STRIPS plan existence, and it is the reachability query at the heart of symbolic model checking.
The instance #
An instance is a FirstOrder.Language.transSys-structure. Its elements are
propositional variables and clauses at once, as in
FirstOrder.Language.sat, with
stateVar x:xis a state variable – a bit of the vertex being walked;next x y:yis the next-state copy of the state variablex, so that one clause set can talk about a state and its successor at once;stepCl c,srcCl c,tgtCl c:cis a clause of the transition, of the source or of the target formula;posIn c x,negIn c x: the variablexoccurs positively (negatively) in the clausec, as for SAT.
Variables that are neither state variables nor next-state copies are auxiliary: they are quantified existentially inside each clause group, which is what lets a CNF describe an arbitrary transition relation (a Tseitin encoding introduces exactly such variables for its gates).
The semantics #
A state is an arbitrary predicate on the universe; only its restriction to
the state variables matters, since that is all the clause groups can read
(DescriptiveComplexity.ReadsCur). There is a transition from S to S' when
some assignment satisfies every transition clause while reading S on the
state variables and writing S' on their next-state copies
(DescriptiveComplexity.StepRel). The instance is a yes-instance when some target
state is reachable from some source state
(DescriptiveComplexity.SuccinctReachable).
This is the syntactic image of SO(TC), in the same sense that a CNF is the
syntactic image of an existential second-order block: a state is a monadic
relation variable, a transition is a first-order condition on two consecutive
states, and reachability is the transitive closure. That is what makes the
membership half cheap (DescriptiveComplexity.Problems.SuccinctReach.Membership) and
the hardness half a Tseitin translation.
Relation symbols of the language of propositionally described transition systems.
- stateVar : transSysRel 1
stateVar x: the elementxis a state variable. - next : transSysRel 2
next x y: the elementyis the next-state copy of the state variablex. - stepCl : transSysRel 1
stepCl c: the elementcis a clause of the transition formula. - srcCl : transSysRel 1
srcCl c: the elementcis a clause of the source formula. - tgtCl : transSysRel 1
tgtCl c: the elementcis a clause of the target formula. - posIn : transSysRel 2
posIn c x: the variablexoccurs positively in the clausec. - negIn : transSysRel 2
negIn c x: the variablexoccurs negatively in the clausec.
Instances For
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The relational vocabulary of succinctly described transition systems: the
state variables and their next-state copies, three groups of clauses, and the
two literal-occurrence predicates of FirstOrder.Language.sat.
Equations
- FirstOrder.Language.transSys = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.transSysRel }
Instances For
Dependency graph
Dependency graph
The symbol for “is a state variable”.
Instances For
Dependency graph
The symbol for “is the next-state copy of”.
Instances For
Dependency graph
The symbol for “is a clause of the transition formula”.
Instances For
Dependency graph
The symbol for “is a clause of the source formula”.
Instances For
Dependency graph
The symbol for “is a clause of the target formula”.
Instances For
Dependency graph
The symbol for “occurs positively in”.
Instances For
Dependency graph
The symbol for “occurs negatively in”.
Instances For
Dependency graph
A valuation satisfies a group of clauses when every clause of the group
contains a literal it makes true. Elements that are not clauses of the group
impose nothing, exactly as in DescriptiveComplexity.Satisfiable.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The valuation ν reads the state S: on every state variable it agrees
with S. This is the only way a clause group sees the current state.
Equations
- DescriptiveComplexity.ReadsCur A ν S = ∀ (x : A), FirstOrder.Language.Structure.RelMap FirstOrder.Language.tsStateVar ![x] → (ν x ↔ S x)
Instances For
Dependency graph
The valuation ν writes the state S': on the next-state copy of every
state variable it holds exactly the value S' gives to that variable.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
One transition of the system: some valuation satisfies every transition
clause while reading S on the state variables and writing S' on their
next-state copies. The valuation is existentially quantified, so the auxiliary
variables of the transition formula are free to take whatever values the
clauses need.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
A state is a source state when some valuation reading it satisfies every clause of the source formula.
Equations
- DescriptiveComplexity.IsStart A S = ∃ (ν : A → Prop), DescriptiveComplexity.ClausesHold A ν FirstOrder.Language.tsSrcCl ∧ DescriptiveComplexity.ReadsCur A ν S
Instances For
Dependency graph
A state is a target state when some valuation reading it satisfies every clause of the target formula.
Equations
- DescriptiveComplexity.IsGoal A S = ∃ (ν : A → Prop), DescriptiveComplexity.ClausesHold A ν FirstOrder.Language.tsTgtCl ∧ DescriptiveComplexity.ReadsCur A ν S
Instances For
Dependency graph
The yes-instances of SUCCINCT-REACH: some target state is reachable from some source state along the transitions described by the clauses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Isomorphism-invariance #
Everything transports along the push-forward of a predicate through the isomorphism; each piece of the semantics is pushed in one direction only, and the equivalence comes from applying the result to the inverse isomorphism.
Reachability in a succinctly described transition system is isomorphism-invariant.
Dependency graph
SUCCINCT-REACH, as a problem on FirstOrder.Language.transSys-structures:
is some target state reachable from some source state in the transition system
described by the three clause groups?
Equations
- DescriptiveComplexity.SUCCINCTREACH = { Holds := fun (A : Type) (inst : FirstOrder.Language.transSys.Structure A) => DescriptiveComplexity.SuccinctReachable A, iso_invariant := ⋯ }