Pluggable

interface Pluggable

Base type for anything that can be "plugged into" a solver by contributing operators, clauses, primitives, and functions -- namely Library and Runtime (a group of libraries), which both implement this by aggregating their constituents' contributions.

Inheritors

Properties

Link copied to clipboard
abstract val clauses: List<Clause>

Rules, facts, or directories to be loaded by a solver when the library is used

Link copied to clipboard

LogicFunctions to be loaded by a solver when the library is used, indexed by their Signature in the eyes of the solver

Link copied to clipboard
abstract val operators: OperatorSet

Operators to be loaded by a solver when the library is used

Link copied to clipboard

Primitives to be loaded by a solver when the library is used, indexed by their Signature in the eyes of the solver

Link copied to clipboard

The Signature of every Rule (i.e. non-fact clause) among clauses, deduplicated.

Functions

Link copied to clipboard
open operator fun contains(operator: Operator): Boolean

Checks whether this library contains the definition of provided operator

open operator fun contains(signature: Signature): Boolean

Checks whether this library contains the provided signature.

Link copied to clipboard
open fun hasFunction(signature: Signature): Boolean

Checks whether this library has a LogicFunction with provided signature

Link copied to clipboard
open fun hasPrimitive(signature: Signature): Boolean

Checks whether this library has a Primitive with provided signature

Link copied to clipboard
open fun hasProtected(signature: Signature): Boolean

Checks whether the provided signature, is protected in this library

Link copied to clipboard
abstract fun hasRule(signature: Signature): Boolean

Checks whether this library has a Rule with provided signature