Module Datalog.Schedule
val saturate :
Flambda2_datalog.Datalog.rule list ->
Flambda2_datalog.Datalog.Schedule.tsaturate rules is a schedule that repeatedly applies the rules in rules until reaching a fixpoint.
Note: saturate rules is equivalent to fixpoint (rules rules), but is (slightly) more efficient. It is not necessary to wrap a saturate schedule in a fixpoint.
val fixpoint :
Flambda2_datalog.Datalog.Schedule.t list ->
Flambda2_datalog.Datalog.Schedule.tfixpoint schedules repeatedly runs the schedules in schedules until reaching a fixpoint.
Facts added by previous schedules in the list are visible.
val create_stats :
?with_provenance:bool ->
Flambda2_datalog.Datalog.database ->
Flambda2_datalog.Datalog.Schedule.statsval print_stats :
Stdlib.Format.formatter ->
Flambda2_datalog.Datalog.Schedule.stats ->
unitval run :
?stats:Flambda2_datalog.Datalog.Schedule.stats ->
Flambda2_datalog.Datalog.Schedule.t ->
Flambda2_datalog.Datalog.database ->
Flambda2_datalog.Datalog.databaserun schedule db runs the schedule schedule on the database db.
It returns a new database that contains all the facts in db, plus all the facts that were inferred by schedule.