Anne is green. Anne is nice. Bob is blue. Bob is quiet. Fiona is blue. Fiona is green. Fiona is kind. Fiona is rough. Fiona is young. Harry is blue. Harry is kind. Harry is nice. Harry is quiet. Harry is young. If Fiona is rough and Fiona is young then Fiona is kind. All blue, rough things are kind. Blue, quiet things are rough. If Fiona is kind then Fiona is blue. If something is young and blue then it is green. All kind things are nice. If Bob is nice then Bob is young. All young things are quiet.
Anne is green.
("Anne" "is" "green" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Bob is blue.
("Bob" "is" "blue" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is young.
("Harry" "is" "young" "+")
If Fiona is rough and Fiona is young then Fiona is kind.
((("Fiona" "is" "rough" "+") ("Fiona" "is" "young" "+")) -> ("Fiona" "is" "kind" "+"))
All blue, rough things are kind.
((("something" "is" "blue" "+") ("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
Blue, quiet things are rough.
((("something" "is" "blue" "+") ("something" "is" "quiet" "+")) -> ("something" "is" "rough" "+"))
If Fiona is kind then Fiona is blue.
((("Fiona" "is" "kind" "+")) -> ("Fiona" "is" "blue" "+"))
If something is young and blue then it is green.
((("something" "is" "young" "+") ("something" "is" "blue" "+")) -> ("something" "is" "green" "+"))
All kind things are nice.
((("something" "is" "kind" "+")) -> ("something" "is" "nice" "+"))
If Bob is nice then Bob is young.
((("Bob" "is" "nice" "+")) -> ("Bob" "is" "young" "+"))
All young things are quiet.
((("something" "is" "young" "+")) -> ("something" "is" "quiet" "+"))
Fiona is young.
True
1
proof
[(triple9)]
("Fiona" "is" "young" "+")
triple9
Fiona is not green.
False
1
inv-proof
[(triple6 OR ((triple9 triple5) -> rule5) OR ((triple9 ((triple7) -> rule4)) -> rule5) OR ((triple9 ((((triple8 triple9) -> rule1)) -> rule4)) -> rule5))]
("Fiona" "is" "green" "-")
triple6
((triple9 triple5) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((triple9 ((triple7) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
((triple9 ((((triple8 triple9) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is nice.
True
2
proof
[(((triple7) -> rule6) OR ((((triple5 triple8) -> rule2)) -> rule6) OR ((((triple8 triple9) -> rule1)) -> rule6) OR ((((triple5 ((triple5 ((triple9) -> rule8)) -> rule3)) -> rule2)) -> rule6) OR ((((((triple5 ((triple9) -> rule8)) -> rule3) triple9) -> rule1)) -> rule6))]
("Fiona" "is" "nice" "+")
((triple7) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple5 triple8) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple8 triple9) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple5 ((triple5 ((triple9) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
((((((triple5 ((triple9) -> (rule8 % int4))) -> (rule3 % int3)) triple9) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
Fiona is not nice.
False
2
inv-proof
[(((triple7) -> rule6) OR ((((triple5 triple8) -> rule2)) -> rule6) OR ((((triple8 triple9) -> rule1)) -> rule6) OR ((((triple5 ((triple5 ((triple9) -> rule8)) -> rule3)) -> rule2)) -> rule6) OR ((((((triple5 ((triple9) -> rule8)) -> rule3) triple9) -> rule1)) -> rule6))]
("Fiona" "is" "nice" "-")
((triple7) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple5 triple8) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple8 triple9) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple5 ((triple5 ((triple9) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
((((((triple5 ((triple9) -> (rule8 % int4))) -> (rule3 % int3)) triple9) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
Bob is kind.
True
5
proof
[(((triple3 ((triple3 triple4) -> rule3)) -> rule2))]
("Bob" "is" "kind" "+")
((triple3 ((triple3 triple4) -> (rule3 % int2))) -> (rule2 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is not kind.
False
5
inv-proof
[(((triple3 ((triple3 triple4) -> rule3)) -> rule2))]
("Bob" "is" "kind" "-")
((triple3 ((triple3 triple4) -> (rule3 % int2))) -> (rule2 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is nice.
True
6
proof
[(((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6))]
("Bob" "is" "nice" "+")
((((triple3 ((triple3 triple4) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is not nice.
False
6
inv-proof
[(((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6))]
("Bob" "is" "nice" "-")
((((triple3 ((triple3 triple4) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is young.
True
7
proof
[(((((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6)) -> rule7))]
("Bob" "is" "young" "+")
((((((triple3 ((triple3 triple4) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Bob is not young.
False
7
inv-proof
[(((((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6)) -> rule7))]
("Bob" "is" "young" "-")
((((((triple3 ((triple3 triple4) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Bob is green.
True
9
proof
[(((((((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6)) -> rule7) triple3) -> rule5))]
("Bob" "is" "green" "+")
((((((((triple3 ((triple3 triple4) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2)) triple3) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is rough.
("Bob" "is" "rough" "+")
int5
Bob is not green.
False
9
inv-proof
[(((((((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6)) -> rule7) triple3) -> rule5))]
("Bob" "is" "green" "-")
((((((((triple3 ((triple3 triple4) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2)) triple3) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is rough.
("Bob" "is" "rough" "+")
int5
Anne is not kind.
Unknown
inv-rconc
[@1: Anne is kind.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Anne" "is" "kind" "-")
Anne is rough.
Unknown
rconc
[@1: Anne is rough.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Anne" "is" "rough" "+")
Anne is not quiet.
Unknown
inv-rconc
[@1: Anne is quiet.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Anne" "is" "quiet" "-")
Anne is young.
Unknown
random
[@0: Anne is young.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "young" "+")
@0: Anne is green.[(triple1)] Anne is nice.[(triple2)] Bob is blue.[(triple3)] Bob is quiet.[(triple4)] Fiona is blue.[(triple5 OR ((triple7) -> rule4) OR ((((triple8 triple9) -> rule1)) -> rule4))] Fiona is green.[(triple6 OR ((triple9 triple5) -> rule5) OR ((triple9 ((triple7) -> rule4)) -> rule5) OR ((triple9 ((((triple8 triple9) -> rule1)) -> rule4)) -> rule5))] Fiona is kind.[(triple7 OR ((triple5 triple8) -> rule2) OR ((triple8 triple9) -> rule1) OR ((triple5 ((triple5 ((triple9) -> rule8)) -> rule3)) -> rule2) OR ((((triple5 ((triple9) -> rule8)) -> rule3) triple9) -> rule1))] Fiona is rough.[(triple8 OR ((triple5 ((triple9) -> rule8)) -> rule3) OR ((((triple7) -> rule4) ((triple9) -> rule8)) -> rule3))] Fiona is young.[(triple9)] Harry is blue.[(triple10)] Harry is kind.[(triple11 OR ((triple10 ((triple10 triple13) -> rule3)) -> rule2) OR ((triple10 ((triple10 ((triple14) -> rule8)) -> rule3)) -> rule2))] Harry is nice.[(triple12 OR ((triple11) -> rule6) OR ((((triple10 ((triple10 triple13) -> rule3)) -> rule2)) -> rule6) OR ((((triple10 ((triple10 ((triple14) -> rule8)) -> rule3)) -> rule2)) -> rule6))] Harry is quiet.[(triple13 OR ((triple14) -> rule8))] Harry is young.[(triple14)] @1: Bob is rough.[(((triple3 triple4) -> rule3))] Fiona is nice.[(((triple7) -> rule6) OR ((((triple5 triple8) -> rule2)) -> rule6) OR ((((triple8 triple9) -> rule1)) -> rule6) OR ((((triple5 ((triple5 ((triple9) -> rule8)) -> rule3)) -> rule2)) -> rule6) OR ((((((triple5 ((triple9) -> rule8)) -> rule3) triple9) -> rule1)) -> rule6))] Fiona is quiet.[(((triple9) -> rule8))] Harry is green.[(((triple14 triple10) -> rule5))] Harry is rough.[(((triple10 triple13) -> rule3) OR ((triple10 ((triple14) -> rule8)) -> rule3))] @2: Bob is kind.[(((triple3 ((triple3 triple4) -> rule3)) -> rule2))] @3: Bob is nice.[(((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6))] @4: Bob is young.[(((((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6)) -> rule7))] @5: Bob is green.[(((((((((triple3 ((triple3 triple4) -> rule3)) -> rule2)) -> rule6)) -> rule7) triple3) -> rule5))]
Anne is green.
("Anne" "is" "green" "+")
triple1
Anne is nice.
("Anne" "is" "nice" "+")
triple2
Bob is blue.
("Bob" "is" "blue" "+")
triple3
Bob is quiet.
("Bob" "is" "quiet" "+")
triple4
Fiona is blue.
("Fiona" "is" "blue" "+")
triple5
((triple7) -> (rule4 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
((((triple8 triple9) -> (rule1 % int2))) -> (rule4 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
triple6
((triple9 triple5) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((triple9 ((triple7) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
((triple9 ((((triple8 triple9) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is kind.
("Fiona" "is" "kind" "+")
triple7
((triple5 triple8) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple8 triple9) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple5 ((triple5 ((triple9) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int3
((((triple5 ((triple9) -> (rule8 % int3))) -> (rule3 % int2)) triple9) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
triple8
((triple5 ((triple9) -> (rule8 % int2))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
((((triple7) -> (rule4 % int3)) ((triple9) -> (rule8 % int2))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
triple9
Harry is blue.
("Harry" "is" "blue" "+")
triple10
Harry is kind.
("Harry" "is" "kind" "+")
triple11
((triple10 ((triple10 triple13) -> (rule3 % int2))) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((triple10 ((triple10 ((triple14) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is quiet.
("Harry" "is" "quiet" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
triple12
((triple11) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple10 ((triple10 triple13) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((((triple10 ((triple10 ((triple14) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is quiet.
("Harry" "is" "quiet" "+")
int4
Harry is quiet.
("Harry" "is" "quiet" "+")
triple13
((triple14) -> (rule8 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
triple14
Bob is rough.
("Bob" "is" "rough" "+")
((triple3 triple4) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
((triple7) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple5 triple8) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple8 triple9) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple5 ((triple5 ((triple9) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
((((((triple5 ((triple9) -> (rule8 % int4))) -> (rule3 % int3)) triple9) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
Fiona is quiet.
("Fiona" "is" "quiet" "+")
((triple9) -> (rule8 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
((triple14 triple10) -> (rule5 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
((triple10 triple13) -> (rule3 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((triple10 ((triple14) -> (rule8 % int2))) -> (rule3 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
((triple3 ((triple3 triple4) -> (rule3 % int2))) -> (rule2 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
((((triple3 ((triple3 triple4) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
((((((triple3 ((triple3 triple4) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Bob is green.
("Bob" "is" "green" "+")
((((((((triple3 ((triple3 triple4) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule7 % int2)) triple3) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is rough.
("Bob" "is" "rough" "+")
int5