home *** CD-ROM | disk | FTP | other *** search
Prolog Source | 1987-06-22 | 2.4 KB | 52 lines |
- /********************************************************************/
- /* ZUZIEH.PRO */
- /* Zusammenfassung von Termen */
- /********************************************************************/
-
- predicates
- zusammenziehen(term,term)
-
- clauses
- zusammenziehen(mal(A,B),npot(AV,nconst(2))) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(mal(A,npot(B,N)),npot(AV,plus(nconst(1),N))) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(mal(npot(B,N),A),npot(AV,plus(nconst(1),N))) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(div(A,npot(B,N)),div(nconst(1),
- npot(AV,plus(nconst(1),N)))) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(div(npot(B,N),A),npot(AV,minus(N,nconst(1)))) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(div(A,B),nconst(1)) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(minus(A,B),nconst(0)) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(plus(A,B),mal(nconst(2),AV)) IF
- vereinfache(A,AV) AND vereinfache(B,BV) AND AV = BV AND !.
- zusammenziehen(plus(A,mal(N,B)),mal(N1,AV)) IF
- vereinfache(plus(N,nconst(1)),N1)
- AND vereinfache(A,AV) AND vereinfache(B,BV)
- AND AV = BV AND ! .
- zusammenziehen(plus(A,mal(B,N)),mal(N1,AV)) IF
- vereinfache(plus(N,nconst(1)),N1)
- AND vereinfache(A,AV) AND vereinfache(B,BV)
- AND AV = BV AND ! .
- zusammenziehen(plus(mal(N,B),A),mal(N1,AV)) IF
- vereinfache(plus(N,nconst(1)),N1)
- AND vereinfache(A,AV) AND vereinfache(B,BV)
- AND AV = BV AND ! .
- zusammenziehen(plus(mal(B,N),A),mal(N1,AV)) IF
- vereinfache(plus(N,nconst(1)),N1)
- AND vereinfache(A,AV) AND vereinfache(B,BV)
- AND AV = BV AND ! .
-
- zusammenziehen(minus(mal(N,B),A),mal(N1,AV)) IF
- vereinfache(minus(N,nconst(1)),N1)
- AND vereinfache(A,AV) AND vereinfache(B,BV)
- AND AV = BV AND !.
- zusammenziehen(minus(mal(B,N),A),mal(N1,AV)) IF
- vereinfache(minus(N,nconst(1)),N1)
- AND vereinfache(A,AV) AND vereinfache(B,BV)
- AND AV = BV AND !.
-