sig
type 'a t = { term : Monome.term; coeff : 'a; rest : 'a Monome.monome; }
val get : 'a Monome.monome -> int -> 'a Monome.Focus.t
val focus_term :
'a Monome.monome -> Monome.term -> 'a Monome.Focus.t option
val focus_term_exn : 'a Monome.monome -> Monome.term -> 'a Monome.Focus.t
val to_monome : 'a Monome.Focus.t -> 'a Monome.monome
val coeff : 'a Monome.Focus.t -> 'a
val term : 'a Monome.Focus.t -> Monome.term
val rest : 'a Monome.Focus.t -> 'a Monome.monome
val sum : 'a Monome.Focus.t -> 'a Monome.monome -> 'a Monome.Focus.t
val difference : 'a Monome.Focus.t -> 'a Monome.monome -> 'a Monome.Focus.t
val uminus : 'a Monome.Focus.t -> 'a Monome.Focus.t
val product : 'a Monome.Focus.t -> 'a -> 'a Monome.Focus.t
val map :
?term:(Monome.term -> Monome.term) ->
?coeff:('a -> 'a) ->
?rest:('a Monome.monome -> 'a Monome.monome) ->
'a Monome.Focus.t -> 'a Monome.Focus.t
val scale :
Z.t Monome.Focus.t ->
Z.t Monome.Focus.t -> Z.t Monome.Focus.t * Z.t Monome.Focus.t
val is_max : ord:Libzipperposition.Ordering.t -> 'a Monome.Focus.t -> bool
val fold_m :
pos:Libzipperposition.Position.t ->
'a Monome.monome ->
'b ->
('b -> 'a Monome.Focus.t -> Libzipperposition.Position.t -> 'b) -> 'b
val apply_subst :
renaming:Libzipperposition.Substs.Renaming.t ->
Libzipperposition.Substs.t ->
'a Monome.Focus.t Libzipperposition.Scoped.t -> 'a Monome.Focus.t
val apply_subst_no_renaming :
Libzipperposition.Substs.t ->
'a Monome.Focus.t Libzipperposition.Scoped.t -> 'a Monome.Focus.t
val unify_ff :
?subst:Libzipperposition.Substs.t ->
'a Monome.Focus.t Libzipperposition.Scoped.t ->
'a Monome.Focus.t Libzipperposition.Scoped.t ->
('a Monome.Focus.t * 'a Monome.Focus.t * Libzipperposition.Substs.t)
Sequence.t
val unify_mm :
?subst:Libzipperposition.Substs.t ->
'a Monome.monome Libzipperposition.Scoped.t ->
'a Monome.monome Libzipperposition.Scoped.t ->
('a Monome.Focus.t * 'a Monome.Focus.t * Libzipperposition.Substs.t)
Sequence.t
val unify_self :
?subst:Libzipperposition.Substs.t ->
'a Monome.Focus.t Libzipperposition.Scoped.t ->
('a Monome.Focus.t * Libzipperposition.Substs.t) Sequence.t
val unify_self_monome :
?subst:Libzipperposition.Substs.t ->
'a Monome.monome Libzipperposition.Scoped.t ->
('a Monome.Focus.t * Libzipperposition.Substs.t) Sequence.t
val pp : 'a Monome.Focus.t CCFormat.printer
end