sig
  module Sig : Acsym.SIG
  val d_interp : Term.t -> Term.t * Term.t
  val is_interp : Term.t -> bool
  val iterate : Term.t -> int -> Term.t
  val multiplicity : Term.t -> Term.t -> int
  val decompose : Term.t -> (Term.t * int) * Term.t option
  val fold : (Term.t -> int -> '-> 'a) -> Term.t -> '-> 'a
  val iter : (Term.t -> int -> unit) -> Term.t -> unit
  val sigma : Sym.pprod -> Term.t list -> Term.t
  val map : (Term.t -> Term.t) -> Term.t -> Term.t
  val mk_mult : Term.t -> Term.t -> Term.t
  val mk_multl : Term.t list -> Term.t
  val mk_expt : Term.t -> int -> Term.t
  val divide : Term.t -> Term.t * int -> Term.t
  val dom : (Term.t -> Dom.t) -> Sym.pprod -> Term.t list -> Dom.t
  val dom_of : Term.t -> Dom.t
end