Parameter ArrayWithCopy.Value

include Parameters.VALUE with type node = Node.t
type node = Node.t

the type of NODE.

type t

The type of values.

val equal : node -> t -> t -> bool

Equality on values.

val incl : node -> t -> t -> bool

incl x y is true if x is included (smaller than) y (i.e. x = meet x y or y = join x y).

val meet : node -> t -> t -> t

Intersection of values

val join : node -> t -> t -> t option

Union of values, only required for the joins. Can return None for a top value that does not need to be stored.

val pretty : node -> Stdlib.Format.formatter -> t -> unit

Pretty-printer

type relation = Relation.t

The type of relations, should match GROUP.t.

val apply : node -> t -> relation -> t

apply n v r is the value obtained by applying relation r to value v at the node n. apply should be a group action, meaning it should verify the following:

  • apply _ v R.identity = v
  • apply _ (apply _ v r2) r1 = apply _ v (R.compose r2 r1)