Term

sealed class Term<C, V> : Lattice<Term<C, V>>

Represents a lattice expression that can appear in Constraints.

Types

Link copied to clipboard
class Bounds<C : Lattice<C>, V>(bounds: BoundedLattice<C>) : BoundedLattice<Term<C, V>>

Provides bounds for a Term given bounds for C.

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
@JvmName(name = "joinConstant")
fun join(that: C): Term<C, V>
@JvmName(name = "joinVariable")
fun join(that: V): Term<C, V>

open infix override fun join(that: Term<C, V>): Term<C, V>

The least upper bound of this and that.

Link copied to clipboard
@JvmName(name = "meetConstant")
fun meet(that: C): Term<C, V>
@JvmName(name = "meetVariable")
fun meet(that: V): Term<C, V>

open infix override fun meet(that: Term<C, V>): Term<C, V>

The greatest lower bound of this and that.

Extensions

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].