Make.Ex
The type of explanations.
Explanation encode predicates that may hold (be true
) or not (be false
) in a model.
val pp : t Fmt.t
Pretty-printer for explanations.
val is_empty : t -> bool
An explanation is empty if it is true
in all models.
val empty : t
The empty
explanation. Must satisfy is_empty empty = true
.
The union union ex ex'
of two explanations ex
and ex'
is true
in any model where both ex
and ex'
are true
.
Note that union ex empty = union empty ex = ex
.