:- dynamic and_prod/3, and_godel/3, and_luka/3, or_prod/3, or_godel/3, or_luka/3, agr_aver/3, pri_add/3.

member(X):-number(X).
member(infty).

leq(infty,_) :- !.
leq(X,Y):-Y =< X.

bot(infty).
top(0).

and_prod(X,Y,Z) :- pri_add(X,Y,Z).
and_godel(X,Y,Z) :- pri_add(X,Y,Z).
and_luka(X,Y,Z) :- pri_add(X,Y,Z).

or_prod(X,Y,Z) :- pri_add(X,Y,Z).
or_godel(X,Y,Z) :- pri_add(X,Y,Z).
or_luka(X,Y,Z) :- pri_add(X,Y,Z).

agr_aver(X,Y,Z) :- pri_add(X,Y,Z).

pri_add(X,Y,Z) :- Z is X+Y.