% Auteur:
% Date: 16/11/2010

foo(a,b,c).
foo(a,b,d).
foo(b,c,e).
foo(b,c,f).
foo(c,c,g).

:- op(800,xfx,<===>).
:- op(700,xfy,v).
:- op(600,xfy,&).
:- op(500,fy,~).

maketable :-
between(0,9,X),
             between(0,9,Y),
             Z is X*Y,
             assert(product(X,Y,Z)),
             fail.
maketable.


fib(0,0).
fib(1,1).
fib(N,F) :-
         N > 1,
         N1 is N - 1,
         fib(N1,F1),
         N2 is N - 2,
         fib(N2,F2),
         F is F1 + F2,
         asserta(fib(N,F) :- !).