Bob is blue. Bob is furry. Bob is quiet. Bob is red. Bob is rough. Bob is round. Charlie is blue. Charlie is rough. Charlie is round. Charlie is smart. Erin is quiet. Erin is red. Erin is smart. Harry is red. Harry is rough. If something is smart then it is furry. If Bob is furry and Bob is red then Bob is rough. If Bob is rough then Bob is red. All furry, round things are red. If something is furry then it is blue. Rough things are quiet. Rough things are blue. Blue, red things are rough.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Erin is quiet.
("Erin" "is" "quiet" "+")
Erin is red.
("Erin" "is" "red" "+")
Erin is smart.
("Erin" "is" "smart" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is rough.
("Harry" "is" "rough" "+")
If something is smart then it is furry.
((("something" "is" "smart" "+")) -> ("something" "is" "furry" "+"))
If Bob is furry and Bob is red then Bob is rough.
((("Bob" "is" "furry" "+") ("Bob" "is" "red" "+")) -> ("Bob" "is" "rough" "+"))
If Bob is rough then Bob is red.
((("Bob" "is" "rough" "+")) -> ("Bob" "is" "red" "+"))
All furry, round things are red.
((("something" "is" "furry" "+") ("something" "is" "round" "+")) -> ("something" "is" "red" "+"))
If something is furry then it is blue.
((("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
Rough things are quiet.
((("something" "is" "rough" "+")) -> ("something" "is" "quiet" "+"))
Rough things are blue.
((("something" "is" "rough" "+")) -> ("something" "is" "blue" "+"))
Blue, red things are rough.
((("something" "is" "blue" "+") ("something" "is" "red" "+")) -> ("something" "is" "rough" "+"))
Erin is red.
True
1
proof
[(triple12)]
("Erin" "is" "red" "+")
triple12
Charlie is not rough.
False
1
inv-proof
[(triple8 OR ((triple7 ((((triple10) -> rule1) triple9) -> rule4)) -> rule8) OR ((((((triple10) -> rule1)) -> rule5) ((((triple10) -> rule1) triple9) -> rule4)) -> rule8))]
("Charlie" "is" "rough" "-")
triple8
((triple7 ((((triple10) -> (rule1 % int3)) triple9) -> (rule4 % int2))) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
((((((triple10) -> (rule1 % int4))) -> (rule5 % int3)) ((((triple10) -> (rule1 % int4)) triple9) -> (rule4 % int2))) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is quiet.
True
2
proof
[(((triple8) -> rule6) OR ((((triple7 ((((triple10) -> rule1) triple9) -> rule4)) -> rule8)) -> rule6) OR ((((((((triple10) -> rule1)) -> rule5) ((((triple10) -> rule1) triple9) -> rule4)) -> rule8)) -> rule6))]
("Charlie" "is" "quiet" "+")
((triple8) -> (rule6 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
((((triple7 ((((triple10) -> (rule1 % int4)) triple9) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
((((((((triple10) -> (rule1 % int5))) -> (rule5 % int4)) ((((triple10) -> (rule1 % int5)) triple9) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is furry.
("Charlie" "is" "furry" "+")
int5
Charlie is not furry.
False
2
inv-proof
[(((triple10) -> rule1))]
("Charlie" "is" "furry" "-")
((triple10) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is red.
True
4
proof
[(((((triple10) -> rule1) triple9) -> rule4))]
("Charlie" "is" "red" "+")
((((triple10) -> (rule1 % int2)) triple9) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is not red.
False
4
inv-proof
[(((((triple10) -> rule1) triple9) -> rule4))]
("Charlie" "is" "red" "-")
((((triple10) -> (rule1 % int2)) triple9) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Erin is rough.
True
5
proof
[(((((((triple13) -> rule1)) -> rule5) triple12) -> rule8))]
("Erin" "is" "rough" "+")
((((((triple13) -> (rule1 % int3))) -> (rule5 % int2)) triple12) -> (rule8 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is not rough.
False
5
inv-proof
[(((((((triple13) -> rule1)) -> rule5) triple12) -> rule8))]
("Erin" "is" "rough" "-")
((((((triple13) -> (rule1 % int3))) -> (rule5 % int2)) triple12) -> (rule8 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Harry is not furry.
Unknown
inv-rconc
[@1: Harry is furry.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Harry" "is" "furry" "-")
Bob is smart.
Unknown
random
[@0: Bob is smart.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "smart" "+")
Erin is not round.
Unknown
inv-random
[@0: Erin is round.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "round" "-")
Harry is round.
Unknown
random
[@0: Harry is round.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "round" "+")
@0: Bob is blue.[(triple1 OR ((triple2) -> rule5) OR ((triple5) -> rule7) OR ((((triple2 triple4) -> rule2)) -> rule7) OR ((((triple2 ((triple2 triple6) -> rule4)) -> rule2)) -> rule7))] Bob is furry.[(triple2)] Bob is quiet.[(triple3 OR ((triple5) -> rule6) OR ((((triple1 triple4) -> rule8)) -> rule6) OR ((((triple2 triple4) -> rule2)) -> rule6) OR ((((triple1 ((triple2 triple6) -> rule4)) -> rule8)) -> rule6) OR ((((triple2 ((triple2 triple6) -> rule4)) -> rule2)) -> rule6) OR ((((((triple2) -> rule5) triple4) -> rule8)) -> rule6) OR ((((((triple2) -> rule5) ((triple2 triple6) -> rule4)) -> rule8)) -> rule6))] Bob is red.[(triple4 OR ((triple5) -> rule3) OR ((triple2 triple6) -> rule4))] Bob is rough.[(triple5 OR ((triple1 triple4) -> rule8) OR ((triple2 triple4) -> rule2) OR ((triple1 ((triple2 triple6) -> rule4)) -> rule8) OR ((triple2 ((triple2 triple6) -> rule4)) -> rule2) OR ((((triple2) -> rule5) triple4) -> rule8) OR ((((triple2) -> rule5) ((triple2 triple6) -> rule4)) -> rule8))] Bob is round.[(triple6)] Charlie is blue.[(triple7 OR ((triple8) -> rule7) OR ((((triple10) -> rule1)) -> rule5))] Charlie is rough.[(triple8 OR ((triple7 ((((triple10) -> rule1) triple9) -> rule4)) -> rule8) OR ((((((triple10) -> rule1)) -> rule5) ((((triple10) -> rule1) triple9) -> rule4)) -> rule8))] Charlie is round.[(triple9)] Charlie is smart.[(triple10)] Erin is quiet.[(triple11 OR ((((((((triple13) -> rule1)) -> rule5) triple12) -> rule8)) -> rule6))] Erin is red.[(triple12)] Erin is smart.[(triple13)] Harry is red.[(triple14)] Harry is rough.[(triple15)] @1: Charlie is furry.[(((triple10) -> rule1))] Charlie is quiet.[(((triple8) -> rule6) OR ((((triple7 ((((triple10) -> rule1) triple9) -> rule4)) -> rule8)) -> rule6) OR ((((((((triple10) -> rule1)) -> rule5) ((((triple10) -> rule1) triple9) -> rule4)) -> rule8)) -> rule6))] Erin is furry.[(((triple13) -> rule1))] Harry is blue.[(((triple15) -> rule7))] Harry is quiet.[(((triple15) -> rule6))] @2: Charlie is red.[(((((triple10) -> rule1) triple9) -> rule4))] Erin is blue.[(((((triple13) -> rule1)) -> rule5))] @3: Erin is rough.[(((((((triple13) -> rule1)) -> rule5) triple12) -> rule8))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple5) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple2 triple4) -> (rule2 % int2))) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple2 ((triple2 triple6) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
triple2
Bob is quiet.
("Bob" "is" "quiet" "+")
triple3
((triple5) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
((((triple1 triple4) -> (rule8 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple2 triple4) -> (rule2 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple1 ((triple2 triple6) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
((((triple2 ((triple2 triple6) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
((((((triple2) -> (rule5 % int3)) triple4) -> (rule8 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple2) -> (rule5 % int4)) ((triple2 triple6) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is red.
("Bob" "is" "red" "+")
triple4
((triple5) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple2 triple6) -> (rule4 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
triple5
((triple1 triple4) -> (rule8 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple2 triple4) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple1 ((triple2 triple6) -> (rule4 % int2))) -> (rule8 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((triple2 ((triple2 triple6) -> (rule4 % int2))) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple2) -> (rule5 % int2)) triple4) -> (rule8 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple2) -> (rule5 % int3)) ((triple2 triple6) -> (rule4 % int2))) -> (rule8 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
triple6
Charlie is blue.
("Charlie" "is" "blue" "+")
triple7
((triple8) -> (rule7 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
triple8
((triple7 ((((triple10) -> (rule1 % int3)) triple9) -> (rule4 % int2))) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
((((((triple10) -> (rule1 % int4))) -> (rule5 % int3)) ((((triple10) -> (rule1 % int4)) triple9) -> (rule4 % int2))) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
triple9
Charlie is smart.
("Charlie" "is" "smart" "+")
triple10
Erin is quiet.
("Erin" "is" "quiet" "+")
triple11
((((((((triple13) -> (rule1 % int4))) -> (rule5 % int3)) triple12) -> (rule8 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is blue.
("Erin" "is" "blue" "+")
int3
Erin is furry.
("Erin" "is" "furry" "+")
int4
Erin is red.
("Erin" "is" "red" "+")
triple12
Erin is smart.
("Erin" "is" "smart" "+")
triple13
Harry is red.
("Harry" "is" "red" "+")
triple14
Harry is rough.
("Harry" "is" "rough" "+")
triple15
Charlie is furry.
("Charlie" "is" "furry" "+")
((triple10) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
((triple8) -> (rule6 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
((((triple7 ((((triple10) -> (rule1 % int4)) triple9) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
((((((((triple10) -> (rule1 % int5))) -> (rule5 % int4)) ((((triple10) -> (rule1 % int5)) triple9) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is furry.
("Charlie" "is" "furry" "+")
int5
Erin is furry.
("Erin" "is" "furry" "+")
((triple13) -> (rule1 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
((triple15) -> (rule7 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
((triple15) -> (rule6 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
((((triple10) -> (rule1 % int2)) triple9) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Erin is blue.
("Erin" "is" "blue" "+")
((((triple13) -> (rule1 % int2))) -> (rule5 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
((((((triple13) -> (rule1 % int3))) -> (rule5 % int2)) triple12) -> (rule8 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3