module Pos:sig
..end
type
split = {
|
lit_pos : |
|
term_pos : |
|
term : |
lit_pos
: the literal-prefix of the positionterm_pos
: the suffix that describes a subterm positionterm
: the term root, just under the literal itself.
given this, applying T.Pos.at to the subterm position and
the root term we obtain the sub-term itself.val split : Literal.t -> Libzipperposition.Position.t -> split
Invalid_argument
if the position is incorrectval at : Literal.t -> Libzipperposition.Position.t -> Literal.term
Invalid_argument
if the position is invalidval replace : Literal.t -> at:Libzipperposition.Position.t -> by:Literal.term -> Literal.t
Invalid_argument
if the position is invalidval cut : Literal.t ->
Libzipperposition.Position.t ->
Libzipperposition.Position.t * Libzipperposition.Position.t
it always holds that let a,b = cut p in Position.append a b = p
val root_term : Literal.t -> Libzipperposition.Position.t -> Literal.term
root_term lit p = [at lit (fst (cut p))]
.val term_pos : Literal.t -> Libzipperposition.Position.t -> Libzipperposition.Position.t
term_pos lit p = snd (cut lit p)
, the subterm position.val is_max_term : ord:Libzipperposition.Ordering.t ->
Literal.t -> Libzipperposition.Position.t -> bool