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)'))
Exit: ...
Call: definerules(library,readdata('rev(X) & p(X,Y) ==> ~p(X,Y) & p(Y,X)'))
Exit: ...
Call: hypoupdate(readdata('rev(a)'),[],repository,library)
Exit: true
Call: grindem(repository)
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.
|