TRUE CLIPS> (batch "attchtst3.bat") TRUE CLIPS> (clear) ; Case 1a CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass "Case 1a" (object (is-a A)) (test (= 1 1)) =>) CLIPS> (defrule fail-fail "Case 1a" (object (is-a B)) (test (!= 2 2)) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass: [a] For a total of 1 activation. CLIPS> (clear) ; Case 1b CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail "Case 1b" (not (object (is-a A))) (test (= 1 1)) =>) CLIPS> (defrule fail-fail "Case 1b" (not (object (is-a B))) (test (!= 2 2)) =>) CLIPS> (agenda) 0 pass-fail: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) CLIPS> (clear) ; Case 1c CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass "Case 1c" (exists (object (is-a A))) (test (= 1 1)) =>) CLIPS> (defrule fail-fail "Case 1c" (exists (object (is-a B))) (test (!= 2 2)) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 3a CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail "Case 3a" (not (and (object (is-a A)) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass "Case 3a" (not (and (object (is-a B)) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass: * 0 pass-fail: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 pass-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 3b CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass "Case 3b" (not (and (not (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass "Case 3b" (not (and (not (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass: * 0 pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 3c CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail "Case 3c" (not (and (exists (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass "Case 3c" (not (and (exists (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass: * 0 pass-fail: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 pass-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 3d CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass "Case 3d" (exists (and (object (is-a A)) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail "Case 3d" (exists (and (object (is-a B)) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 3e CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail "Case 3e" (exists (and (not (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail "Case 3e" (exists (and (not (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-fail: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) CLIPS> (clear) ; Case 3f CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass "Case 3f" (exists (and (exists (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail "Case 3f" (exists (and (exists (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 4a CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-pass-fail "Case 4a" (not (and (object (is-a A)) (object (is-a B)) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass-pass "Case 4a" (not (and (object (is-a C)) (object (is-a D)) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass-pass: * 0 pass-pass-fail: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 pass-pass-pass: * 0 pass-pass-fail: * For a total of 2 activations. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 pass-pass-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 4b CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail-pass "Case 4b" (not (and (object (is-a A)) (not (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass-pass "Case 4b" (not (and (object (is-a C)) (not (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass-pass: * 0 pass-fail-pass: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 pass-pass-pass: * For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 pass-fail-pass: * 0 pass-pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 4c CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-pass-fail "Case 4c" (not (and (object (is-a A)) (exists (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass-pass "Case 4c" (not (and (object (is-a C)) (exists (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass-pass: * 0 pass-pass-fail: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 pass-pass-pass: * 0 pass-pass-fail: * For a total of 2 activations. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 pass-pass-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 4d CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass "Case 4d" (exists (and (object (is-a A)) (object (is-a B)) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail "Case 4d" (exists (and (object (is-a C)) (object (is-a D)) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-fail-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 4e CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail "Case 4e" (exists (and (object (is-a A)) (not (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail "Case 4e" (exists (and (object (is-a C)) (not (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 fail-pass-fail: * For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) CLIPS> (clear) ; Case 4f CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass "Case 4f" (exists (and (object (is-a A)) (exists (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail "Case 4f" (exists (and (object (is-a C)) (exists (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-fail-pass: * For a total of 1 activation. CLIPS> (clear) ; Case 4g CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail-fail-pass "Case 4g" (not (and (not (and (x) (y))) (object (is-a A)) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass-pass-pass "Case 4g" (not (and (not (and (z) (w))) (object (is-a B)) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass-pass-pass: * 0 pass-fail-fail-pass: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (assert (x) (z)) CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (assert (y) (w)) CLIPS> (agenda) 0 pass-fail-fail-pass: * 0 pass-pass-pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 4h CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-pass "Case 4h" (not (and (not (and (x) (y))) (not (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass-pass-pass "Case 4h" (not (and (not (and (z) (w))) (not (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass-pass-pass: * 0 pass-pass-pass-pass: * For a total of 2 activations. CLIPS> (assert (x) (z)) CLIPS> (agenda) 0 fail-pass-pass-pass: * 0 pass-pass-pass-pass: * For a total of 2 activations. CLIPS> (assert (y) (w)) CLIPS> (agenda) 0 fail-pass-pass-pass: * 0 pass-pass-pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 4i CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail-fail-pass "Case 4i" (not (and (not (and (x) (y))) (exists (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule pass-pass-pass-pass "Case 4i" (not (and (not (and (z) (w))) (exists (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-pass-pass-pass: * 0 pass-fail-fail-pass: * For a total of 2 activations. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (assert (x) (z)) CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (assert (y) (w)) CLIPS> (agenda) 0 pass-fail-fail-pass: * 0 pass-pass-pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 4j CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-fail "Case 4j" (exists (and (not (and (x) (y))) (object (is-a A)) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 4j" (exists (and (not (and (z) (w))) (object (is-a B)) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass-pass-fail: * For a total of 1 activation. CLIPS> (assert (x) (z)) CLIPS> (agenda) 0 fail-pass-pass-fail: * For a total of 1 activation. CLIPS> (assert (y) (w)) CLIPS> (agenda) CLIPS> (clear) ; Case 4k CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail-fail-fail "Case 4k" (exists (and (not (and (x) (y))) (not (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 4k" (exists (and (not (and (z) (w))) (not (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) 0 pass-fail-fail-fail: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) CLIPS> (assert (x) (z)) CLIPS> (agenda) CLIPS> (assert (y) (w)) CLIPS> (agenda) CLIPS> (clear) ; Case 4l CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-fail "Case 4l" (exists (and (not (and (x) (y))) (exists (object (is-a A))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 4l" (exists (and (not (and (z) (w))) (exists (object (is-a B))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance b of B) [b] CLIPS> (agenda) 0 fail-pass-pass-fail: * For a total of 1 activation. CLIPS> (assert (x) (z)) CLIPS> (agenda) 0 fail-pass-pass-fail: * For a total of 1 activation. CLIPS> (assert (y) (w)) CLIPS> (agenda) CLIPS> (clear) ; Case 5a CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail "Case 5a" (object (is-a A)) (not (and (object (is-a B)) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass "Case 5a" (object (is-a C)) (not (and (object (is-a D)) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 fail-pass-pass: [c],* 0 fail-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-pass-pass: [c],* For a total of 1 activation. CLIPS> (clear) ; Case 5b CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass "Case 5b" (object (is-a A)) (not (and (not (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass "Case 5b" (object (is-a C)) (not (and (not (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 fail-pass-pass: [c],* For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-fail-pass: [a],* 0 fail-pass-pass: [c],* For a total of 2 activations. CLIPS> (clear) ; Case 5c CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail "Case 5c" (object (is-a A)) (not (and (exists (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass "Case 5c" (object (is-a C)) (not (and (exists (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 fail-pass-pass: [c],* 0 fail-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-pass-pass: [c],* For a total of 1 activation. CLIPS> (clear) ; Case 5d CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass "Case 5d" (object (is-a A)) (exists (and (object (is-a B)) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail "Case 5d" (object (is-a C)) (exists (and (object (is-a D)) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-fail-pass: [a],* For a total of 1 activation. CLIPS> (clear) ; Case 5e CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail "Case 5e" (object (is-a A)) (exists (and (not (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail "Case 5e" (object (is-a C)) (exists (and (not (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) 0 fail-pass-fail: [a],* For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) CLIPS> (clear) ; Case 5f CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass "Case 5f" (object (is-a A)) (exists (and (exists (object (is-a B))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail "Case 5f" (object (is-a C)) (exists (and (exists (object (is-a D))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance c of C) [c] CLIPS> (agenda) CLIPS> (make-instance b of B) [b] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-fail-pass: [a],* For a total of 1 activation. CLIPS> (clear) ; Case 5g CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-both "Case 5g" (object (is-a A) (sa ?x)) (not (and (object (is-a B) (sb ?x)) (test (> ?x 0)))) =>) CLIPS> (defrule fail-pass-pass "Case 5g" (object (is-a C) (sc ?x)) (not (and (object (is-a D) (sd ?x)) (test (< ?x 0)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-pass: [c2],* 0 fail-pass-both: [a2],* 0 fail-pass-pass: [c1],* 0 fail-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-pass-pass: [c2],* 0 fail-pass-both: [a2],* 0 fail-pass-pass: [c1],* For a total of 3 activations. CLIPS> (clear) ; Case 5h CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-both "Case 5h" (object (is-a A) (sa ?x)) (not (and (not (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-pass-pass "Case 5h" (object (is-a C) (sc ?x)) (not (and (not (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-pass: [c2],* 0 fail-pass-pass: [c1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-fail-both: [a1],* 0 fail-pass-pass: [c2],* 0 fail-pass-pass: [c1],* For a total of 3 activations. CLIPS> (clear) ; Case 5i CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-both "Case 5i" (object (is-a A) (sa ?x)) (not (and (exists (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-pass-pass "Case 5i" (object (is-a C) (sc ?x)) (not (and (exists (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-pass: [c2],* 0 fail-pass-both: [a2],* 0 fail-pass-pass: [c1],* 0 fail-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-pass-pass: [c2],* 0 fail-pass-both: [a2],* 0 fail-pass-pass: [c1],* For a total of 3 activations. CLIPS> (clear) ; Case 5j CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-both "Case 5j" (object (is-a A) (sa ?x)) (exists (and (object (is-a B) (sb ?x)) (test (> ?x 0)))) =>) CLIPS> (defrule fail-fail-fail "Case 5j" (object (is-a C) (sc ?x)) (exists (and (object (is-a D) (sd ?x)) (test (< ?x 0)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-fail-both: [a1],* For a total of 1 activation. CLIPS> (clear) ; Case 5k CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-both "Case 5k" (object (is-a A) (sa ?x)) (exists (and (not (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-fail-fail "Case 5k" (object (is-a C) (sc ?x)) (exists (and (not (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-both: [a2],* 0 fail-pass-both: [a1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-pass-both: [a2],* For a total of 1 activation. CLIPS> (clear) ; Case 5l CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-both "Case 5l" (object (is-a A) (sa ?x)) (exists (and (exists (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-fail-fail "Case 5l" (object (is-a C) (sc ?x)) (exists (and (exists (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-fail-both: [a1],* For a total of 1 activation. CLIPS> (clear) ; Case 5m CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-pass "Case 5m" (not (and (not (and (object (is-a A)) (object (is-a B)))) (not (and (object (is-a C)) (test (= 1 1)))))) =>) CLIPS> (defrule fail-fail-fail-pass "Case 5m" (not (and (not (and (object (is-a D)) (object (is-a E)))) (not (and (object (is-a F)) (test (!= 2 2)))))) =>) CLIPS> (agenda) CLIPS> (make-instance c of C) [c] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-pass-pass-pass: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 fail-pass-pass-pass: * For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 fail-fail-fail-pass: * 0 fail-pass-pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 5n CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule pass-fail-fail-pass "Case 5n" (not (and (not (and (object (is-a A)) (object (is-a B)))) (exists (and (object (is-a C)) (test (= 1 1)))))) =>) CLIPS> (defrule pass-pass-pass-pass "Case 5n" (not (and (not (and (object (is-a D)) (object (is-a E)))) (exists (and (object (is-a F)) (test (!= 2 2)))))) =>) CLIPS> (agenda) 0 pass-pass-pass-pass: * 0 pass-fail-fail-pass: * For a total of 2 activations. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (make-instance a of A) [a] CLIPS> (make-instance d of D) [d] CLIPS> (agenda) 0 pass-pass-pass-pass: * For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 pass-fail-fail-pass: * 0 pass-pass-pass-pass: * For a total of 2 activations. CLIPS> (clear) ; Case 5o CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-both "Case 5o" (x) (object (is-a A) (sa ?x)) (not (and (object (is-a B) (sb ?x)) (test (> ?x 0)))) =>) CLIPS> (defrule fail-pass-pass "Case 5o" (x) (object (is-a C) (sc ?x)) (not (and (object (is-a D) (sd ?x)) (test (< ?x 0)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-pass: f-1,[c2],* 0 fail-pass-both: f-1,[a2],* 0 fail-pass-pass: f-1,[c1],* 0 fail-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-pass-pass: f-1,[c2],* 0 fail-pass-both: f-1,[a2],* 0 fail-pass-pass: f-1,[c1],* For a total of 3 activations. CLIPS> (clear) ; Case 5p CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-both "Case 5p" (x) (object (is-a A) (sa ?x)) (not (and (not (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-pass-pass "Case 5p" (x) (object (is-a C) (sc ?x)) (not (and (not (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-pass: f-1,[c2],* 0 fail-pass-pass: f-1,[c1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-fail-both: f-1,[a1],* 0 fail-pass-pass: f-1,[c2],* 0 fail-pass-pass: f-1,[c1],* For a total of 3 activations. CLIPS> (clear) ; Case 5q CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-both "Case 5q" (x) (object (is-a A) (sa ?x)) (not (and (exists (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-pass-pass "Case 5q" (x) (object (is-a C) (sc ?x)) (not (and (exists (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-pass: f-1,[c2],* 0 fail-pass-both: f-1,[a2],* 0 fail-pass-pass: f-1,[c1],* 0 fail-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-pass-pass: f-1,[c2],* 0 fail-pass-both: f-1,[a2],* 0 fail-pass-pass: f-1,[c1],* For a total of 3 activations. CLIPS> (clear) ; Case 5r CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-both "Case 5r" (x) (object (is-a A) (sa ?x)) (exists (and (object (is-a B) (sb ?x)) (test (> ?x 0)))) =>) CLIPS> (defrule fail-fail-fail "Case 5r" (x) (object (is-a C) (sc ?x)) (exists (and (object (is-a D) (sd ?x)) (test (< ?x 0)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-fail-both: f-1,[a1],* For a total of 1 activation. CLIPS> (clear) ; Case 5s CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-both "Case 5s" (x) (object (is-a A) (sa ?x)) (exists (and (not (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-fail-fail "Case 5s" (x) (object (is-a C) (sc ?x)) (exists (and (not (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) 0 fail-pass-both: f-1,[a2],* 0 fail-pass-both: f-1,[a1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-pass-both: f-1,[a2],* For a total of 1 activation. CLIPS> (clear) ; Case 5t CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-both "Case 5t" (x) (object (is-a A) (sa ?x)) (exists (and (exists (object (is-a B) (sb ?x))) (test (> ?x 0)))) =>) CLIPS> (defrule fail-fail-fail "Case 5t" (x) (object (is-a C) (sc ?x)) (exists (and (exists (object (is-a D) (sd ?x))) (test (< ?x 0)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance c2 of C (sc 2)) [c2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (agenda) 0 fail-fail-both: f-1,[a1],* For a total of 1 activation. CLIPS> (clear) ; Case 6a CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail-fail-pass "Case 6a" (object (is-a A)) (not (and (not (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)) (object (is-a D)))) =>) CLIPS> (defrule fail-pass-pass-pass-pass "Case 6a" (object (is-a E)) (not (and (not (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)) (object (is-a H)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* 0 fail-pass-fail-fail-pass: [a],* For a total of 2 activations. CLIPS> (make-instance d of D) [d] CLIPS> (make-instance h of H) [h] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* For a total of 1 activation. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) 0 fail-pass-fail-fail-pass: [a],* 0 fail-pass-pass-pass-pass: [e],* For a total of 2 activations. CLIPS> (clear) ; Case 6b CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-pass-fail "Case 6b" (object (is-a A)) (not (and (exists (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)) (object (is-a D)))) =>) CLIPS> (defrule fail-pass-pass-pass-pass "Case 6b" (object (is-a E)) (not (and (exists (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)) (object (is-a H)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* 0 fail-pass-pass-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance d of D) [d] CLIPS> (make-instance h of H) [h] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* 0 fail-pass-pass-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* 0 fail-pass-pass-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e],* For a total of 1 activation. CLIPS> (clear) ; Case 6c CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass-pass-fail "Case 6c" (object (is-a A)) (exists (and (not (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)) (object (is-a D)))) =>) CLIPS> (defrule fail-fail-fail-fail-fail "Case 6c" (object (is-a E)) (exists (and (not (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)) (object (is-a H)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) CLIPS> (make-instance d of D) [d] CLIPS> (make-instance h of H) [h] CLIPS> (agenda) 0 fail-fail-pass-pass-fail: [a],* For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-fail-pass-pass-fail: [a],* For a total of 1 activation. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) CLIPS> (clear) ; Case 6d CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-fail-pass "Case 6d" (object (is-a A)) (exists (and (exists (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)) (object (is-a D)))) =>) CLIPS> (defrule fail-fail-fail-fail-fail "Case 6d" (object (is-a E)) (exists (and (exists (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)) (object (is-a H)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) CLIPS> (make-instance d of D) [d] CLIPS> (make-instance h of H) [h] CLIPS> (agenda) CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) 0 fail-fail-fail-fail-pass: [a],* For a total of 1 activation. CLIPS> (clear) ; Case 6e CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail-fail-both "Case 6e" (object (is-a A) (sa ?x)) (not (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-pass-pass-pass-pass "Case 6e" (object (is-a E) (se ?x)) (not (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-fail-fail-both: [a2],* 0 fail-pass-pass-pass-pass: [e1],* 0 fail-pass-fail-fail-both: [a1],* For a total of 4 activations. CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-pass: [e1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-pass: [e1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-fail-fail-both: [a1],* 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-pass: [e1],* For a total of 3 activations. CLIPS> (clear) ; Case 6f CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-pass-both "Case 6f" (object (is-a A) (sa ?x)) (not (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-pass-pass-pass-pass "Case 6f" (object (is-a E) (se ?x)) (not (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-both: [a2],* 0 fail-pass-pass-pass-pass: [e1],* 0 fail-pass-pass-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-both: [a2],* 0 fail-pass-pass-pass-pass: [e1],* 0 fail-pass-pass-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-both: [a2],* 0 fail-pass-pass-pass-pass: [e1],* 0 fail-pass-pass-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: [e2],* 0 fail-pass-pass-pass-both: [a2],* 0 fail-pass-pass-pass-pass: [e1],* For a total of 3 activations. CLIPS> (clear) ; Case 6g CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass-pass-both "Case 6g" (object (is-a A) (sa ?x)) (exists (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-fail-fail-fail-fail "Case 6g" (object (is-a E) (se ?x)) (exists (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) 0 fail-fail-pass-pass-both: [a2],* 0 fail-fail-pass-pass-both: [a1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-fail-pass-pass-both: [a2],* 0 fail-fail-pass-pass-both: [a1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-pass-pass-both: [a2],* For a total of 1 activation. CLIPS> (clear) ; Case 6h CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-fail-both "Case 6h" (object (is-a A) (sa ?x)) (exists (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-fail-fail-fail-fail "Case 6h" (object (is-a E) (se ?x)) (exists (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-fail-fail-both: [a1],* For a total of 1 activation. CLIPS> (clear) ; Case 6i CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-fail-fail-both "Case 6i" (x) (object (is-a A) (sa ?x)) (not (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-pass-pass-pass-pass "Case 6i" (x) (object (is-a E) (se ?x)) (not (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-fail-fail-both: f-1,[a2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* 0 fail-pass-fail-fail-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-fail-fail-both: f-1,[a1],* 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* For a total of 3 activations. CLIPS> (clear) ; Case 6j CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-pass-both "Case 6j" (x) (object (is-a A) (sa ?x)) (not (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-pass-pass-pass-pass "Case 6j" (x) (object (is-a E) (se ?x)) (not (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* 0 fail-pass-pass-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* 0 fail-pass-pass-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* 0 fail-pass-pass-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass-pass: f-1,[e1],* For a total of 3 activations. CLIPS> (clear) ; Case 6k CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-pass-pass-both "Case 6k" (x) (object (is-a A) (sa ?x)) (exists (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-fail-fail-fail-fail "Case 6k" (x) (object (is-a E) (se ?x)) (exists (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) 0 fail-fail-pass-pass-both: f-1,[a2],* 0 fail-fail-pass-pass-both: f-1,[a1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-fail-pass-pass-both: f-1,[a2],* 0 fail-fail-pass-pass-both: f-1,[a1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-pass-pass-both: f-1,[a2],* For a total of 1 activation. CLIPS> (clear) ; Case 6l CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-fail-both "Case 6l" (x) (object (is-a A) (sa ?x)) (exists (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)) (object (is-a D) (sd ?x)))) =>) CLIPS> (defrule fail-fail-fail-fail-fail "Case 6l" (x) (object (is-a E) (se ?x)) (exists (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)) (object (is-a H) (sh ?x)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) CLIPS> (make-instance d1 of D (sd 1)) [d1] CLIPS> (make-instance h1 of H (sh 1)) [h1] CLIPS> (make-instance d2 of D (sd 2)) [d2] CLIPS> (make-instance h2 of H (sh 2)) [h2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-fail-fail-both: f-1,[a1],* For a total of 1 activation. CLIPS> (clear) ; Case 7a CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-pass "Case 7a" (object (is-a A)) (not (and (not (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass-pass "Case 7a" (object (is-a E)) (not (and (not (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 fail-pass-pass-pass: [e],* For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-pass-pass-pass: [e],* For a total of 1 activation. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) 0 fail-fail-fail-pass: [a],* 0 fail-pass-pass-pass: [e],* For a total of 2 activations. CLIPS> (clear) ; Case 7b CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-fail "Case 7b" (object (is-a A)) (not (and (exists (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass-pass "Case 7b" (object (is-a E)) (not (and (exists (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 fail-pass-pass-pass: [e],* 0 fail-pass-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-pass-pass-pass: [e],* 0 fail-pass-pass-fail: [a],* For a total of 2 activations. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) 0 fail-pass-pass-pass: [e],* For a total of 1 activation. CLIPS> (clear) ; Case 7c CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-fail "Case 7c" (object (is-a A)) (exists (and (not (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 7c" (object (is-a E)) (exists (and (not (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) 0 fail-pass-pass-fail: [a],* For a total of 1 activation. CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) 0 fail-pass-pass-fail: [a],* For a total of 1 activation. CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) CLIPS> (clear) ; Case 7d CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-pass "Case 7d" (object (is-a A)) (exists (and (exists (and (object (is-a B)) (object (is-a C)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 7d" (object (is-a E)) (exists (and (exists (and (object (is-a F)) (object (is-a G)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a of A) [a] CLIPS> (make-instance e of E) [e] CLIPS> (agenda) CLIPS> (make-instance b of B) [b] CLIPS> (make-instance f of F) [f] CLIPS> (agenda) CLIPS> (make-instance c of C) [c] CLIPS> (make-instance g of G) [g] CLIPS> (agenda) 0 fail-fail-fail-pass: [a],* For a total of 1 activation. CLIPS> (clear) ; Case 7e CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-both "Case 7e" (object (is-a A) (sa ?x)) (not (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass-pass "Case 7e" (object (is-a E) (se ?x)) (not (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass: [e2],* 0 fail-pass-pass-pass: [e1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass: [e2],* 0 fail-pass-pass-pass: [e1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-fail-both: [a1],* 0 fail-pass-pass-pass: [e2],* 0 fail-pass-pass-pass: [e1],* For a total of 3 activations. CLIPS> (clear) ; Case 7f CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-both "Case 7f" (object (is-a A) (sa ?x)) (not (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass-pass "Case 7f" (object (is-a E) (se ?x)) (not (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass: [e2],* 0 fail-pass-pass-both: [a2],* 0 fail-pass-pass-pass: [e1],* 0 fail-pass-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass: [e2],* 0 fail-pass-pass-both: [a2],* 0 fail-pass-pass-pass: [e1],* 0 fail-pass-pass-both: [a1],* For a total of 4 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-pass-pass: [e2],* 0 fail-pass-pass-both: [a2],* 0 fail-pass-pass-pass: [e1],* For a total of 3 activations. CLIPS> (clear) ; Case 7g CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-both "Case 7g" (object (is-a A) (sa ?x)) (exists (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 7g" (object (is-a E) (se ?x)) (exists (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-both: [a2],* 0 fail-pass-pass-both: [a1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-both: [a2],* 0 fail-pass-pass-both: [a1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-pass-both: [a2],* For a total of 1 activation. CLIPS> (clear) ; Case 7h CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-both "Case 7h" (object (is-a A) (sa ?x)) (exists (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 7h" (object (is-a E) (se ?x)) (exists (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-fail-both: [a1],* For a total of 1 activation. CLIPS> (clear) ; Case 7i CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-both "Case 7i" (x) (object (is-a A) (sa ?x)) (not (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass-pass "Case 7i" (x) (object (is-a E) (se ?x)) (not (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass: f-1,[e1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass: f-1,[e1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-fail-both: f-1,[a1],* 0 fail-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-pass: f-1,[e1],* For a total of 3 activations. CLIPS> (clear) ; Case 7j CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-both "Case 7j" (x) (object (is-a A) (sa ?x)) (not (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-pass-pass-pass "Case 7j" (x) (object (is-a E) (se ?x)) (not (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass: f-1,[e1],* 0 fail-pass-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass: f-1,[e1],* 0 fail-pass-pass-both: f-1,[a1],* For a total of 4 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-pass-pass: f-1,[e2],* 0 fail-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-pass: f-1,[e1],* For a total of 3 activations. CLIPS> (clear) ; Case 7k CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-pass-pass-both "Case 7k" (x) (object (is-a A) (sa ?x)) (exists (and (not (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 7k" (x) (object (is-a E) (se ?x)) (exists (and (not (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) 0 fail-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-both: f-1,[a1],* For a total of 2 activations. CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) 0 fail-pass-pass-both: f-1,[a2],* 0 fail-pass-pass-both: f-1,[a1],* For a total of 2 activations. CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-pass-pass-both: f-1,[a2],* For a total of 1 activation. CLIPS> (clear) ; Case 7l CLIPS> (load* "attchtst3.clp") TRUE CLIPS> (defrule fail-fail-fail-both "Case 7l" (x) (object (is-a A) (sa ?x)) (exists (and (exists (and (object (is-a B) (sb ?x)) (object (is-a C) (sc ?x)))) (test (= 1 1)))) =>) CLIPS> (defrule fail-fail-fail-fail "Case 7l" (x) (object (is-a E) (se ?x)) (exists (and (exists (and (object (is-a F) (sf ?x)) (object (is-a G) (sg ?x)))) (test (!= 2 2)))) =>) CLIPS> (assert (x)) CLIPS> (agenda) CLIPS> (make-instance a1 of A (sa 1)) [a1] CLIPS> (make-instance e1 of E (se 1)) [e1] CLIPS> (make-instance a2 of A (sa 2)) [a2] CLIPS> (make-instance e2 of E (se 2)) [e2] CLIPS> (agenda) CLIPS> (make-instance b1 of B (sb 1)) [b1] CLIPS> (make-instance f1 of F (sf 1)) [f1] CLIPS> (agenda) CLIPS> (make-instance c1 of C (sc 1)) [c1] CLIPS> (make-instance g1 of G (sg 1)) [g1] CLIPS> (agenda) 0 fail-fail-fail-both: f-1,[a1],* For a total of 1 activation. CLIPS> (clear) CLIPS> (dribble-off)