Bob is white. Dave is big. Dave is green. Dave is round. Dave is white. Gary is blue. Gary is kind. Gary is round. Harry is big. Harry is kind. Kind, cold people are round. Green people are cold. All cold, kind people are round. All white people are green. If someone is kind and blue then they are white. If someone is white then they are kind. All kind, green people are white. Big, round people are cold. All big, kind people are blue.
Bob is white.
("Bob" "is" "white" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is round.
("Dave" "is" "round" "+")
Dave is white.
("Dave" "is" "white" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is round.
("Gary" "is" "round" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Kind, cold people are round.
((("someone" "is" "kind" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "round" "+"))
Green people are cold.
((("someone" "is" "green" "+")) -> ("someone" "is" "cold" "+"))
All cold, kind people are round.
((("someone" "is" "cold" "+") ("someone" "is" "kind" "+")) -> ("someone" "is" "round" "+"))
All white people are green.
((("someone" "is" "white" "+")) -> ("someone" "is" "green" "+"))
If someone is kind and blue then they are white.
((("someone" "is" "kind" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
If someone is white then they are kind.
((("someone" "is" "white" "+")) -> ("someone" "is" "kind" "+"))
All kind, green people are white.
((("someone" "is" "kind" "+") ("someone" "is" "green" "+")) -> ("someone" "is" "white" "+"))
Big, round people are cold.
((("someone" "is" "big" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "cold" "+"))
All big, kind people are blue.
((("someone" "is" "big" "+") ("someone" "is" "kind" "+")) -> ("someone" "is" "blue" "+"))
Gary is blue.
True
1
proof
[(triple6)]
("Gary" "is" "blue" "+")
triple6
Harry is not big.
False
1
inv-proof
[(triple9)]
("Harry" "is" "big" "-")
triple9
Bob is green.
True
2
proof
[(((triple1) -> rule4))]
("Bob" "is" "green" "+")
((triple1) -> (rule4 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Dave is not kind.
False
2
inv-proof
[(((triple5) -> rule6))]
("Dave" "is" "kind" "-")
((triple5) -> (rule6 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Gary is green.
True
4
proof
[(((((triple7 triple6) -> rule5)) -> rule4))]
("Gary" "is" "green" "+")
((((triple7 triple6) -> (rule5 % int2))) -> (rule4 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is white.
("Gary" "is" "white" "+")
int2
Dave is not blue.
False
4
inv-proof
[(((triple2 ((triple5) -> rule6)) -> rule9))]
("Dave" "is" "blue" "-")
((triple2 ((triple5) -> (rule6 % int2))) -> (rule9 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Harry is green.
True
6
proof
[(((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4))]
("Harry" "is" "green" "+")
((((triple10 ((triple9 triple10) -> (rule9 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Gary is not cold.
False
5
inv-proof
[(((((((triple7 triple6) -> rule5)) -> rule4)) -> rule2))]
("Gary" "is" "cold" "-")
((((((triple7 triple6) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Gary is white.
("Gary" "is" "white" "+")
int3
Harry is cold.
True
7
proof
[(((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2))]
("Harry" "is" "cold" "+")
((((((triple10 ((triple9 triple10) -> (rule9 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is not cold.
False
7
inv-proof
[(((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2))]
("Harry" "is" "cold" "-")
((((((triple10 ((triple9 triple10) -> (rule9 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is round.
True
9
proof
[(((triple10 ((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2)) -> rule1) OR ((((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2) triple10) -> rule3))]
("Harry" "is" "round" "+")
((triple10 ((((((triple10 ((triple9 triple10) -> (rule9 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
((((((((triple10 ((triple9 triple10) -> (rule9 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) triple10) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
Harry is not round.
False
9
inv-proof
[(((triple10 ((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2)) -> rule1) OR ((((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2) triple10) -> rule3))]
("Harry" "is" "round" "-")
((triple10 ((((((triple10 ((triple9 triple10) -> (rule9 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
((((((((triple10 ((triple9 triple10) -> (rule9 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) triple10) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
Bob is not blue.
Unknown
inv-rconc
[@1: Bob is blue.[CWA. Example of deepest failure = (rule9 <- FAIL)]]
("Bob" "is" "blue" "-")
Bob is big.
Unknown
random
[@0: Bob is big.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "big" "+")
@0: Bob is white.[(triple1)] Dave is big.[(triple2)] Dave is green.[(triple3 OR ((triple5) -> rule4))] Dave is round.[(triple4 OR ((((triple3) -> rule2) ((triple5) -> rule6)) -> rule3) OR ((((triple5) -> rule6) ((triple3) -> rule2)) -> rule1) OR ((((triple5) -> rule6) ((((triple5) -> rule4)) -> rule2)) -> rule1) OR ((((((triple5) -> rule4)) -> rule2) ((triple5) -> rule6)) -> rule3))] Dave is white.[(triple5)] Gary is blue.[(triple6)] Gary is kind.[(triple7)] Gary is round.[(triple8 OR ((triple7 ((((((triple7 triple6) -> rule5)) -> rule4)) -> rule2)) -> rule1) OR ((((((((triple7 triple6) -> rule5)) -> rule4)) -> rule2) triple7) -> rule3))] Harry is big.[(triple9)] Harry is kind.[(triple10)] @1: Bob is green.[(((triple1) -> rule4))] Bob is kind.[(((triple1) -> rule6))] Dave is cold.[(((triple3) -> rule2) OR ((triple2 triple4) -> rule8) OR ((((triple5) -> rule4)) -> rule2))] Dave is kind.[(((triple5) -> rule6))] Gary is white.[(((triple7 triple6) -> rule5))] Harry is blue.[(((triple9 triple10) -> rule9))] @2: Bob is cold.[(((((triple1) -> rule4)) -> rule2))] Dave is blue.[(((triple2 ((triple5) -> rule6)) -> rule9))] Gary is green.[(((((triple7 triple6) -> rule5)) -> rule4))] Harry is white.[(((triple10 ((triple9 triple10) -> rule9)) -> rule5))] @3: Bob is round.[(((((triple1) -> rule6) ((((triple1) -> rule4)) -> rule2)) -> rule1) OR ((((((triple1) -> rule4)) -> rule2) ((triple1) -> rule6)) -> rule3))] Gary is cold.[(((((((triple7 triple6) -> rule5)) -> rule4)) -> rule2))] Harry is green.[(((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4))] @4: Harry is cold.[(((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2))] @5: Harry is round.[(((triple10 ((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2)) -> rule1) OR ((((((((triple10 ((triple9 triple10) -> rule9)) -> rule5)) -> rule4)) -> rule2) triple10) -> rule3))]
Bob is white.
("Bob" "is" "white" "+")
triple1
Dave is big.
("Dave" "is" "big" "+")
triple2
Dave is green.
("Dave" "is" "green" "+")
triple3
((triple5) -> (rule4 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
triple4
((((triple3) -> (rule2 % int3)) ((triple5) -> (rule6 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
((((triple5) -> (rule6 % int3)) ((triple3) -> (rule2 % int2))) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
((((triple5) -> (rule6 % int4)) ((((triple5) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
((((((triple5) -> (rule4 % int4))) -> (rule2 % int3)) ((triple5) -> (rule6 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
int4
Dave is white.
("Dave" "is" "white" "+")
triple5
Gary is blue.
("Gary" "is" "blue" "+")
triple6
Gary is kind.
("Gary" "is" "kind" "+")
triple7
Gary is round.
("Gary" "is" "round" "+")
triple8
((triple7 ((((((triple7 triple6) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is white.
("Gary" "is" "white" "+")
int4
((((((((triple7 triple6) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) triple7) -> (rule3 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is white.
("Gary" "is" "white" "+")
int4
Harry is big.
("Harry" "is" "big" "+")
triple9
Harry is kind.
("Harry" "is" "kind" "+")
triple10
Bob is green.
("Bob" "is" "green" "+")
((triple1) -> (rule4 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
((triple1) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
((triple3) -> (rule2 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((triple2 triple4) -> (rule8 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple5) -> (rule4 % int2))) -> (rule2 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
((triple5) -> (rule6 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Gary is white.
("Gary" "is" "white" "+")
((triple7 triple6) -> (rule5 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
((triple9 triple10) -> (rule9 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
((((triple1) -> (rule4 % int2))) -> (rule2 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
((triple2 ((triple5) -> (rule6 % int2))) -> (rule9 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
((((triple7 triple6) -> (rule5 % int2))) -> (rule4 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is white.
("Gary" "is" "white" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
((triple10 ((triple9 triple10) -> (rule9 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
((((triple1) -> (rule6 % int4)) ((((triple1) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
((((((triple1) -> (rule4 % int4))) -> (rule2 % int3)) ((triple1) -> (rule6 % int2))) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is green.
("Bob" "is" "green" "+")
int4
Gary is cold.
("Gary" "is" "cold" "+")
((((((triple7 triple6) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Gary is white.
("Gary" "is" "white" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
((((triple10 ((triple9 triple10) -> (rule9 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is cold.
("Harry" "is" "cold" "+")
((((((triple10 ((triple9 triple10) -> (rule9 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is round.
("Harry" "is" "round" "+")
((triple10 ((((((triple10 ((triple9 triple10) -> (rule9 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
((((((((triple10 ((triple9 triple10) -> (rule9 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) triple10) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5