package acgtk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type rule = {
  1. id : int;
  2. lhs : Predicate.predicate;
  3. e_rhs : (Predicate.predicate * int) list;
  4. i_rhs : (Predicate.predicate * int) list;
  5. i_rhs_num : int;
  6. content : Datalog_AbstractSyntax.ConstGen.id UF.t;
}
val make_rule : ASRule.rule -> rule

make_rule r returns an internal rule, that is one whose content is now a UnionFind.S indexed data structure. It is ensured that the id of the generated concrete rule is the same as the one of the abstract rule.

val cyclic_unify : int -> int -> 'a UF.t -> 'a UF.t
module FactArray : sig ... end
val immediate_consequence_of_rule : rule -> FactArray.row Predicate.PredMap.t -> ASPred.predicate list
val to_abstract : rule -> ASPred.PredIdTable.table -> ASRule.rule

to_abstract r table returns a datalog abstract syntax rule where the arguments of all (datalog abstract syntax) predicates have been computed using r.content and the symbol are the one stored in table.

module Rules : Stdlib.Set.S with type elt = rule