package acgtk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

This module the construction of a new program where every binding pattern for a predicate p is unique, see p 800 of Principles of Database and Knowledge-Base Systems II, Ullman

Log is the log module for Unique_binding

make_unique_binding program rgg Takes a program and a rule/goal graph and returns a program where every binding pattern for a predicate p is unique

type ad_pred_key = {
  1. key_rule : int;
  2. key_head_ad : Adornment.status list;
  3. key_pred : ASPred.pred_id;
  4. key_pos : int;
}
module AdPredMap : Stdlib.Map.S with type key = ad_pred_key
type data = {
  1. adorned_prog : ASProg.program;
  2. unadorned_map : ASPred.pred_id ASPred.PredIdMap.t;
  3. rule_to_rule_map : (int * int) DatalogLib.Datalog_AbstractSyntax.RuleIdMap.t;
  4. adornments : Adornment.status list AdPredMap.t;
  5. pred_map : ASPred.pred_id AdornmentTrie.t ASPred.PredIdMap.t;
}
val derive_program : MagicRewriting.Rgg.Rg_graph.t -> ASProg.program -> data
OCaml

Innovation. Community. Security.