Anne is blue. Anne is quiet. Anne is white. Bob is big. Bob is red. Bob is rough. Erin is blue. Erin is kind. Erin is quiet. Fiona is white. Quiet, rough things are blue. If Anne is quiet and Anne is kind then Anne is red. If something is blue then it is big. Big things are rough. If Bob is big and Bob is white then Bob is rough. All red, rough things are white. All big, rough things are kind. White things are rough.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is quiet.
("Anne" "is" "quiet" "+")
Anne is white.
("Anne" "is" "white" "+")
Bob is big.
("Bob" "is" "big" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Erin is blue.
("Erin" "is" "blue" "+")
Erin is kind.
("Erin" "is" "kind" "+")
Erin is quiet.
("Erin" "is" "quiet" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Quiet, rough things are blue.
((("something" "is" "quiet" "+") ("something" "is" "rough" "+")) -> ("something" "is" "blue" "+"))
If Anne is quiet and Anne is kind then Anne is red.
((("Anne" "is" "quiet" "+") ("Anne" "is" "kind" "+")) -> ("Anne" "is" "red" "+"))
If something is blue then it is big.
((("something" "is" "blue" "+")) -> ("something" "is" "big" "+"))
Big things are rough.
((("something" "is" "big" "+")) -> ("something" "is" "rough" "+"))
If Bob is big and Bob is white then Bob is rough.
((("Bob" "is" "big" "+") ("Bob" "is" "white" "+")) -> ("Bob" "is" "rough" "+"))
All red, rough things are white.
((("something" "is" "red" "+") ("something" "is" "rough" "+")) -> ("something" "is" "white" "+"))
All big, rough things are kind.
((("something" "is" "big" "+") ("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
White things are rough.
((("something" "is" "white" "+")) -> ("something" "is" "rough" "+"))
Bob is red.
True
1
proof
[(triple5)]
("Bob" "is" "red" "+")
triple5
Anne is not quiet.
False
1
inv-proof
[(triple2)]
("Anne" "is" "quiet" "-")
triple2
Anne is rough.
True
2
proof
[(((triple3) -> rule8) OR ((((triple1) -> rule3)) -> rule4))]
("Anne" "is" "rough" "+")
((triple3) -> (rule8 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Fiona is not rough.
False
2
inv-proof
[(((triple10) -> rule8))]
("Fiona" "is" "rough" "-")
((triple10) -> (rule8 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Anne is kind.
True
5
proof
[(((((triple1) -> rule3) ((triple3) -> rule8)) -> rule7) OR ((((triple1) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7) OR ((((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3) ((triple3) -> rule8)) -> rule7) OR ((((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7))]
("Anne" "is" "kind" "+")
((((triple1) -> (rule3 % int3)) ((triple3) -> (rule8 % int2))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
((((triple1) -> (rule3 % int3)) ((((triple1) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
((((((triple2 ((triple3) -> (rule8 % int4))) -> (rule1 % int3))) -> (rule3 % int2)) ((triple3) -> (rule8 % int4))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
int4
((((((triple2 ((triple3) -> (rule8 % int4))) -> (rule1 % int3))) -> (rule3 % int2)) ((((triple1) -> (rule3 % int2))) -> (rule4 % int4))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
int4
Erin is not rough.
False
3
inv-proof
[(((((triple7) -> rule3)) -> rule4))]
("Erin" "is" "rough" "-")
((((triple7) -> (rule3 % int2))) -> (rule4 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Erin is not white.
Unknown
inv-rconc
[@1: Erin is white.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Erin" "is" "white" "-")
Fiona is blue.
Unknown
rconc
[@1: Fiona is blue.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Fiona" "is" "blue" "+")
Bob is not blue.
Unknown
inv-rconc
[@1: Bob is blue.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Bob" "is" "blue" "-")
Bob is quiet.
Unknown
random
[@0: Bob is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "quiet" "+")
Erin is not red.
Unknown
inv-random
[@0: Erin is red.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "red" "-")
Fiona is quiet.
Unknown
random
[@0: Fiona is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "quiet" "+")
@0: Anne is blue.[(triple1 OR ((triple2 ((triple3) -> rule8)) -> rule1))] Anne is quiet.[(triple2)] Anne is white.[(triple3 OR ((((triple2 ((((triple1) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7)) -> rule2) ((((triple1) -> rule3)) -> rule4)) -> rule6))] Bob is big.[(triple4)] Bob is red.[(triple5)] Bob is rough.[(triple6 OR ((triple4) -> rule4))] Erin is blue.[(triple7)] Erin is kind.[(triple8 OR ((((triple7) -> rule3) ((((triple7) -> rule3)) -> rule4)) -> rule7))] Erin is quiet.[(triple9)] Fiona is white.[(triple10)] @1: Anne is big.[(((triple1) -> rule3) OR ((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3))] Anne is rough.[(((triple3) -> rule8) OR ((((triple1) -> rule3)) -> rule4))] Bob is kind.[(((triple4 triple6) -> rule7) OR ((triple4 ((triple4) -> rule4)) -> rule7))] Bob is white.[(((triple5 triple6) -> rule6) OR ((triple5 ((triple4) -> rule4)) -> rule6))] Erin is big.[(((triple7) -> rule3))] Fiona is rough.[(((triple10) -> rule8))] @2: Anne is kind.[(((((triple1) -> rule3) ((triple3) -> rule8)) -> rule7) OR ((((triple1) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7) OR ((((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3) ((triple3) -> rule8)) -> rule7) OR ((((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7))] Erin is rough.[(((((triple7) -> rule3)) -> rule4))] @3: Anne is red.[(((triple2 ((((triple1) -> rule3) ((triple3) -> rule8)) -> rule7)) -> rule2) OR ((triple2 ((((triple1) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7)) -> rule2) OR ((triple2 ((((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3) ((triple3) -> rule8)) -> rule7)) -> rule2) OR ((triple2 ((((((triple2 ((triple3) -> rule8)) -> rule1)) -> rule3) ((((triple1) -> rule3)) -> rule4)) -> rule7)) -> rule2))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
((triple2 ((triple3) -> (rule8 % int2))) -> (rule1 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is quiet.
("Anne" "is" "quiet" "+")
triple2
Anne is white.
("Anne" "is" "white" "+")
triple3
((((triple2 ((((triple1) -> (rule3 % int5)) ((((triple1) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule2 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule6 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is kind.
("Anne" "is" "kind" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
int4
Anne is big.
("Anne" "is" "big" "+")
int5
Bob is big.
("Bob" "is" "big" "+")
triple4
Bob is red.
("Bob" "is" "red" "+")
triple5
Bob is rough.
("Bob" "is" "rough" "+")
triple6
((triple4) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
triple7
Erin is kind.
("Erin" "is" "kind" "+")
triple8
((((triple7) -> (rule3 % int3)) ((((triple7) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is big.
("Erin" "is" "big" "+")
int3
Erin is quiet.
("Erin" "is" "quiet" "+")
triple9
Fiona is white.
("Fiona" "is" "white" "+")
triple10
Anne is big.
("Anne" "is" "big" "+")
((triple1) -> (rule3 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
((((triple2 ((triple3) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
((triple3) -> (rule8 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
((triple4 triple6) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((triple4 ((triple4) -> (rule4 % int2))) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
((triple5 triple6) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
((triple5 ((triple4) -> (rule4 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Erin is big.
("Erin" "is" "big" "+")
((triple7) -> (rule3 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
((triple10) -> (rule8 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
((((triple1) -> (rule3 % int3)) ((triple3) -> (rule8 % int2))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
((((triple1) -> (rule3 % int3)) ((((triple1) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
((((((triple2 ((triple3) -> (rule8 % int4))) -> (rule1 % int3))) -> (rule3 % int2)) ((triple3) -> (rule8 % int4))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
int4
((((((triple2 ((triple3) -> (rule8 % int4))) -> (rule1 % int3))) -> (rule3 % int2)) ((((triple1) -> (rule3 % int2))) -> (rule4 % int4))) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
int4
Erin is rough.
("Erin" "is" "rough" "+")
((((triple7) -> (rule3 % int2))) -> (rule4 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
((triple2 ((((triple1) -> (rule3 % int4)) ((triple3) -> (rule8 % int3))) -> (rule7 % int2))) -> (rule2 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
((triple2 ((((triple1) -> (rule3 % int4)) ((((triple1) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule2 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
((triple2 ((((((triple2 ((triple3) -> (rule8 % int5))) -> (rule1 % int4))) -> (rule3 % int3)) ((triple3) -> (rule8 % int5))) -> (rule7 % int2))) -> (rule2 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is blue.
("Anne" "is" "blue" "+")
int4
Anne is rough.
("Anne" "is" "rough" "+")
int5
((triple2 ((((((triple2 ((triple3) -> (rule8 % int5))) -> (rule1 % int4))) -> (rule3 % int3)) ((((triple1) -> (rule3 % int3))) -> (rule4 % int5))) -> (rule7 % int2))) -> (rule2 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is blue.
("Anne" "is" "blue" "+")
int4
Anne is rough.
("Anne" "is" "rough" "+")
int5