- (
`:neq`*term1**term2*)

Succeeds iff NOT*term1*=*term2*.`:neq`is equivalent to`(:lisp (not (eql '`*term1*`'`*term2*`)))`. - (
`:fail`*form*) - (
`:unp`*form*)

Unprovable. Succeeds exactly when a query of its path (*i.e.*,*form*) fails.`:unp`is used primarily in default rules. For example:(:rules Birds ((flies ?x True) <- (:unp (not (flies ?x True))) (:assume (normal ?x Birds flies))))

(`:assume`is discussed below).`:unp`is a non-monotonic form and to use it successfully you will probably have to understand something of the internals of how Algernon does inference (see section 2.3). - (
`:assume`*predicate*)

Adds*predicate*to the knowledge-base as an assumption. Assumptions differ from facts in two ways. First, an attempt is made to prove the negation of the predicate, and if this attempt succeeds, the`:assume`fails. Second, any future conclusion which depends on the assumption is tagged with the assumption, so that if the assumption is later withdrawn the conclusion is also withdrawn.

Tue Oct 29 11:15:33 CST 1996