GraphEquationSystem

trait GraphEquationSystem[U, V, E, EQS <: GraphEquationSystem[U, V, E, EQS]] extends FiniteEquationSystem[U, V, EQS]

A finite equation system generated by an hyper-graph.

Type parameters:
E

type of edges.

EQS

the type of the equation system. Operations returning a new equation system generally return EQS.

U

the type for the unknowns

V

the type for the values assumed by the unknowns.

Companion:
object
Source:
GraphEquationSystem.scala
trait FiniteEquationSystem[U, V, EQS]
trait EquationSystem[U, V, EQS]
class Object
trait Matchable
class Any

Value members

Abstract methods

def graph: GraphBody[U, V, E]

Returns the graph of this equation system.

Returns the graph of this equation system.

Source:
GraphEquationSystem.scala
def withLocalizedCombos(combos: ComboAssignment[U, V], ordering: Ordering[U]): EQS

Returns the equation system modified with the specified localized combo assignment.

Returns the equation system modified with the specified localized combo assignment.

Value parameters:
combos

the combo assignment for the equation system.

ordering

an ordering on unknowns used to decide the edges where combos need to be applied.

See also:
Source:
GraphEquationSystem.scala
def withLocalizedWarrowing(widenings: ComboAssignment[U, V], narrowings: ComboAssignment[U, V], ordering: Ordering[U])(using Domain[V]): EQS

Returns the equation system modified with the specified combination of localized widening and narrowing (aka localized warrowing).

Returns the equation system modified with the specified combination of localized widening and narrowing (aka localized warrowing).

Value parameters:
narrowings

the assignment of narrowings to unknowns.

ordering

an ordering on unknowns used to decide the edges where combos need to be applied.

widenings

the assignment of widenings to unknowns.

See also:
Source:
GraphEquationSystem.scala

Inherited methods

def body: U => V

Returns the body of this equation system.

Returns the body of this equation system.

Inherited from:
EquationSystem
Source:
EquationSystem.scala

Returns the body with dependencies of the equations system. Although this might be implemented by scalafix#withDependencies, it is possible to provide an alternative implementation.

Returns the body with dependencies of the equations system. Although this might be implemented by scalafix#withDependencies, it is possible to provide an alternative implementation.

Inherited from:
EquationSystem
Source:
EquationSystem.scala
def getMutableAssignment(rho: U => V): MutableAssignment[U, V]

Returns a mutable assignment based on the provided initial assignment. Although hash maps are the most obvious implementation of mutable assignment, it is possible to provide an alternative implementation.

Returns a mutable assignment based on the provided initial assignment. Although hash maps are the most obvious implementation of mutable assignment, it is possible to provide an alternative implementation.

Value parameters:
rho

the initial assignment.

Inherited from:
EquationSystem
Source:
EquationSystem.scala
def infl: Relation[U, U]

The static relation between an unknown x and the unknowns y it influences. If infl(x) does not contain y, it means that apply(rho)(y) \== apply(rho')(y), when rho' = rho[x / eqs(rho)(x)].

The static relation between an unknown x and the unknowns y it influences. If infl(x) does not contain y, it means that apply(rho)(y) \== apply(rho')(y), when rho' = rho[x / eqs(rho)(x)].

Inherited from:
FiniteEquationSystem
Source:
FiniteEquationSystem.scala

The unknowns which may be considered the input to this equation system.

The unknowns which may be considered the input to this equation system.

Note:

Although theoretically it would be more correct to replace this type with Set[U], this would make data reuse harder.

Inherited from:
FiniteEquationSystem
Source:
FiniteEquationSystem.scala

The collection of all the unknowns.

The collection of all the unknowns.

Note:

Although theoretically it would be more correct to replace this type with Set[U], this would make data reuse harder.

Inherited from:
FiniteEquationSystem
Source:
FiniteEquationSystem.scala
def withBaseAssignment(baseAssignment: PartialFunction[U, V], op: (V, V) => V): EQS

Returns the equation system modified with the specified base assignment.

Returns the equation system modified with the specified base assignment.

Value parameters:
baseAssignment

a partial assignment of values to unknowns.

op

the operation used to combine the base assignment with the rhs of the body.

See also:

scalafix#addBaseAssignment

Inherited from:
EquationSystem
Source:
EquationSystem.scala
def withCombos(combos: ComboAssignment[U, V]): EQS

Returns the equation system modified with the specified combo assignment.

Returns the equation system modified with the specified combo assignment.

Value parameters:
combos

the combo assignment for the equation system.

See also:

scalafix#addCombos

Inherited from:
EquationSystem
Source:
EquationSystem.scala
def withTracer(tracer: EquationSystemTracer[U, V]): EQS

Returns the equation system with an additional tracer. The tracer contains callbacks which are invoked during body evaluation.

Returns the equation system with an additional tracer. The tracer contains callbacks which are invoked during body evaluation.

Value parameters:
tracer

the tracer.

Inherited from:
EquationSystem
Source:
EquationSystem.scala