sig
  type transition = private {
    next : Navigation.abstract Navigation.t;
    dst : Pattern.id;
    inj : Renaming.t;
  }
  type point
  val content : Pattern.Env.point -> Pattern.cc
  val roots : Pattern.Env.point -> (int list * int) option
  val deps : Pattern.Env.point -> Operator.DepSet.t
  val sons : Pattern.Env.point -> Pattern.Env.transition list
  type t
  val get : Pattern.Env.t -> Pattern.id -> Pattern.Env.point
  val get_single_agent :
    int -> Pattern.Env.t -> (Pattern.id * Operator.DepSet.t) option
  val get_elementary :
    Pattern.Env.t ->
    Agent.t ->
    int ->
    Navigation.abstract Navigation.arrow ->
    (Pattern.id * Pattern.Env.point * Renaming.t) option
  val signatures : Pattern.Env.t -> Signature.s
  val new_obs_map :
    Pattern.Env.t -> (Pattern.id -> 'a) -> 'Pattern.ObsMap.t
  val to_navigation :
    Pattern.Env.t -> Pattern.id -> Navigation.abstract Navigation.t
  val print : Format.formatter -> Pattern.Env.t -> unit
  val to_yojson : Pattern.Env.t -> Yojson.Basic.json
  val of_yojson : Yojson.Basic.json -> Pattern.Env.t
end