ConstraintSystem

class ConstraintSystem<C : HeytingAlgebra<C>, V, T : Throwable>(constraints: Iterable<Constraint<C, V, T>>, bounds: BoundedLattice<C>, delegationContext: LatticeCongruence<C>)

Given a set of constraints, finds the unique maximum solution if it exists.

A solution to a set of constraints is an assignment of values to all variables in the system. A maximum solution assigns the greatest possible value to each variable, where greatest is with respect to PartialOrder.lessThanOrEqualTo.

Parameters

C

type of lattice constants

V

type of variables

T

type of exceptions thrown when there are unsatisfiable constraints

constraints

The set of constraints to solve.

Constructors

Link copied to clipboard
fun <C : HeytingAlgebra<C>, V, T : Throwable> ConstraintSystem(constraints: Iterable<Constraint<C, V, T>>, bounds: BoundedLattice<C>, delegationContext: LatticeCongruence<C>)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun exportDotGraph(writer: Writer)

Outputs the constraint system as a DOT graph to writer.

Link copied to clipboard

Returns the greatest solution to the set of constraints in the system.