
stack.pl
justification_tree(:Stack, -JustificationTree, +Options)<none yet>
The tree format is defined as follows.
Node-Children, where Node
is an atom (in the logical sense) and Children is
a (possibly empty) list of sub-trees that justify the
Node.chs(Node)).
The root node has the atom query and has two children: the actual
query and the atom o_nmr_check which represents the global
constraints.
stack_tree(+Stack, -Tree) is det[private][] indicates
this branch is complete. Here are some examples
[p, []] p-[] [p, q, [], []] p-[q-[]] [p, q, [], r, [], []] p-[q-[],r-[]]
We maintain a stack of difference lists in the 4th argument.
On encountering a [] we pop this stack.
filter_tree(+Children, +Module, -FilteredChildren, +Options)[private]not(_) nodes from the tree.forall() and intermediate nodes.
filter_pos(+Node, +Options) is semidet[private]--pos is active. We should not
filter the global constraint nodes.
print_justification_tree(:Tree) is det
print_justification_tree(:Tree, +Options) is detunicode (default) or ascii.false,
it ends with the last atom.
plain_output(+FilterChildren, +Options)[private]
term(+Node, +Options) is det[private]
unqualify_justitication_tree(:TreeIn, +Module, -TreeOut) is det