VariableTerm

class VariableTerm<A : HeytingAlgebra<A>> : AtomicTerm<A>

A variable for the solver to find a value for.

See also

Parameters

label

an arbitrary object to use as a label (useful for debugging)

Functions

getValue
Link copied to clipboard
open override fun getValue(solution: ConstraintSolution<A>): A

Returns the value of this term given an assignment of values to every variable in the term.

join
Link copied to clipboard
open override fun join(that: A): RightHandTerm<A>

Return a term that represents the join of this with a constant.

meet
Link copied to clipboard
open override fun meet(that: A): LeftHandTerm<A>

Return a term that represents the meet of this with a constant.

toString
Link copied to clipboard
open override fun toString(): String
transfer
Link copied to clipboard
open override fun transfer(input: A): A

Compute the output value for this node given the meet of all values from incoming edges. The incoming values might only be upper bounds rather than being exact, in which case this function should return an upper bound. When the incoming values are exact, this function should also return an exact answer.

Properties

inEdge
Link copied to clipboard
open override val inEdge: DataFlowEdge<A>

Return an edge that captures the operation preformed by this term. In the constraint graph, this will become an incoming edge of node.

node
Link copied to clipboard
open override val node: AtomicTerm<A>

Return the node that will represent this term in the constraint graph.

outEdge
Link copied to clipboard
open override val outEdge: DataFlowEdge<A>

Return an edge that captures the operation preformed by this term. In the constraint graph, this will become an outgoing edge of node.