Bob is cold. Bob is furry. Bob is red. Erin is not cold. Erin is furry. Erin is not nice. Gary is blue. Gary is nice. Gary is rough. Harry is cold. Cold things are red. Nice things are big. If Bob is cold and Bob is blue then Bob is furry. All red things are blue. If something is blue then it is nice. Blue things are cold. If something is nice and big then it is rough. If something is nice and not big then it is furry.
Bob is cold.
("Bob" "is" "cold" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is red.
("Bob" "is" "red" "+")
Erin is not cold.
("Erin" "is" "cold" "-")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is not nice.
("Erin" "is" "nice" "-")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Cold things are red.
((("something" "is" "cold" "+")) -> ("something" "is" "red" "+"))
Nice things are big.
((("something" "is" "nice" "+")) -> ("something" "is" "big" "+"))
If Bob is cold and Bob is blue then Bob is furry.
((("Bob" "is" "cold" "+") ("Bob" "is" "blue" "+")) -> ("Bob" "is" "furry" "+"))
All red things are blue.
((("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
If something is blue then it is nice.
((("something" "is" "blue" "+")) -> ("something" "is" "nice" "+"))
Blue things are cold.
((("something" "is" "blue" "+")) -> ("something" "is" "cold" "+"))
If something is nice and big then it is rough.
((("something" "is" "nice" "+") ("something" "is" "big" "+")) -> ("something" "is" "rough" "+"))
If something is nice and not big then it is furry.
((("something" "is" "nice" "+") ("something" "is" "big" "~")) -> ("something" "is" "furry" "+"))
Gary is nice.
True
1
proof
[(triple8 OR ((triple7) -> rule5))]
("Gary" "is" "nice" "+")
triple8
((triple7) -> (rule5 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is not blue.
False
1
inv-proof
[(triple7)]
("Gary" "is" "blue" "-")
triple7
Bob is blue.
True
2
proof
[(((triple3) -> rule4) OR ((((triple1) -> rule1)) -> rule4))]
("Bob" "is" "blue" "+")
((triple3) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple1) -> (rule1 % int2))) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Gary is not big.
False
2
inv-proof
[(((triple8) -> rule2) OR ((((triple7) -> rule5)) -> rule2))]
("Gary" "is" "big" "-")
((triple8) -> (rule2 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((((triple7) -> (rule5 % int2))) -> (rule2 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Bob is nice.
True
3
proof
[(((((triple3) -> rule4)) -> rule5) OR ((((((triple1) -> rule1)) -> rule4)) -> rule5))]
("Bob" "is" "nice" "+")
((((triple3) -> (rule4 % int2))) -> (rule5 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple1) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Gary is not red.
False
3
inv-proof
[(((((triple7) -> rule6)) -> rule1))]
("Gary" "is" "red" "-")
((((triple7) -> (rule6 % int2))) -> (rule1 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Bob is big.
True
4
proof
[(((((((triple3) -> rule4)) -> rule5)) -> rule2) OR ((((((((triple1) -> rule1)) -> rule4)) -> rule5)) -> rule2))]
("Bob" "is" "big" "+")
((((((triple3) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((((triple1) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is red.
("Bob" "is" "red" "+")
int4
Harry is not nice.
False
4
inv-proof
[(((((((triple10) -> rule1)) -> rule4)) -> rule5))]
("Harry" "is" "nice" "-")
((((((triple10) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Harry is big.
True
5
proof
[(((((((((triple10) -> rule1)) -> rule4)) -> rule5)) -> rule2))]
("Harry" "is" "big" "+")
((((((((triple10) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Harry is not big.
False
5
inv-proof
[(((((((((triple10) -> rule1)) -> rule4)) -> rule5)) -> rule2))]
("Harry" "is" "big" "-")
((((((((triple10) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Harry is rough.
True
10
proof
[(((((((((triple10) -> rule1)) -> rule4)) -> rule5) ((((((((triple10) -> rule1)) -> rule4)) -> rule5)) -> rule2)) -> rule7))]
("Harry" "is" "rough" "+")
((((((((triple10) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3)) ((((((((triple10) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is red.
("Harry" "is" "red" "+")
int5
Harry is not rough.
False
10
inv-proof
[(((((((((triple10) -> rule1)) -> rule4)) -> rule5) ((((((((triple10) -> rule1)) -> rule4)) -> rule5)) -> rule2)) -> rule7))]
("Harry" "is" "rough" "-")
((((((((triple10) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3)) ((((((((triple10) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is red.
("Harry" "is" "red" "+")
int5
Erin is not rough.
Unknown
inv-rconc
[@1: Erin is rough.[CWA. Example of deepest failure = (rule7 <- FAIL)]]
("Erin" "is" "rough" "-")
Harry is furry.
Unknown
rconc
[@1: Harry is furry.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Harry" "is" "furry" "+")
Erin is not blue.
Unknown
inv-rconc
[@2: Erin is blue.[CWA. Example of deepest failure = (rule4 <- rule1 <- FAIL)]]
("Erin" "is" "blue" "-")
Erin is big.
Unknown
rconc
[@1: Erin is big.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Erin" "is" "big" "+")
Erin is not red.
Unknown
inv-rconc
[@1: Erin is red.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Erin" "is" "red" "-")
Gary is furry.
Unknown
rconc
[@1: Gary is furry.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Gary" "is" "furry" "+")
@0: Bob is cold.[(triple1 OR ((((triple3) -> rule4)) -> rule6))] Bob is furry.[(triple2 OR ((triple1 ((triple3) -> rule4)) -> rule3) OR ((triple1 ((((triple1) -> rule1)) -> rule4)) -> rule3) OR ((((((triple3) -> rule4)) -> rule6) ((triple3) -> rule4)) -> rule3) OR ((((((triple3) -> rule4)) -> rule6) ((((triple1) -> rule1)) -> rule4)) -> rule3))] Bob is red.[(triple3 OR ((triple1) -> rule1))] Erin is furry.[(triple5)] Erin is not cold.[(triple4)] Erin is not nice.[(triple6)] Gary is blue.[(triple7)] Gary is nice.[(triple8 OR ((triple7) -> rule5))] Gary is rough.[(triple9 OR ((triple8 ((triple8) -> rule2)) -> rule7) OR ((((triple7) -> rule5) ((triple8) -> rule2)) -> rule7) OR ((triple8 ((((triple7) -> rule5)) -> rule2)) -> rule7) OR ((((triple7) -> rule5) ((((triple7) -> rule5)) -> rule2)) -> rule7))] Harry is cold.[(triple10)] @1: Bob is blue.[(((triple3) -> rule4) OR ((((triple1) -> rule1)) -> rule4))] Gary is big.[(((triple8) -> rule2) OR ((((triple7) -> rule5)) -> rule2))] Gary is cold.[(((triple7) -> rule6))] Harry is red.[(((triple10) -> rule1))] @2: Bob is nice.[(((((triple3) -> rule4)) -> rule5) OR ((((((triple1) -> rule1)) -> rule4)) -> rule5))] Gary is red.[(((((triple7) -> rule6)) -> rule1))] Harry is blue.[(((((triple10) -> rule1)) -> rule4))] @3: Bob is big.[(((((((triple3) -> rule4)) -> rule5)) -> rule2) OR ((((((((triple1) -> rule1)) -> rule4)) -> rule5)) -> rule2))] Harry is nice.[(((((((triple10) -> rule1)) -> rule4)) -> rule5))] @4: Bob is rough.[(((((((triple3) -> rule4)) -> rule5) ((((((triple3) -> rule4)) -> rule5)) -> rule2)) -> rule7) OR ((((((((triple1) -> rule1)) -> rule4)) -> rule5) ((((((triple3) -> rule4)) -> rule5)) -> rule2)) -> rule7) OR ((((((triple3) -> rule4)) -> rule5) ((((((((triple1) -> rule1)) -> rule4)) -> rule5)) -> rule2)) -> rule7) OR ((((((((triple1) -> rule1)) -> rule4)) -> rule5) ((((((((triple1) -> rule1)) -> rule4)) -> rule5)) -> rule2)) -> rule7))] Harry is big.[(((((((((triple10) -> rule1)) -> rule4)) -> rule5)) -> rule2))] @5: Harry is rough.[(((((((((triple10) -> rule1)) -> rule4)) -> rule5) ((((((((triple10) -> rule1)) -> rule4)) -> rule5)) -> rule2)) -> rule7))]
Bob is cold.
("Bob" "is" "cold" "+")
triple1
((((triple3) -> (rule4 % int2))) -> (rule6 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
triple2
((triple1 ((triple3) -> (rule4 % int2))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((triple1 ((((triple1) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
((((((triple3) -> (rule4 % int3))) -> (rule6 % int2)) ((triple3) -> (rule4 % int3))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple3) -> (rule4 % int4))) -> (rule6 % int3)) ((((triple1) -> (rule1 % int2))) -> (rule4 % int4))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is red.
("Bob" "is" "red" "+")
triple3
((triple1) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
triple5
Erin is not cold.
("Erin" "is" "cold" "-")
triple4
Erin is not nice.
("Erin" "is" "nice" "-")
triple6
Gary is blue.
("Gary" "is" "blue" "+")
triple7
Gary is nice.
("Gary" "is" "nice" "+")
triple8
((triple7) -> (rule5 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
triple9
((triple8 ((triple8) -> (rule2 % int2))) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
((((triple7) -> (rule5 % int3)) ((triple8) -> (rule2 % int2))) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
((triple8 ((((triple7) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
((((triple7) -> (rule5 % int3)) ((((triple7) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
Harry is cold.
("Harry" "is" "cold" "+")
triple10
Bob is blue.
("Bob" "is" "blue" "+")
((triple3) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple1) -> (rule1 % int2))) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
((triple8) -> (rule2 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((((triple7) -> (rule5 % int2))) -> (rule2 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
((triple7) -> (rule6 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
((triple10) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
((((triple3) -> (rule4 % int2))) -> (rule5 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple1) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
((((triple7) -> (rule6 % int2))) -> (rule1 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
((((triple10) -> (rule1 % int2))) -> (rule4 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Bob is big.
("Bob" "is" "big" "+")
((((((triple3) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((((triple1) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is red.
("Bob" "is" "red" "+")
int4
Harry is nice.
("Harry" "is" "nice" "+")
((((((triple10) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
((((((triple3) -> (rule4 % int4))) -> (rule5 % int3)) ((((((triple3) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
((((((((triple1) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3)) ((((((triple3) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is red.
("Bob" "is" "red" "+")
int5
((((((triple3) -> (rule4 % int5))) -> (rule5 % int4)) ((((((((triple1) -> (rule1 % int3))) -> (rule4 % int5))) -> (rule5 % int4))) -> (rule2 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5
((((((((triple1) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3)) ((((((((triple1) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is red.
("Bob" "is" "red" "+")
int5
Harry is big.
("Harry" "is" "big" "+")
((((((((triple10) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule2 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
((((((((triple10) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3)) ((((((((triple10) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is red.
("Harry" "is" "red" "+")
int5