ComboAssignment

The ComboAssignment object defines factories for building combo assignments.

Companion:
class
Source:
ComboAssignment.scala
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply[V](combo: Combo[V]): ComboAssignment[Any, V]

A combo assignment which returns the same combo for each program point. If combo is mutable, different copies are used for the different program points.

A combo assignment which returns the same combo for each program point. If combo is mutable, different copies are used for the different program points.

Type parameters:
V

the type of values

Value parameters:
combo

the template for combo to be returned at each program point

Source:
ComboAssignment.scala
def apply[V](f: (V, V) => V, isIdempotent: Boolean): ComboAssignment[Any, V]

A combo assignment which returns the immutable and idempotent combo corresponding to the map f: (V,V) => V, for each program point.

A combo assignment which returns the immutable and idempotent combo corresponding to the map f: (V,V) => V, for each program point.

Source:
ComboAssignment.scala
def empty[V]: ComboAssignment[Any, V]

A combo assignment which is undefined for each program point.

A combo assignment which is undefined for each program point.

Source:
ComboAssignment.scala
def warrowing[U, V](widenings: ComboAssignment[U, V], narrowings: ComboAssignment[U, V])(using evidence$2: Domain[V]): ComboAssignment[U, V]

A warrowing assignment obtained by combining the given widenings and narrowings.

A warrowing assignment obtained by combining the given widenings and narrowings.

Warrowing is defined in the paper:

  • Amato, G., Scozzari, F., Seidl, H., Apinis, K., Vojdani, V. Efficiently intertwining widening and narrowing Science of Computer Programming, 120, pp. 1-24. 2016

While the Combo.warrowing method builds a single warrowing from a widening and a narrowing, this method allows to simultaneous build different warrowings for different program points.

Type parameters:
U

the type of program points of the assignment

V

the type of values, should be endowed with a partial ordering

Value parameters:
narrowings

narrowing assignment over U and V

widenings

widening assignment over U and V

Source:
ComboAssignment.scala