hypoupdate(dataset,dataset,dataset,ruleset) → boolean
The subroutine hypoupdate takes as arguments two datasets (an add list and a delete list), another dataset, and a ruleset. It runs the transition rules from the specified ruleset on the specified dataset together with the facts in the add list minus the facts in the delete list.
Call: definefacts(repository,readdata('p(a,b) p(b,c) p(c,d)'))
Call: definerules(library,readdata('rev(X) & p(X,Y) ==> ~p(X,Y) & p(Y,X)'))
Exit: p(b,a) p(b,c) p(c,d)
The hypoupdate subroutine is used for hypothetical reasoning in situations where one wants to update a dataset based on additions to a dataset or deletions from that dataset but where it is inconvenient to modify the dataset before the changes are computed.