Consider these five pilog assertions. (be do ((Question @P) @S @S) (holds @P @S))
(be holds (@A @S) (restoreSitArg @A @S @F) (2 cons (-> @F))) (be On (3 s0)) (be On (5 s0)) (be restoreSitArg ((On @N) @S (On @N @S))) I define some tests. (de t_1 () # ok (? holds On restoreSitArg (holds (On @N) s0)) ) (de t_2 () # ? (? do holds On restoreSitArg (do (Question (On @N)) s0 s0)) ) Run the first one. (t_1) 1 (holds (On @N) s0) 1 (restoreSitArg (On @N) s0 (On @N s0)) 1 (On 3 s0) @N=3 2 (On 5 s0) @N=5 -> NIL Ok, in that first test, I asked for solutions to (holds (On @N) s0)), tracing on. Those are solutions I would expect, and they are correct. Second test. (t_2) 1 (do (Question (On @N)) s0 s0) 1 (holds (On @N) s0) 1 (restoreSitArg (On @N) s0 (On @N s0)) 1 (On 3 s0) @N=NIL 2 (On 5 s0) @N=NIL -> NIL Now here, (holds (On @N) s0) is also attempted to be proved - because it is a sub-goal of (do (Question (On @N)) s0 s0). My question is, why the difference when (holds (On @N) s0) is proved? In one case solutions are found, in the other case it seems to miss the same solutions to the same goal. Cheers, Doug -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe