Dear All,

Just wanted to let you know that Jekejeke Minlog 0.6.2 is

out. There was some functionality in the Jekejeke Minlog

extension module that lay dormant until now. With this release

of Jekejeke Minlog we provide a first batch of built-ins for

hypothetical and counterfactual reasoning. Internally these

built-ins work with clause references and trailed undos.

To introduce hypothetical and counterfactual reasoning to

logic programming is not new, we draw here on work from

the 80's.

Jekejeke Minlog also provides variants that work without a

sub-goal and keep the update for the duration of the continuation.

The continuation variants of hypothetical and counter factual

reasoning form the update component of the continuation version of

forward chaining, which is used to implement constraint solvers.

Since new constraints, similar to unification results,

stay for the duration of the continuation.

Now that we have hypothetical and counter factual reasoning: Is

it useful and does it perform? To some extend we have already

answered this question by the implementation of our CLP(FD)

constraint solver. But the constraint solver makes also use

of the forward closure computation, so are there some interesting

applications not integrated with the forward closure?

Interestingly the answer seems yes. We managed to implement

tic-tac-toe via the continuation variant of the new Jekejeke

Minlog tool box.

In the old solution the board state is passed around in predicate

arguments. In the new solution we perform updates on the facts

via hypothetical/counter factual operations. Since the board state

is not anymore passed around we do not need a move/3 predicate.

Instead we can work with a move/1 predicate that has only one

parameter and that updates the knowledge base:

% move(+Player)
move(P) :-
clause_ref(board(-,M,N), true, R),
compile_ref(board(P,M,N), S),
retire_ref(R),
assume_ref(S).

Astonishingly the new solution is also performant. Our measurements

show the following figures for checking whether there exists

a winning strategy:

**Old Parameter Solution: 124ms**

**New Update Solution: 224ms**

Theoretically a certain advantage could be gained for bigger boards

via the update method, since it works only locally. Further forward

closure could come to the picture again to model complex moves.

Comments welcome.

Bye

Jekejeke Minlog 0.6.2

Tic-Tac-Toe with Parameter

Tic-Tac-Toe with Update

## Recent comments

10 hours 48 min ago

11 hours 20 min ago

11 hours 35 min ago

11 hours 52 min ago

13 hours 7 min ago

13 hours 14 min ago

13 hours 35 min ago

13 hours 59 min ago

15 hours 9 min ago

16 hours 15 min ago