(deffacts dane (rectangle 10 6) (rectangle 7 5) (rectangle 6 8) (rectangle 2 5) (sum 0) ) (defrule sum-rectangle (rectangle ?height ?width) => (assert (area (* ?height ?width))) ) (defrule sum-areas ?s<-(sum ?total) ?a<-(area ?n) => (retract ?s ?a) (assert (sum (+ ?total ?n))) )