sig
val generate_test_case : string option Pervasives.ref
val set_timeout : (unit -> bool) -> unit
type as_defined_rels =
By_arity
| By_const_param
| By_ground_def
| By_all_ground
val as_defined_rels : TranslateGame.as_defined_rels Pervasives.ref
val playout_horizon : int Pervasives.ref
val saturation_engine : bool Pervasives.ref
val playouts_for_rule_filtering : int Pervasives.ref
val filter_possibly_redundant : bool Pervasives.ref
type tossrule_data = {
legal_tuple : GDL.term array;
rule_add : (string * string array) list;
rule_del : (string * string array) list;
struc_elems : string list;
fixvar_terms : (string * (GDL.term * GDL.path) list) list;
rulevar_terms : GDL.term Aux.StrMap.t;
}
type gdl_translation = {
elem_term_map : GDL.term Aux.IntMap.t;
f_paths : GDL.path_set;
c_paths : GDL.path_set;
roots : GDL.term list;
tossrule_data : TranslateGame.tossrule_data Aux.StrMap.t;
turnbased_noops : GDL.term option array array option;
playing_as : int;
is_concurrent : bool;
transl_data : TranslateFormula.transl_data;
fluents : string list;
}
val empty_gdl_translation : TranslateGame.gdl_translation
val translate_game :
?playing_as:GDL.term ->
GDL.clause list ->
TranslateGame.gdl_translation * Arena.game *
(Arena.game * Arena.game_state)
val translate_incoming_move :
TranslateGame.gdl_translation ->
Arena.game * Arena.game_state ->
GDL.term list -> (int * (string * DiscreteRule.matching)) list
val translate_outgoing_move :
TranslateGame.gdl_translation ->
Arena.game * Arena.game_state ->
string -> (string * string) list -> string
val noop_move : TranslateGame.gdl_translation -> Arena.game_state -> string
val our_turn : TranslateGame.gdl_translation -> Arena.game_state -> bool
val is_turnbased : TranslateGame.gdl_translation -> bool
end