StateGoalSelection
"Goal Selection": the entry point of every resolution step, deciding what to do with ConcurrentExecutionContext.goals. If the current context's goals are exhausted, either the whole branch succeeded (root context: moves to a successful StateEnd) or control returns to the parent context to resolve its remaining goals; otherwise, the current substitution is applied to the remaining goals and the branch moves on to StatePrimitiveSelection to resolve the next one.
Properties
The execution context this state operates on.
Whether this state is a terminal one for the current branch, i.e. an EndState.
Functions
This state as an EndState, or null if isEndState is false.
This state as an EndState.
Computes every state this branch may transition into from here, one per alternative (matching clause, disjunct, primitive solution, ...) available at this point; empty only for EndStates. Each element is meant to be explored independently (and, in :solve-concurrent's solver, concurrently) of the others.