
int copy_literals(int a_nb_lit, tliteral *a_source_lits, tliteral *a_destination_lits);
int copy_and_unify_literals(int a_nb_lit, int a_first_var, int a_second_var, tliteral *a_source_lits, tliteral *a_destination_lits);
int create_cube(tcube **a_cube);
int delete_cube(tcube *a_cube);
int reverse(tlist *a_list, tlist **a_result);
int delete_list(tlist *a_list);
int delete_cube_list(tlist *a_list);
int merge_sorted_lists(tlist *a_first,tlist *a_second,int (a_function)(tlist *,tlist *),tlist **a_list);
int duplicate_and_reverse_list(tlist *a_source,tlist **a_copy);
int check_list(tlist *a_list, long a_max_length);
long length_list(tlist *a_list);
int num_values_list(tlist *a_list, int (a_function)(tlist *,tlist *));

int ask_more_memory(tlist *a_result,tlist *a_remaining_nodes);
int check_sorted_list(tlist *a_list);
int check_optimisticity(tlist *a_node, tlist *its_children);
int add_k_best(int *k, int (a_function)(tlist *,tlist *), tlist *a_node, tlist *a_list, tlist **a_result);
int remove_elt_list(tlist *an_elt,tlist *a_list,tlist **a_result);
int argument_of_last_literal_only(int a_var,tcube *a_cube);
int sort_predicates();
int can_repeat_literal(tcube *a_cube);
double power(double x,long n);
int make_literal_blocks(tcube *a_cube);
int current_node_subsumption_test(tlist *a_node,tlist *a_list,int *do_not_store,int *a_result);
int results_subsumption_test(tlist *a_node,tlist **a_list);
int refine_and_add_children(tlist **a_node,tlist *a_list_results,tlist **next_nodes,int *a_debug_flag);
int bayes_can_add_predicates(tcube* a_cube);
int filter_structural_predicates(tlist **a_list);
int indice(int a_value, int a_max, int *a_table);
int index_max_weighted_double(double *a_table,double *weights,int a_number);
int get_nth_node(tlist *a_list,int an_index,tlist **a_node);
int initialise_discretised_types();
int statistics_discretised_types();
int display_discretised_types(FILE *a_result_file);
int initialise_discrete_values();
int create_k_fold(int k, int n, int **a_new_fold_table,int a_fold,int *a_previous_fold_table);
int free_instances();
int free_non_global_types();
int free_types();
char *discrete_value(int a_discrete_type,double a_value,char *a_string);
int find_first_non_individual_predicate();
double factoriel(long n);
