(note TQG31) ;; boolean version ;; Circular subclass reasoning. (instance Class31-1 Class) (instance Class31-2 Class) (instance Class31-3 Class) (subclass Class31-1 Animal) (subclass Class31-2 Animal) (subclass Class31-3 Animal) (subclass Class31-1 Class31-2) (subclass Class31-2 Class31-3) (subclass Class31-3 Class31-1) (instance Animal31 Class31-2) (query (instance Animal31 Class31-1)) (answer yes) ;; Answer 1. [yes] ;; 1. (not ;; (instance Animal31 Class31-1)) [Negated Query] ;; 2. (not ;; (instance Animal31 Class31-1)) 1 ;; 3. (subclass Class31-3 Class31-1) [KB] ;; 4. (subclass Class31-3 Class31-1) 3 ;; 5. (=> ;; (subclass ?X403 ?X404) ;; (and ;; (instance ?X403 SetOrClass) ;; (instance ?X404 SetOrClass))) [KB] ;; 6. (or ;; (instance ?X1 SetOrClass) ;; (not ;; (subclass ?X0 ?X1))) 5 ;; 7. (or ;; (instance ?X0 SetOrClass) ;; (not ;; (subclass ?X0 ?X1))) 5 ;; 8. (=> ;; (and ;; (instance ?X403 SetOrClass) ;; (instance ?X404 SetOrClass)) ;; (=> ;; (and ;; (subclass ?X403 ?X404) ;; (instance ?X405 ?X403)) ;; (instance ?X405 ?X404))) [KB] ;; 9. (or ;; (instance ?X2 ?X1) ;; (not ;; (instance ?X2 ?X0)) ;; (not ;; (subclass ?X0 ?X1)) ;; (not ;; (instance ?X1 SetOrClass)) ;; (not ;; (instance ?X0 SetOrClass))) 8 ;; 10. (or ;; (not ;; (subclass ?X0 ?X1)) ;; (not ;; (instance ?X2 ?X0)) ;; (instance ?X2 ?X1)) 6 7 9 ;; 11. (or ;; (instance ?X0 Class31-1) ;; (not ;; (instance ?X0 Class31-3))) 4 10 ;; 12. (not ;; (instance Animal31 Class31-3)) 2 11 ;; 13. (instance Animal31 Class31-2) [KB] ;; 14. (instance Animal31 Class31-2) 13 ;; 15. (subclass Class31-2 Class31-3) [KB] ;; 16. (subclass Class31-2 Class31-3) 15 ;; 17. (or ;; (not ;; (instance ?X0 Class31-2)) ;; (instance ?X0 Class31-3)) 16 10 ;; 18. True 12 14 17