Package edu.cornell.cs.apl.viaduct.algebra.solver

Types

AtomicTerm
Link copied to clipboard
abstract class AtomicTerm<A : HeytingAlgebra<A>> : LeftHandTerm<A> , RightHandTerm<A> , DataFlowNode<A>

Constraint terms that are fully evaluated. For example, constants and variables, but not expressions.

ConstantTerm
Link copied to clipboard
data class ConstantTerm<A : HeytingAlgebra<A>>(value: A) : AtomicTerm<A>

Term representing a constant element.

ConstraintSolution
Link copied to clipboard
typealias ConstraintSolution<A> = Map<VariableTerm<A>, A>
ConstraintSystem
Link copied to clipboard
class ConstraintSystem<A : HeytingAlgebra<A>, T : Throwable>(top: A)

Given a set of constraints of the form t1 ≤ t2, finds the unique maximum solution if it exists.

ConstraintTerm
Link copied to clipboard
interface ConstraintTerm<A : HeytingAlgebra<A>>

Terms that appear in constraints.

LeftHandTerm
Link copied to clipboard
interface LeftHandTerm<A : HeytingAlgebra<A>> : ConstraintTerm<A>

Terms that can appear on the left-hand side of constraints.

RightHandTerm
Link copied to clipboard
interface RightHandTerm<A : HeytingAlgebra<A>> : ConstraintTerm<A>

Terms that can appear on the right-hand side of constraints.

VariableTerm
Link copied to clipboard
class VariableTerm<A : HeytingAlgebra<A>> : AtomicTerm<A>

A variable for the solver to find a value for.