Bob is cold. Bob is red. Bob is smart. Charlie is red. Dave is green. Dave is smart. Gary is cold. Green, smart people are blue. Cold people are blue. If someone is nice and smart then they are red. If someone is green then they are red. Cold, red people are green. All blue people are nice. If someone is blue and nice then they are smart. If someone is smart and blue then they are cold.
Bob is cold.
("Bob" "is" "cold" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Green, smart people are blue.
((("someone" "is" "green" "+") ("someone" "is" "smart" "+")) -> ("someone" "is" "blue" "+"))
Cold people are blue.
((("someone" "is" "cold" "+")) -> ("someone" "is" "blue" "+"))
If someone is nice and smart then they are red.
((("someone" "is" "nice" "+") ("someone" "is" "smart" "+")) -> ("someone" "is" "red" "+"))
If someone is green then they are red.
((("someone" "is" "green" "+")) -> ("someone" "is" "red" "+"))
Cold, red people are green.
((("someone" "is" "cold" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "green" "+"))
All blue people are nice.
((("someone" "is" "blue" "+")) -> ("someone" "is" "nice" "+"))
If someone is blue and nice then they are smart.
((("someone" "is" "blue" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "smart" "+"))
If someone is smart and blue then they are cold.
((("someone" "is" "smart" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "cold" "+"))
Charlie is red.
True
1
proof
[(triple4)]
("Charlie" "is" "red" "+")
triple4
Bob is not red.
False
1
inv-proof
[(triple2 OR ((((((triple1) -> rule2)) -> rule6) triple3) -> rule3) OR ((((((triple1) -> rule2)) -> rule6) ((((triple1) -> rule2) ((((triple1) -> rule2)) -> rule6)) -> rule7)) -> rule3))]
("Bob" "is" "red" "-")
triple2
((((((triple1) -> (rule2 % int3))) -> (rule6 % int2)) triple3) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple1) -> (rule2 % int4))) -> (rule6 % int3)) ((((triple1) -> (rule2 % int4)) ((((triple1) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is blue.
True
2
proof
[(((triple1) -> rule2) OR ((((triple1 triple2) -> rule5) triple3) -> rule1))]
("Bob" "is" "blue" "+")
((triple1) -> (rule2 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple1 triple2) -> (rule5 % int2)) triple3) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Dave is not red.
False
2
inv-proof
[(((triple5) -> rule4) OR ((((((triple5 triple6) -> rule1)) -> rule6) triple6) -> rule3))]
("Dave" "is" "red" "-")
((triple5) -> (rule4 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
((((((triple5 triple6) -> (rule1 % int3))) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Gary is nice.
True
3
proof
[(((((triple7) -> rule2)) -> rule6))]
("Gary" "is" "nice" "+")
((((triple7) -> (rule2 % int2))) -> (rule6 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Dave is not nice.
False
4
inv-proof
[(((((triple5 triple6) -> rule1)) -> rule6))]
("Dave" "is" "nice" "-")
((((triple5 triple6) -> (rule1 % int2))) -> (rule6 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Gary is smart.
True
6
proof
[(((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7))]
("Gary" "is" "smart" "+")
((((triple7) -> (rule2 % int3)) ((((triple7) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is not smart.
False
6
inv-proof
[(((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7))]
("Gary" "is" "smart" "-")
((((triple7) -> (rule2 % int3)) ((((triple7) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is red.
True
10
proof
[(((((((triple7) -> rule2)) -> rule6) ((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7)) -> rule3))]
("Gary" "is" "red" "+")
((((((triple7) -> (rule2 % int4))) -> (rule6 % int3)) ((((triple7) -> (rule2 % int4)) ((((triple7) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is not red.
False
10
inv-proof
[(((((((triple7) -> rule2)) -> rule6) ((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7)) -> rule3))]
("Gary" "is" "red" "-")
((((((triple7) -> (rule2 % int4))) -> (rule6 % int3)) ((((triple7) -> (rule2 % int4)) ((((triple7) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is green.
True
12
proof
[(((triple7 ((((((triple7) -> rule2)) -> rule6) ((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7)) -> rule3)) -> rule5))]
("Gary" "is" "green" "+")
((triple7 ((((((triple7) -> (rule2 % int5))) -> (rule6 % int4)) ((((triple7) -> (rule2 % int5)) ((((triple7) -> (rule2 % int5))) -> (rule6 % int4))) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
int4
Gary is blue.
("Gary" "is" "blue" "+")
int5
Gary is not green.
False
12
inv-proof
[(((triple7 ((((((triple7) -> rule2)) -> rule6) ((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7)) -> rule3)) -> rule5))]
("Gary" "is" "green" "-")
((triple7 ((((((triple7) -> (rule2 % int5))) -> (rule6 % int4)) ((((triple7) -> (rule2 % int5)) ((((triple7) -> (rule2 % int5))) -> (rule6 % int4))) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
int4
Gary is blue.
("Gary" "is" "blue" "+")
int5
Charlie is not smart.
Unknown
inv-rconc
[@3: Charlie is smart.[CWA. Example of deepest failure = (rule7 <- rule2 <- rule8 <- FAIL)]]
("Charlie" "is" "smart" "-")
Charlie is nice.
Unknown
rconc
[@4: Charlie is nice.[CWA. Example of deepest failure = (rule6 <- rule2 <- rule8 <- rule7 <- FAIL)]]
("Charlie" "is" "nice" "+")
Charlie is not cold.
Unknown
inv-rconc
[@3: Charlie is cold.[CWA. Example of deepest failure = (rule8 <- rule7 <- rule1 <- FAIL)]]
("Charlie" "is" "cold" "-")
Charlie is green.
Unknown
rconc
[@3: Charlie is green.[CWA. Example of deepest failure = (rule5 <- rule8 <- rule1 <- FAIL)]]
("Charlie" "is" "green" "+")
Charlie is not blue.
Unknown
inv-rconc
[@4: Charlie is blue.[CWA. Example of deepest failure = (rule1 <- rule5 <- rule8 <- rule2 <- FAIL)]]
("Charlie" "is" "blue" "-")
Dave is rough.
Unknown
random
[@0: Dave is rough.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "rough" "+")
Charlie is not rough.
Unknown
inv-random
[@0: Charlie is rough.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "rough" "-")
Bob is rough.
Unknown
random
[@0: Bob is rough.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "rough" "+")
@0: Bob is cold.[(triple1)] Bob is red.[(triple2 OR ((((((triple1) -> rule2)) -> rule6) triple3) -> rule3) OR ((((((triple1) -> rule2)) -> rule6) ((((triple1) -> rule2) ((((triple1) -> rule2)) -> rule6)) -> rule7)) -> rule3))] Bob is smart.[(triple3 OR ((((triple1) -> rule2) ((((triple1) -> rule2)) -> rule6)) -> rule7))] Charlie is red.[(triple4)] Dave is green.[(triple5)] Dave is smart.[(triple6)] Gary is cold.[(triple7)] @1: Bob is blue.[(((triple1) -> rule2) OR ((((triple1 triple2) -> rule5) triple3) -> rule1))] Bob is green.[(((triple1 triple2) -> rule5) OR ((triple1 ((((((triple1) -> rule2)) -> rule6) triple3) -> rule3)) -> rule5) OR ((triple1 ((((((triple1) -> rule2)) -> rule6) ((((triple1) -> rule2) ((((triple1) -> rule2)) -> rule6)) -> rule7)) -> rule3)) -> rule5))] Dave is blue.[(((triple5 triple6) -> rule1))] Dave is red.[(((triple5) -> rule4) OR ((((((triple5 triple6) -> rule1)) -> rule6) triple6) -> rule3))] Gary is blue.[(((triple7) -> rule2))] @2: Bob is nice.[(((((triple1) -> rule2)) -> rule6) OR ((((((triple1 triple2) -> rule5) triple3) -> rule1)) -> rule6))] Dave is cold.[(((triple6 ((triple5 triple6) -> rule1)) -> rule8))] Dave is nice.[(((((triple5 triple6) -> rule1)) -> rule6))] Gary is nice.[(((((triple7) -> rule2)) -> rule6))] @3: Gary is smart.[(((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7))] @4: Gary is red.[(((((((triple7) -> rule2)) -> rule6) ((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7)) -> rule3))] @5: Gary is green.[(((triple7 ((((((triple7) -> rule2)) -> rule6) ((((triple7) -> rule2) ((((triple7) -> rule2)) -> rule6)) -> rule7)) -> rule3)) -> rule5))]
Bob is cold.
("Bob" "is" "cold" "+")
triple1
Bob is red.
("Bob" "is" "red" "+")
triple2
((((((triple1) -> (rule2 % int3))) -> (rule6 % int2)) triple3) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple1) -> (rule2 % int4))) -> (rule6 % int3)) ((((triple1) -> (rule2 % int4)) ((((triple1) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is smart.
("Bob" "is" "smart" "+")
triple3
((((triple1) -> (rule2 % int3)) ((((triple1) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
triple4
Dave is green.
("Dave" "is" "green" "+")
triple5
Dave is smart.
("Dave" "is" "smart" "+")
triple6
Gary is cold.
("Gary" "is" "cold" "+")
triple7
Bob is blue.
("Bob" "is" "blue" "+")
((triple1) -> (rule2 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple1 triple2) -> (rule5 % int2)) triple3) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
((triple1 triple2) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
((triple1 ((((((triple1) -> (rule2 % int4))) -> (rule6 % int3)) triple3) -> (rule3 % int2))) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
((triple1 ((((((triple1) -> (rule2 % int5))) -> (rule6 % int4)) ((((triple1) -> (rule2 % int5)) ((((triple1) -> (rule2 % int5))) -> (rule6 % int4))) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5
Dave is blue.
("Dave" "is" "blue" "+")
((triple5 triple6) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
((triple5) -> (rule4 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
((((((triple5 triple6) -> (rule1 % int3))) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
((triple7) -> (rule2 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
((((triple1) -> (rule2 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple1 triple2) -> (rule5 % int3)) triple3) -> (rule1 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
((triple6 ((triple5 triple6) -> (rule1 % int2))) -> (rule8 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
((((triple5 triple6) -> (rule1 % int2))) -> (rule6 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
((((triple7) -> (rule2 % int2))) -> (rule6 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
((((triple7) -> (rule2 % int3)) ((((triple7) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
((((((triple7) -> (rule2 % int4))) -> (rule6 % int3)) ((((triple7) -> (rule2 % int4)) ((((triple7) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is green.
("Gary" "is" "green" "+")
((triple7 ((((((triple7) -> (rule2 % int5))) -> (rule6 % int4)) ((((triple7) -> (rule2 % int5)) ((((triple7) -> (rule2 % int5))) -> (rule6 % int4))) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
int4
Gary is blue.
("Gary" "is" "blue" "+")
int5