Estimated hours taken: .5
branches: main.
Remove the binary flag used as fourth argument of filter and make
filter a semidet predicate instead. If filter succeeds, it means that
the monitoring process can continue (the flag was set to `continue');
if it fails, it it means that the monitoring process should stop (the
flag was set to `stop').
extras/morphine/source/collect.in:
Remove the fourth argument of filter and make it semidet.
extras/morphine/source/collect.op:
Compile monitors with --no-warn-det-decls-too-lax to avoid
warnings when filter is det (since it is declared semidet).
extras/morphine/source/collect__dynamic_call_graph:
extras/morphine/source/collect__control_flow_graph:
extras/morphine/source/collect__proof_tree:
extras/morphine/non-regression-tests/test_ln:
Remove the fourth argument of filter.
Estimated hours taken: 10
branches: main.
The results of the proof tree monitor were wrong most programs that
contain all solution predicates.
extras/morphine/source/collect__proof_tree:
Change the type of the goal_succesor_table from
map(call_number, proof_tree) to map(call_number, list(proof_tree)).
This is necessaru because all solutions predicates produce
several proof trees for one goal call.
At fail events, I was not removing the rigth things. Also things
need to be removed at redo events for reasons that are
explained in the comments of htis change.
Estimated hours taken: 20
branches: main.
Add a monitor that computes the program execution proof tree.
extras/morphine/source/collect__proof_tree:
A new monitor that computes the program execution proof tree
(New file).
extras/morphine/source/control_flow.op:
Add support for calling the proof_tree monitor from Morphine.