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.

Comments and complaints to genesereth@stanford.edu.