Anne is blue. Anne is kind. Anne is red. Anne is rough. Anne is smart. Anne is young. Fiona is blue. Fiona is furry. Fiona is kind. Fiona is red. Fiona is rough. Fiona is smart. Fiona is young. Gary is blue. Gary is red. Gary is rough. Kind, furry people are young. If Gary is rough then Gary is kind. All smart people are rough. Red, rough people are kind. If Gary is young and Gary is kind then Gary is blue. Rough, red people are kind. Blue people are young. If someone is red then they are young.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Anne is young.
("Anne" "is" "young" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is red.
("Gary" "is" "red" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Kind, furry people are young.
((("someone" "is" "kind" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "young" "+"))
If Gary is rough then Gary is kind.
((("Gary" "is" "rough" "+")) -> ("Gary" "is" "kind" "+"))
All smart people are rough.
((("someone" "is" "smart" "+")) -> ("someone" "is" "rough" "+"))
Red, rough people are kind.
((("someone" "is" "red" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "kind" "+"))
If Gary is young and Gary is kind then Gary is blue.
((("Gary" "is" "young" "+") ("Gary" "is" "kind" "+")) -> ("Gary" "is" "blue" "+"))
Rough, red people are kind.
((("someone" "is" "rough" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "kind" "+"))
Blue people are young.
((("someone" "is" "blue" "+")) -> ("someone" "is" "young" "+"))
If someone is red then they are young.
((("someone" "is" "red" "+")) -> ("someone" "is" "young" "+"))
Anne is blue.
True
1
proof
[(triple1)]
("Anne" "is" "blue" "+")
triple1
Fiona is not rough.
False
1
inv-proof
[(triple11 OR ((triple12) -> rule3))]
("Fiona" "is" "rough" "-")
triple11
((triple12) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Gary is young.
True
2
proof
[(((triple14) -> rule7) OR ((triple15) -> rule8))]
("Gary" "is" "young" "+")
((triple14) -> (rule7 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
((triple15) -> (rule8 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is not kind.
False
2
inv-proof
[(((triple16) -> rule2) OR ((triple15 triple16) -> rule4) OR ((triple16 triple15) -> rule6))]
("Gary" "is" "kind" "-")
((triple16) -> (rule2 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((triple15 triple16) -> (rule4 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((triple16 triple15) -> (rule6 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is not furry.
Unknown
inv-random
[@0: Gary is furry.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "furry" "-")
Anne is furry.
Unknown
random
[@0: Anne is furry.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "furry" "+")
@0: Anne is blue.[(triple1)] Anne is kind.[(triple2 OR ((triple3 triple4) -> rule4) OR ((triple4 triple3) -> rule6) OR ((triple3 ((triple5) -> rule3)) -> rule4) OR ((((triple5) -> rule3) triple3) -> rule6))] Anne is red.[(triple3)] Anne is rough.[(triple4 OR ((triple5) -> rule3))] Anne is smart.[(triple5)] Anne is young.[(triple6 OR ((triple1) -> rule7) OR ((triple3) -> rule8))] Fiona is blue.[(triple7)] Fiona is furry.[(triple8)] Fiona is kind.[(triple9 OR ((triple10 triple11) -> rule4) OR ((triple11 triple10) -> rule6) OR ((triple10 ((triple12) -> rule3)) -> rule4) OR ((((triple12) -> rule3) triple10) -> rule6))] Fiona is red.[(triple10)] Fiona is rough.[(triple11 OR ((triple12) -> rule3))] Fiona is smart.[(triple12)] Fiona is young.[(triple13 OR ((triple10) -> rule8) OR ((triple7) -> rule7) OR ((triple9 triple8) -> rule1) OR ((((triple10 triple11) -> rule4) triple8) -> rule1) OR ((((triple11 triple10) -> rule6) triple8) -> rule1) OR ((((triple10 ((triple12) -> rule3)) -> rule4) triple8) -> rule1) OR ((((((triple12) -> rule3) triple10) -> rule6) triple8) -> rule1))] Gary is blue.[(triple14 OR ((((triple15) -> rule8) ((triple16) -> rule2)) -> rule5) OR ((((triple15) -> rule8) ((triple15 triple16) -> rule4)) -> rule5) OR ((((triple15) -> rule8) ((triple16 triple15) -> rule6)) -> rule5))] Gary is red.[(triple15)] Gary is rough.[(triple16)] @1: Gary is kind.[(((triple16) -> rule2) OR ((triple15 triple16) -> rule4) OR ((triple16 triple15) -> rule6))] Gary is young.[(((triple14) -> rule7) OR ((triple15) -> rule8))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
Anne is kind.
("Anne" "is" "kind" "+")
triple2
((triple3 triple4) -> (rule4 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((triple4 triple3) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((triple3 ((triple5) -> (rule3 % int2))) -> (rule4 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((((triple5) -> (rule3 % int2)) triple3) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
triple3
Anne is rough.
("Anne" "is" "rough" "+")
triple4
((triple5) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
triple5
Anne is young.
("Anne" "is" "young" "+")
triple6
((triple1) -> (rule7 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
((triple3) -> (rule8 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
Fiona is furry.
("Fiona" "is" "furry" "+")
triple8
Fiona is kind.
("Fiona" "is" "kind" "+")
triple9
((triple10 triple11) -> (rule4 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple11 triple10) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple10 ((triple12) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple12) -> (rule3 % int2)) triple10) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
triple10
Fiona is rough.
("Fiona" "is" "rough" "+")
triple11
((triple12) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is smart.
("Fiona" "is" "smart" "+")
triple12
Fiona is young.
("Fiona" "is" "young" "+")
triple13
((triple10) -> (rule8 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((triple7) -> (rule7 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((triple9 triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((((triple10 triple11) -> (rule4 % int2)) triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple11 triple10) -> (rule6 % int2)) triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple10 ((triple12) -> (rule3 % int3))) -> (rule4 % int2)) triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple12) -> (rule3 % int3)) triple10) -> (rule6 % int2)) triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
triple14
((((triple15) -> (rule8 % int3)) ((triple16) -> (rule2 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is young.
("Gary" "is" "young" "+")
int3
((((triple15) -> (rule8 % int3)) ((triple15 triple16) -> (rule4 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is young.
("Gary" "is" "young" "+")
int3
((((triple15) -> (rule8 % int3)) ((triple16 triple15) -> (rule6 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is young.
("Gary" "is" "young" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
triple15
Gary is rough.
("Gary" "is" "rough" "+")
triple16
Gary is kind.
("Gary" "is" "kind" "+")
((triple16) -> (rule2 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((triple15 triple16) -> (rule4 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((triple16 triple15) -> (rule6 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is young.
("Gary" "is" "young" "+")
((triple14) -> (rule7 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
((triple15) -> (rule8 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1