Library
A type for logic libraries, i.e. aliases aggregates of (possibly empty) collections of
Operators, grouped into an OperatorSet,
clauses, rules, or directives, grouped into a Theory,
LogicFunctions, indexed by Signature.
A library alias is aimed at identifying the library in the eyes of a solver.
Bundling all four kinds of extension together, rather than exposing four separate registration points on it.unibo.tuprolog.solve.Solver, is what makes it possible to ship a self-contained feature (e.g. :io-lib, :oop-lib) as a single pluggable unit. Since more than one Library can be loaded into a Runtime at once, alias is what lets clashing predicate indicators between libraries be resolved without either library needing to know about the other (see of and its alias parameter).
See also
Inheritors
Properties
LogicFunctions to be loaded by a solver when the library is used, indexed by their Signature in the eyes of the solver
Operators to be loaded by a solver when the library is used
Functions
Shorthand for this Library's declared Library.operators, as a Sequence.
Checks whether this library has a LogicFunction with provided signature
Checks whether this library has a Primitive with provided signature
Checks whether the provided signature, is protected in this library
Combines this Library and other into a two-library Runtime, via Runtime.of. Note that, unlike Runtime.plus, this does not reject a clashing Library.alias: if both share the same alias, other silently wins.