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