Module type Sig.Context
A Context represent a set of paths leading to the current state (it corresponds to a path condition in symbolic execution)
Note: we use a module for Context, instead of a type, so that it can be used as a functor argument and replace the Arity.
TODO: Rename Context to AbsState: the context is now a representation of the state at a program point.
val level : t -> intTypes for serialization.
val empty_tuple : unit -> empty_tuple in_tupletype 'a in_acc = bool * 'a in_tupleAn accumulator is a set of arguments to nondet, and an accumulated inclusion check.
We use a GADT because 'some is existentially quantified: we don't want the type of in_tuple to appear in serialization function, as, for instance, what we put in in in_tuple can depend on some condition.
The boolean expresses whether the second operand of the serialization was included in the first one.