Guest User

Untitled

a guest
Apr 14th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.19 KB | None | 0 0
  1. % Autor: %AUTHOR%
  2. % Datum: %DATE%
  3.  
  4. a(X+0,X) :- !.
  5. a(0+X,X) :- !.
  6. a(X+X,Y) :- integer(X), integer(Y), Y is X+X, !.
  7. a(X+Y,Z) :- integer(X), integer(Y), Z is X+Y, !.
  8. a(X+Y,X+Y) :- !.
  9.  
  10. s(X-0,X) :- !.
  11. s(0-X,Y) :- integer(X), integer(Y), Y is -X, !.
  12. s(X-X,0) :- !.
  13. s(X-Y,Z) :- integer(X), integer(Y), Z is X-Y, !.
  14. s(X-Y,X-Y) :- !.
  15.  
  16. m(0*X,0) :- !.
  17. m(X*0,0) :- !.
  18. m(1*X,X) :- !.
  19. m(X*1,X) :- !.
  20. m(X*Y,V):- integer(X), integer(Y), V is X*Y, !.
  21. m(X*Y,X*Y) :- !.
  22.  
  23. a(Y+X+Z,V):- integer(Y), integer(Z), a(Y+Z,W), a(W+X,V), !.
  24. m(Y*X*Z,V):- integer(Y), integer(Z), m(Y*Z,W), m(W*X,V), !.
  25.  
  26. vereinfacht(T,T):- atomic(T).
  27. vereinfacht(T,V):- T=L*R,
  28.                    vereinfacht(L,L1),
  29.                    vereinfacht(R,R1),
  30.                    m(L1*R1,V).
  31. vereinfacht(T,V):- T=L*R*M,
  32.                    vereinfacht(L,L1),
  33.                    vereinfacht(R,R1),
  34.                    vereinfacht(M,M1),
  35.                    m(L1*R1*M1,V).
  36. vereinfacht(T,V):- T=L+R,
  37.                    vereinfacht(L,L1),
  38.                    vereinfacht(R,R1),
  39.                    a(L1+R1,V).
  40. vereinfacht(T,V):- T=L-R,
  41.                    vereinfacht(L,L1),
  42.                    vereinfacht(R,R1),
  43.                    s(L1-R1,V).
Add Comment
Please, Sign In to add comment