PublicShow sourcecomp_duals.pl -- Dual rule computation

Computation of dual rules (rules for the negation of a literal).

author
- Kyle Marple
version
- 20170127
license
- BSD-3
Source comp_duals is det
Compute rules for the negations of positive literals (dual rules), even if there are no clauses for the positive literal (negation will be a fact). Wrapper for comp_duals2/1.
Source comp_duals3(+Predicate:atom, +Rules:list) is det
Compute the dual for a single positive literal. Make sure that Predicate is used for the dual head instead of taking the head from one of the rules. This allows a new head to be passed during NMR sub-check creation.
Arguments:
Predicate- The head of each rule in Rules, of the form Head/arity.
Rules- The list of rules for a single predicate.
Source define_forall(+GoalIn:compound, -GoalOut:compound, +BodyVars:list) is det
If BodyVars is empty, just return the original goal. Otherwise, define a forall for the goal. For multiple body variables, the forall will be nested, with each layer containing a single variable.
Arguments:
GoalIn- Input goal.
GoalOut- Output goal.
BodyVars- Body variables present in GoalIn.