Libzipperposition.ClauseContextSourceA clause with a "hole" in it. Filling the whole with a term t is called "applying the context to t".
The point is to relate different applications of the same context.
A context is represented as a regular array of literals, containing at least one specific variable x, paired with this variable x. Applying the context is a mere substitution
Make a context from a var and literals containing this var.
extract lits t returns None if t doesn't occur in lits. Otherwise, it creates a fresh var x, replaces t with x within lits, and returns the corresponding context. Basically, if extract lits t = Some c then apply c t = lits
Unsafe version of extract.
Trivial context, that contains 0 holes.
apply c t fills the hole of c with the given term t. t and c share no free variables.
Same as apply, but now variables from the context and variables from the term live in the same scope
give access to the underlying literals. Careful not to depend on the variable's actual name.