sig
module IntMap :
sig
type key = int
type +'a t
val empty : 'a t
val is_empty : 'a t -> bool
val mem : key -> 'a t -> bool
val add : key -> 'a -> 'a t -> 'a t
val singleton : key -> 'a -> 'a t
val remove : key -> 'a t -> 'a t
val merge :
(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val for_all : (key -> 'a -> bool) -> 'a t -> bool
val exists : (key -> 'a -> bool) -> 'a t -> bool
val filter : (key -> 'a -> bool) -> 'a t -> 'a t
val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
val cardinal : 'a t -> int
val bindings : 'a t -> (key * 'a) list
val min_binding : 'a t -> key * 'a
val max_binding : 'a t -> key * 'a
val choose : 'a t -> key * 'a
val split : key -> 'a t -> 'a t * 'a option * 'a t
val find : key -> 'a t -> 'a
val map : ('a -> 'b) -> 'a t -> 'b t
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
end
module StringMap :
sig
type key = string
type +'a t
val empty : 'a t
val is_empty : 'a t -> bool
val mem : key -> 'a t -> bool
val add : key -> 'a -> 'a t -> 'a t
val singleton : key -> 'a -> 'a t
val remove : key -> 'a t -> 'a t
val merge :
(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val for_all : (key -> 'a -> bool) -> 'a t -> bool
val exists : (key -> 'a -> bool) -> 'a t -> bool
val filter : (key -> 'a -> bool) -> 'a t -> 'a t
val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
val cardinal : 'a t -> int
val bindings : 'a t -> (key * 'a) list
val min_binding : 'a t -> key * 'a
val max_binding : 'a t -> key * 'a
val choose : 'a t -> key * 'a
val split : key -> 'a t -> 'a t * 'a option * 'a t
val find : key -> 'a t -> 'a
val map : ('a -> 'b) -> 'a t -> 'b t
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
end
module Elems :
sig
type elt = int
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val split : elt -> t -> t * bool * t
end
val add_elems : int list -> Structure.Elems.t -> Structure.Elems.t
val elems_of_list : int list -> Structure.Elems.t
module Tuples :
sig
type elt = int array
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val split : elt -> t -> t * bool * t
end
val add_tuples : int array list -> Structure.Tuples.t -> Structure.Tuples.t
val tuples_of_list : int array list -> Structure.Tuples.t
type structure
val compare_elems : int -> int -> int
val compare : Structure.structure -> Structure.structure -> int
val equal : Structure.structure -> Structure.structure -> bool
val elements : Structure.structure -> int list
val elems : Structure.structure -> Structure.Elems.t
val constants : Structure.structure -> (string * int) list
val nbr_elems : Structure.structure -> int
val relations :
Structure.structure -> Structure.Tuples.t Structure.StringMap.t
val functions :
Structure.structure -> float Structure.IntMap.t Structure.StringMap.t
val elem_nbr : Structure.structure -> string -> int
val elem_name : Structure.structure -> int -> string
val names : Structure.structure -> int Structure.StringMap.t
val inv_names : Structure.structure -> string Structure.IntMap.t
val replace_names :
Structure.structure ->
int Structure.StringMap.t ->
string Structure.IntMap.t -> Structure.structure
val rel_size : Structure.structure -> string -> int
val rev_string_to_int_map :
int Structure.StringMap.t -> string Structure.IntMap.t
val rev_int_to_string_map :
string Structure.IntMap.t -> int Structure.StringMap.t
val empty_structure : unit -> Structure.structure
val default_circle_structure : unit -> Structure.structure
val empty_with_signat : (string * int) list -> Structure.structure
val incident : Structure.structure -> int -> (string * int array list) list
val check_rel : Structure.structure -> string -> int array -> bool
val rel_graph : string -> Structure.structure -> Structure.Tuples.t
val rel_incidence :
string -> Structure.structure -> Structure.Tuples.t array
val fun_val : Structure.structure -> string -> int -> float
val elems_with_val : Structure.structure -> string -> float -> int list
val model_val : Structure.structure -> string -> int -> Structure.structure
val add_models :
Structure.structure ->
string -> (int * Structure.structure) list -> Structure.structure
val f_signature : Structure.structure -> string list
val rel_signature : Structure.structure -> (string * int) list
val rel_sizes : Structure.structure -> (string * int) list
val elem_str : Structure.structure -> int -> string
val rel_str :
?print_arity:bool ->
Structure.structure -> string -> Structure.Tuples.t -> string
val ext_str : ?show_empty:bool -> Structure.structure -> string
val str :
?show_empty:bool -> ?show_models:bool -> Structure.structure -> string
val fprint_rel :
?print_arity:bool ->
Structure.structure ->
Format.formatter -> string * Structure.Tuples.t -> unit
val fprint_fun :
Structure.structure ->
Format.formatter -> string * float Structure.IntMap.t -> unit
val fprint_ext_structure :
show_empty:bool -> Format.formatter -> Structure.structure -> unit
val fprint :
show_empty:bool -> Format.formatter -> Structure.structure -> unit
val print : ?show_empty:bool -> Structure.structure -> unit
val sprint : ?show_empty:bool -> Structure.structure -> string
val board_elem_coords : string -> int * int
val board_coords_name : int * int -> string
val compare_diff :
?cmp_funs:(float -> float -> bool) ->
Structure.structure -> Structure.structure -> bool * string
val diff_elems :
Structure.structure -> Structure.structure -> (int * string list) list
val add_constant :
Structure.structure -> string -> int -> Structure.structure
exception Structure_mismatch of string
val add_elem :
Structure.structure -> ?name:string -> int -> Structure.structure
val add_new_elem :
Structure.structure -> ?name:string -> unit -> Structure.structure * int
val find_elem : Structure.structure -> string -> int
val find_or_new_elem :
Structure.structure -> string -> Structure.structure * int
val add_rel_name :
string -> int -> Structure.structure -> Structure.structure
val add_rel :
Structure.structure -> string -> int array -> Structure.structure
val add_rel_named_elems :
Structure.structure -> string -> string array -> Structure.structure
val unsafe_add_rel :
Structure.structure -> string -> int array -> Structure.structure
val add_rels :
Structure.structure -> string -> int array list -> Structure.structure
val unsafe_add_rels :
Structure.structure -> string -> int array list -> Structure.structure
val free_for_rel : string -> int -> Structure.structure
val add_fun :
Structure.structure -> string -> int * float -> Structure.structure
val add_funs :
Structure.structure ->
string -> (int * float) list -> Structure.structure
val change_fun :
Structure.structure -> string -> string -> float -> Structure.structure
val change_fun_int :
Structure.structure -> string -> int -> float -> Structure.structure
val create_from_lists :
?struc:Structure.structure ->
string list ->
(string * int option * string array list, string * string) Aux.choice
list -> (string * (string * float) list) list -> Structure.structure
val create_from_lists_position :
?struc:Structure.structure ->
string list ->
(string * int option * string array list, string * string) Aux.choice
list -> Structure.structure
val create_from_lists_range :
float ->
?struc:Structure.structure ->
string list ->
(string * int option * string array list, string * string) Aux.choice
list -> Structure.structure
val del_rel :
Structure.structure -> string -> int array -> Structure.structure
val del_rels :
Structure.structure -> string -> int array list -> Structure.structure
val clear_rels :
?remove_from_sig:bool ->
Structure.structure -> (string -> bool) -> Structure.structure
val clear_fun : Structure.structure -> string -> Structure.structure
val clear_names : Structure.structure -> Structure.structure
val del_elem : Structure.structure -> int -> Structure.structure
val del_elems :
Structure.structure ->
int list -> Structure.structure * (string * int array list) list
val gc_elems :
?ignore_funs:bool -> Structure.structure -> Structure.structure
val diffrels_struc :
Structure.structure -> Structure.structure -> string list option
val trs_set_struc :
Structure.structure ->
string * Term.term * Term.term -> Structure.structure
val struc_from_trs : string -> string * Structure.structure
exception Board_parse_error of string
val parse_board :
?row_col_rels:string * string ->
?pos_initial:float * float ->
?pos_increment:float * float ->
?struc:Structure.structure -> string -> Structure.structure
end