Datalog.ASProgtype program = Datalog_AbstractSyntax.AbstractSyntax.Program.program = {rules : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Rule.Rules.t;pred_table : Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIdTable.table;const_table : Datalog_AbstractSyntax.ConstGen.Table.table;i_preds : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIds.t;rule_id_gen : UtilsLib.IdGenerator.IntIdGen.t;head_to_rules : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Rule.Rules.t
DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIdMap.t;e_pred_to_rules : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Rule.Rules.t
DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIdMap.t;}type modifier = {modified_rules : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Rule.Rules.t;new_pred_table : Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIdTable.table;new_const_table : Datalog_AbstractSyntax.ConstGen.Table.table;new_i_preds : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIds.t;new_e_preds : DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Predicate.PredIds.t;new_rule_id_gen : UtilsLib.IdGenerator.IntIdGen.t;}val make_program :
Datalog_AbstractSyntax.AbstractSyntax.Proto_Program.t ->
programval extend :
program ->
Datalog_AbstractSyntax.AbstractSyntax.Proto_Program.t ->
programval is_in_idb :
Datalog_AbstractSyntax.AbstractSyntax.Predicate.predicate ->
program ->
boolis_in_idb pred prog returns true if the predicate pred is an intensional predicate for the program prog
val is_head :
Datalog_AbstractSyntax.AbstractSyntax.Predicate.predicate ->
Datalog_AbstractSyntax.AbstractSyntax.Rule.rule ->
boolis_head pred rule returns true if the predicate pred matches with the head of the rule rule
val match_rules :
Datalog_AbstractSyntax.AbstractSyntax.Predicate.predicate ->
program ->
DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Rule.Rules.tmatch_rules pred prog returns the set of rules of program prog whose heads match with pred
val get_rule_by_id :
program ->
int ->
DatalogLib.Datalog_AbstractSyntax.AbstractSyntax.Rule.Rules.eltget_rule_by_id program id Get the rule matching the id
val pp :
?with_position:bool ->
?with_id:bool ->
Stdlib.Format.formatter ->
program ->
unit