ClassicSolverFactory

The SolverFactory for :solve-classic, 2P-Kt's ISO-standard, SLD-NF resolution engine.

This is the factory that ultimately backs Solver.prolog (and its deprecated alias Solver.classic, both declared in :solve): those accessors locate this object at runtime -- by fully-qualified class name on the JVM, by module lookup on JS -- rather than depending on :solve-classic directly, which is why this object must remain a top-level, no-argument-constructible object named exactly ClassicSolverFactory in this package. Most callers should go through Solver.prolog/Solver.classic rather than referencing this object directly; it is public mainly so those lookups, and the it.unibo.tuprolog.solve.problog and other resolution strategies that build on top of the classic engine, have something to find and construct.

Every Solver/MutableSolver produced here resolves goals with the explicit, inspectable finite-state machine documented under it.unibo.tuprolog.solve.classic.fsm (see ClassicExecutionContext and SolutionIterator for the two pieces that make it tick), rather than via the host language's call stack -- see the "state-machine" explanation page in the project documentation for the full rationale and its grounding in Ciatto's 2021 paper on modelling a Prolog solver as a state machine.

See also

Properties

Link copied to clipboard
open override val defaultBuiltins: Library
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open override fun mutableSolverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, inputs: InputStore, outputs: OutputStore): MutableSolver
open override fun mutableSolverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): MutableSolver
Link copied to clipboard
open fun mutableSolverWithDefaultBuiltins(unificator: Unificator, otherLibraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): MutableSolver
Link copied to clipboard
Link copied to clipboard
open override fun solverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, inputs: InputStore, outputs: OutputStore): Solver
open override fun solverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): Solver
Link copied to clipboard
open fun solverWithDefaultBuiltins(unificator: Unificator, otherLibraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): Solver