package colibri2

  1. Overview
  2. Docs

Parameters

module L : Lattice

Signature

include S with type t = L.t
type t = L.t
val merged : t option -> t option -> bool

merged d1 d2 indicates if the d1 and d2 are the same and doesn't need to be merged

val merge : Egraph.wt -> (t option * Node.t) -> (t option * Node.t) -> bool -> unit

merge d (dom1,cl1) (dom2,cl2) inv called when cl1 and cl2 are going to be merged in the same equivalence class. - if inv is false, cl2 will be the new representative - if inv is true, cl1 will be the new representative

val pp : Containers.Format.formatter -> t -> unit
val key : t Kind.t
val set_dom : Egraph.wt -> Node.t -> L.t -> unit

set_dom d n l Set the domain of n with l and set its value if it is a singleton

val upd_dom : Egraph.wt -> Node.t -> L.t -> unit

upd_dom d n l Same than set_dom but set with the intersection of l with the current value of the domain.

OCaml

Innovation. Community. Security.