Anne is kind. Anne is rough. Charlie is green. Charlie is kind. Charlie is rough. Charlie is young. Erin is big. Erin is kind. Erin is white. Harry is kind. Harry is rough. Harry is young. If something is young then it is white. If something is rough then it is kind. If something is kind and white then it is green. All white things are rough. If Erin is nice then Erin is young. Young things are white.
Anne is kind.
("Anne" "is" "kind" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Erin is big.
("Erin" "is" "big" "+")
Erin is kind.
("Erin" "is" "kind" "+")
Erin is white.
("Erin" "is" "white" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is young.
("Harry" "is" "young" "+")
If something is young then it is white.
((("something" "is" "young" "+")) -> ("something" "is" "white" "+"))
If something is rough then it is kind.
((("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
If something is kind and white then it is green.
((("something" "is" "kind" "+") ("something" "is" "white" "+")) -> ("something" "is" "green" "+"))
All white things are rough.
((("something" "is" "white" "+")) -> ("something" "is" "rough" "+"))
If Erin is nice then Erin is young.
((("Erin" "is" "nice" "+")) -> ("Erin" "is" "young" "+"))
Young things are white.
((("something" "is" "young" "+")) -> ("something" "is" "white" "+"))
Erin is white.
True
1
proof
[(triple9)]
("Erin" "is" "white" "+")
triple9
Charlie is not young.
False
1
inv-proof
[(triple6)]
("Charlie" "is" "young" "-")
triple6
Charlie is white.
True
2
proof
[(((triple6) -> rule1) OR ((triple6) -> rule6))]
("Charlie" "is" "white" "+")
((triple6) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((triple6) -> (rule6 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Harry is not white.
False
2
inv-proof
[(((triple12) -> rule1) OR ((triple12) -> rule6))]
("Harry" "is" "white" "-")
((triple12) -> (rule1 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
((triple12) -> (rule6 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is green.
True
4
proof
[(((triple10 ((triple12) -> rule1)) -> rule3) OR ((triple10 ((triple12) -> rule6)) -> rule3) OR ((((triple11) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((triple11) -> rule2) ((triple12) -> rule6)) -> rule3) OR ((((((((triple12) -> rule1)) -> rule4)) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((((((triple12) -> rule1)) -> rule4)) -> rule2) ((triple12) -> rule6)) -> rule3) OR ((((((((triple12) -> rule6)) -> rule4)) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((((((triple12) -> rule6)) -> rule4)) -> rule2) ((triple12) -> rule6)) -> rule3))]
("Harry" "is" "green" "+")
((triple10 ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((triple10 ((triple12) -> (rule6 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((triple11) -> (rule2 % int3)) ((triple12) -> (rule6 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((((((triple12) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule6 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule6 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is not green.
False
4
inv-proof
[(((triple10 ((triple12) -> rule1)) -> rule3) OR ((triple10 ((triple12) -> rule6)) -> rule3) OR ((((triple11) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((triple11) -> rule2) ((triple12) -> rule6)) -> rule3) OR ((((((((triple12) -> rule1)) -> rule4)) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((((((triple12) -> rule1)) -> rule4)) -> rule2) ((triple12) -> rule6)) -> rule3) OR ((((((((triple12) -> rule6)) -> rule4)) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((((((triple12) -> rule6)) -> rule4)) -> rule2) ((triple12) -> rule6)) -> rule3))]
("Harry" "is" "green" "-")
((triple10 ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((triple10 ((triple12) -> (rule6 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((triple11) -> (rule2 % int3)) ((triple12) -> (rule6 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((((((triple12) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule6 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule6 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Anne is not green.
Unknown
inv-rconc
[@2: Anne is green.[CWA. Example of deepest failure = (rule3 <- rule1 <- FAIL)]]
("Anne" "is" "green" "-")
Anne is white.
Unknown
rconc
[@1: Anne is white.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Anne" "is" "white" "+")
Erin is not young.
Unknown
inv-rconc
[@1: Erin is young.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Erin" "is" "young" "-")
Anne is young.
Unknown
random
[@0: Anne is young.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "young" "+")
Erin is not nice.
Unknown
inv-random
[@0: Erin is nice.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "nice" "-")
Anne is big.
Unknown
random
[@0: Anne is big.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "big" "+")
@0: Anne is kind.[(triple1 OR ((triple2) -> rule2))] Anne is rough.[(triple2)] Charlie is green.[(triple3 OR ((triple4 ((triple6) -> rule1)) -> rule3) OR ((triple4 ((triple6) -> rule6)) -> rule3) OR ((((triple5) -> rule2) ((triple6) -> rule1)) -> rule3) OR ((((triple5) -> rule2) ((triple6) -> rule6)) -> rule3) OR ((((((((triple6) -> rule1)) -> rule4)) -> rule2) ((triple6) -> rule1)) -> rule3) OR ((((((((triple6) -> rule1)) -> rule4)) -> rule2) ((triple6) -> rule6)) -> rule3) OR ((((((((triple6) -> rule6)) -> rule4)) -> rule2) ((triple6) -> rule1)) -> rule3) OR ((((((((triple6) -> rule6)) -> rule4)) -> rule2) ((triple6) -> rule6)) -> rule3))] Charlie is kind.[(triple4 OR ((triple5) -> rule2) OR ((((((triple6) -> rule1)) -> rule4)) -> rule2) OR ((((((triple6) -> rule6)) -> rule4)) -> rule2))] Charlie is rough.[(triple5 OR ((((triple6) -> rule1)) -> rule4) OR ((((triple6) -> rule6)) -> rule4))] Charlie is young.[(triple6)] Erin is big.[(triple7)] Erin is kind.[(triple8 OR ((((triple9) -> rule4)) -> rule2))] Erin is white.[(triple9)] Harry is kind.[(triple10 OR ((triple11) -> rule2) OR ((((((triple12) -> rule1)) -> rule4)) -> rule2) OR ((((((triple12) -> rule6)) -> rule4)) -> rule2))] Harry is rough.[(triple11 OR ((((triple12) -> rule1)) -> rule4) OR ((((triple12) -> rule6)) -> rule4))] Harry is young.[(triple12)] @1: Charlie is white.[(((triple6) -> rule1) OR ((triple6) -> rule6))] Erin is green.[(((triple8 triple9) -> rule3) OR ((((((triple9) -> rule4)) -> rule2) triple9) -> rule3))] Erin is rough.[(((triple9) -> rule4))] Harry is white.[(((triple12) -> rule1) OR ((triple12) -> rule6))] @2: Harry is green.[(((triple10 ((triple12) -> rule1)) -> rule3) OR ((triple10 ((triple12) -> rule6)) -> rule3) OR ((((triple11) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((triple11) -> rule2) ((triple12) -> rule6)) -> rule3) OR ((((((((triple12) -> rule1)) -> rule4)) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((((((triple12) -> rule1)) -> rule4)) -> rule2) ((triple12) -> rule6)) -> rule3) OR ((((((((triple12) -> rule6)) -> rule4)) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((((((triple12) -> rule6)) -> rule4)) -> rule2) ((triple12) -> rule6)) -> rule3))]
Anne is kind.
("Anne" "is" "kind" "+")
triple1
((triple2) -> (rule2 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
triple2
Charlie is green.
("Charlie" "is" "green" "+")
triple3
((triple4 ((triple6) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((triple4 ((triple6) -> (rule6 % int2))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple5) -> (rule2 % int3)) ((triple6) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((triple5) -> (rule2 % int3)) ((triple6) -> (rule6 % int2))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((((triple6) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple6) -> (rule1 % int4))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is white.
("Charlie" "is" "white" "+")
int4
((((((((triple6) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple6) -> (rule6 % int4))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is white.
("Charlie" "is" "white" "+")
int4
((((((((triple6) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple6) -> (rule1 % int4))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is white.
("Charlie" "is" "white" "+")
int4
((((((((triple6) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple6) -> (rule6 % int4))) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is white.
("Charlie" "is" "white" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
triple4
((triple5) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((((((triple6) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
((((((triple6) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
triple5
((((triple6) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple6) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
triple6
Erin is big.
("Erin" "is" "big" "+")
triple7
Erin is kind.
("Erin" "is" "kind" "+")
triple8
((((triple9) -> (rule4 % int2))) -> (rule2 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is white.
("Erin" "is" "white" "+")
triple9
Harry is kind.
("Harry" "is" "kind" "+")
triple10
((triple11) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
((((((triple12) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
int3
((((((triple12) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
triple11
((((triple12) -> (rule1 % int2))) -> (rule4 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((((triple12) -> (rule6 % int2))) -> (rule4 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is young.
("Harry" "is" "young" "+")
triple12
Charlie is white.
("Charlie" "is" "white" "+")
((triple6) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((triple6) -> (rule6 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
((triple8 triple9) -> (rule3 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
((((((triple9) -> (rule4 % int3))) -> (rule2 % int2)) triple9) -> (rule3 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
((triple9) -> (rule4 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
((triple12) -> (rule1 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
((triple12) -> (rule6 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
((triple10 ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((triple10 ((triple12) -> (rule6 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((triple11) -> (rule2 % int3)) ((triple12) -> (rule6 % int2))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((((((triple12) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule6 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
((((((((triple12) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule2 % int2)) ((triple12) -> (rule6 % int4))) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4