The body of the equation system, i.e., a map Assignment[U,V] => Assignment[U,V]
.
The body of the equation system, i.e., a map Assignment[U,V] => Assignment[U,V]
.
Given an assignment rho
and unknown u
, returns the pair (body(rho)(x), uks)
.
Given an assignment rho
and unknown u
, returns the pair (body(rho)(x), uks)
. uks
is a set of unknowns
with the property that if rho'
differs from rho
only for variables which are not in uks
, then
body(rho)(u)==body(rho')(u)
.
The domain type-class for the type V
.
A function which, given an assignment and an edge, returns the output value of the edge.
The static relation between an unknown x and the unknowns y it influences.
The static relation between an unknown x and the unknowns y it influences. If infl(x)
does not contain y
, it
means that eqs(rho)(y) == eqs(rho')(y)
, when rho' = rho[x / eqs(rho)(x)]
.
Maps each unknown to the collection of edges arriving on it.
An initial value for starting the analyzer
An initial value for starting the analyzer
The unknowns which may be considered the input to this equation system.
The unknowns which may be considered the input to this equation system.
Maps each unknown to the collection of edges departing from it.
Maps each edge to its source unknowns.
Maps each edge to its target unknown.
The collection of all unknowns.
The collection of all unknowns.
Combine a base assignment with the equation system.
Combine a base assignment with the equation system. The type V
should be endowed with a magma.
the assignment to add to the equation system
Add boxes to the equation system
Add boxes to the equation system
a box assignment
Add boxes to the equation system in a localized way.
Add boxes to the equation system in a localized way.
new boxes to add.
an order on unknown used to decide which edges needs to be widened
Add warrowing to the equation system in a localized way.
Add warrowing to the equation system in a localized way. Localized warrowing requires a different procedure than standard localized widenings. Moreover, it is not entirely clear whether this works as intended or not.
a widening assignment
a narrowing assignment
Add a tracer to the equation system.
Add a tracer to the equation system. The tracer contains call-backs to be invoked during body evaluation.
the tracer
This is the abstract class for a finite equation system generated by an hyper-graph. Unknowns are nodes of the graph and each hyper-edge has a single target and many possible sources. Given an assignment, each hyper-edge produces a partial values. These values are combined with the upper bound operation.