pilog question

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