% Operatordefinitionen % x^y entspricht x hoch y :-op(10,yfx,^). % ~x entspricht -x :-op(9,fx,~). d(X,X,1):- !. d(C,X,0):- atomic(C). d(~U,X,~A):-d(U,X,A). d(U+V,X,A+B):-d(U,X,A),d(V,X,B). d(U-V,X,A-B):-d(U,X,A),d(V,X,B). d(C*U,X,C*A):-atomic(C),C \= X,d(U,X,A), !. d(U*V,X,C*A):-d(U,X,A), d(V,X,B). d(U/V,X,A):-d(U*V^(~1),X,A). d(U^C,X,C*U^(C-1)*W):-atomic(C), C \= X, d(U,X,W). d(log(U),X,A*U^(~1)):-d(U,X,A).