sig
  val check_orbit_internal_state_permutation :
    ?trace:bool ->
    ?fmt:Format.formatter ->
    ?fmt_err:Format.formatter ->
    ?sigs:Signature.s ->
    agent_type:int ->
    site1:int ->
    site2:int ->
    LKappa.rule ->
    correct:int array ->
    Affine_combinations.aff_combination Rule_modes.RuleModeMap.t array ->
    LKappa_auto.cache ->
    counter:int array ->
    bool array -> (LKappa_auto.cache * int array * bool array) * bool
  val check_orbit_binding_state_permutation :
    ?trace:bool ->
    ?fmt:Format.formatter ->
    ?fmt_err:Format.formatter ->
    ?sigs:Signature.s ->
    agent_type:int ->
    site1:int ->
    site2:int ->
    LKappa.rule ->
    correct:int array ->
    Affine_combinations.aff_combination Rule_modes.RuleModeMap.t array ->
    LKappa_auto.cache ->
    counter:int array ->
    bool array -> (LKappa_auto.cache * int array * bool array) * bool
  val check_orbit_full_permutation :
    ?trace:bool ->
    ?fmt:Format.formatter ->
    ?fmt_err:Format.formatter ->
    ?sigs:Signature.s ->
    agent_type:int ->
    site1:int ->
    site2:int ->
    LKappa.rule ->
    correct:int array ->
    Affine_combinations.aff_combination Rule_modes.RuleModeMap.t array ->
    LKappa_auto.cache ->
    counter:int array ->
    bool array -> (LKappa_auto.cache * int array * bool array) * bool
  val is_invariant_internal_states_permutation :
    ?trace:bool ->
    ?fmt:Format.formatter ->
    ?fmt_err:Format.formatter ->
    ?sigs:Signature.s ->
    agent_type:int ->
    site1:int ->
    site2:int -> LKappa.rule -> LKappa_auto.cache -> LKappa_auto.cache * bool
  val is_invariant_binding_states_permutation :
    ?trace:bool ->
    ?fmt:Format.formatter ->
    ?fmt_err:Format.formatter ->
    ?sigs:Signature.s ->
    agent_type:int ->
    site1:int ->
    site2:int -> LKappa.rule -> LKappa_auto.cache -> LKappa_auto.cache * bool
  val is_invariant_full_states_permutation :
    ?trace:bool ->
    ?fmt:Format.formatter ->
    ?fmt_err:Format.formatter ->
    ?sigs:Signature.s ->
    agent_type:int ->
    site1:int ->
    site2:int -> LKappa.rule -> LKappa_auto.cache -> LKappa_auto.cache * bool
  type bwd_bisim_info =
      int Symmetries_sig.site_partition array * bool Mods.DynArray.t *
      Signature.s * LKappa_auto.cache Pervasives.ref
  val swap_binding_state_regular :
    int -> int -> int -> LKappa.rule_agent -> unit
  val swap_internal_state_regular :
    int -> int -> int -> LKappa.rule_agent -> unit
  val swap_full_regular : int -> int -> int -> LKappa.rule_agent -> unit
  val swap_binding_state_created :
    int -> int -> int -> Raw_mixture.agent -> unit
  val swap_internal_state_created :
    int -> int -> int -> Raw_mixture.agent -> unit
  val swap_full_created : int -> int -> int -> Raw_mixture.agent -> unit
  val equiv_class :
    LKappa_auto.cache ->
    bool Mods.DynArray.t ->
    LKappa.rule ->
    partitions_internal_states:(int -> int list list) ->
    partitions_binding_states:(int -> int list list) ->
    partitions_full_states:(int -> int list list) ->
    convention:Remanent_parameters_sig.rate_convention ->
    LKappa_auto.cache * bool Mods.DynArray.t * (LKappa.rule * int) list
  val saturate_domain_with_symmetric_patterns :
    compileModeOn:bool ->
    ?origin:Operator.rev_dep ->
    Contact_map.t ->
    LKappa_group_action.bwd_bisim_info ->
    (('a * Pattern.cc) array * 'b) list ->
    Pattern.PreEnv.t -> Pattern.PreEnv.t
end