Package-level declarations

Types

Link copied to clipboard
sealed class Constraint<C, V, T>

A lattice constraint.

Link copied to clipboard

A solution to a system of constraints. Maps variables of type V to values of type C.

Link copied to clipboard
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.

Link copied to clipboard

Thrown if a Term is not allowed to appear in Constraints.

Link copied to clipboard
sealed class Term<C, V> : Lattice<Term<C, V>>

Represents a lattice expression that can appear in Constraints.

Functions

Link copied to clipboard
fun <C : HeytingAlgebra<C>, V, T> Term<C, V>.flowsTo(that: Term<C, V>, failWith: (C, C) -> T): Constraint<C, V, T>

Returns a constraint that represents [this] flowsTo [that].