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