EndState
A terminal State for one branch of the search tree: it carries the Solution that branch produced (StateEnd for a successful/failed one, StateHalt for one aborted by an uncaught exception) and has no successors.
Reaching an EndState is what triggers publishing solution onto the resolution's shared solution channel (see it.unibo.tuprolog.solve.concurrent.ConcurrentResolutionHandle.publishSolutionAndTerminateResolutionIfNeed); every other branch of the tree keeps running independently until it, too, reaches its own EndState.
Inheritors
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.