Anne is blue. Anne is furry. Anne is red. Anne is smart. Anne is white. Anne is young. Harry is young. All young people are smart. All furry, blue people are white. Young people are white. Blue people are young. If someone is white and not blue then they are not red. Smart people are red. If someone is red and not white then they are green. If someone is red and young then they are green.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is furry.
("Anne" "is" "furry" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Anne is white.
("Anne" "is" "white" "+")
Anne is young.
("Anne" "is" "young" "+")
Harry is young.
("Harry" "is" "young" "+")
All young people are smart.
((("someone" "is" "young" "+")) -> ("someone" "is" "smart" "+"))
All furry, blue people are white.
((("someone" "is" "furry" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
Young people are white.
((("someone" "is" "young" "+")) -> ("someone" "is" "white" "+"))
Blue people are young.
((("someone" "is" "blue" "+")) -> ("someone" "is" "young" "+"))
If someone is white and not blue then they are not red.
((("someone" "is" "white" "+") ("someone" "is" "blue" "~")) -> ("someone" "is" "red" "-"))
Smart people are red.
((("someone" "is" "smart" "+")) -> ("someone" "is" "red" "+"))
If someone is red and not white then they are green.
((("someone" "is" "red" "+") ("someone" "is" "white" "~")) -> ("someone" "is" "green" "+"))
If someone is red and young then they are green.
((("someone" "is" "red" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "green" "+"))
Harry is young.
True
1
proof
[(triple7)]
("Harry" "is" "young" "+")
triple7
Anne is not white.
False
1
inv-proof
[(triple5 OR ((triple6) -> rule3) OR ((triple2 triple1) -> rule2) OR ((((triple1) -> rule4)) -> rule3))]
("Anne" "is" "white" "-")
triple5
((triple6) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((triple2 triple1) -> (rule2 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((((triple1) -> (rule4 % int2))) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Harry is smart.
True
2
proof
[(((triple7) -> rule1))]
("Harry" "is" "smart" "+")
((triple7) -> (rule1 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is not white.
False
2
inv-proof
[(((triple7) -> rule3))]
("Harry" "is" "white" "-")
((triple7) -> (rule3 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is red.
True
3
proof
[(((((triple7) -> rule1)) -> rule6))]
("Harry" "is" "red" "+")
((((triple7) -> (rule1 % int2))) -> (rule6 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is not red.
False
3
inv-proof
[(((((triple7) -> rule1)) -> rule6))]
("Harry" "is" "red" "-")
((((triple7) -> (rule1 % int2))) -> (rule6 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is green.
True
5
proof
[(((((((triple7) -> rule1)) -> rule6) triple7) -> rule8))]
("Harry" "is" "green" "+")
((((((triple7) -> (rule1 % int3))) -> (rule6 % int2)) triple7) -> (rule8 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
Harry is not green.
False
5
inv-proof
[(((((((triple7) -> rule1)) -> rule6) triple7) -> rule8))]
("Harry" "is" "green" "-")
((((((triple7) -> (rule1 % int3))) -> (rule6 % int2)) triple7) -> (rule8 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
Harry is not furry.
Unknown
inv-random
[@0: Harry is furry.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "furry" "-")
Harry is blue.
Unknown
random
[@0: Harry is blue.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "blue" "+")
@0: Anne is blue.[(triple1)] Anne is furry.[(triple2)] Anne is red.[(triple3 OR ((triple4) -> rule6) OR ((((triple6) -> rule1)) -> rule6) OR ((((((triple1) -> rule4)) -> rule1)) -> rule6))] Anne is smart.[(triple4 OR ((triple6) -> rule1) OR ((((triple1) -> rule4)) -> rule1))] Anne is white.[(triple5 OR ((triple6) -> rule3) OR ((triple2 triple1) -> rule2) OR ((((triple1) -> rule4)) -> rule3))] Anne is young.[(triple6 OR ((triple1) -> rule4))] Harry is young.[(triple7)] @1: Anne is green.[(((triple3 triple6) -> rule8) OR ((triple3 ((triple1) -> rule4)) -> rule8) OR ((((triple4) -> rule6) triple6) -> rule8) OR ((((triple4) -> rule6) ((triple1) -> rule4)) -> rule8) OR ((((((triple6) -> rule1)) -> rule6) triple6) -> rule8) OR ((((((triple6) -> rule1)) -> rule6) ((triple1) -> rule4)) -> rule8) OR ((((((((triple1) -> rule4)) -> rule1)) -> rule6) triple6) -> rule8) OR ((((((((triple1) -> rule4)) -> rule1)) -> rule6) ((triple1) -> rule4)) -> rule8))] Harry is smart.[(((triple7) -> rule1))] Harry is white.[(((triple7) -> rule3))] @2: Harry is red.[(((((triple7) -> rule1)) -> rule6))] @3: Harry is green.[(((((((triple7) -> rule1)) -> rule6) triple7) -> rule8))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
Anne is furry.
("Anne" "is" "furry" "+")
triple2
Anne is red.
("Anne" "is" "red" "+")
triple3
((triple4) -> (rule6 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
((((triple6) -> (rule1 % int2))) -> (rule6 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
((((((triple1) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
int3
Anne is smart.
("Anne" "is" "smart" "+")
triple4
((triple6) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
((((triple1) -> (rule4 % int2))) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Anne is white.
("Anne" "is" "white" "+")
triple5
((triple6) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((triple2 triple1) -> (rule2 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((((triple1) -> (rule4 % int2))) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
triple6
((triple1) -> (rule4 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
triple7
Anne is green.
("Anne" "is" "green" "+")
((triple3 triple6) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
((triple3 ((triple1) -> (rule4 % int2))) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
((((triple4) -> (rule6 % int2)) triple6) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
((((triple4) -> (rule6 % int3)) ((triple1) -> (rule4 % int2))) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
((((((triple6) -> (rule1 % int3))) -> (rule6 % int2)) triple6) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is smart.
("Anne" "is" "smart" "+")
int3
((((((triple6) -> (rule1 % int4))) -> (rule6 % int3)) ((triple1) -> (rule4 % int2))) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is smart.
("Anne" "is" "smart" "+")
int4
((((((((triple1) -> (rule4 % int4))) -> (rule1 % int3))) -> (rule6 % int2)) triple6) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is smart.
("Anne" "is" "smart" "+")
int3
Anne is young.
("Anne" "is" "young" "+")
int4
((((((((triple1) -> (rule4 % int4))) -> (rule1 % int3))) -> (rule6 % int2)) ((triple1) -> (rule4 % int4))) -> (rule8 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is smart.
("Anne" "is" "smart" "+")
int3
Anne is young.
("Anne" "is" "young" "+")
int4
Harry is smart.
("Harry" "is" "smart" "+")
((triple7) -> (rule1 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
((triple7) -> (rule3 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
((((triple7) -> (rule1 % int2))) -> (rule6 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
((((((triple7) -> (rule1 % int3))) -> (rule6 % int2)) triple7) -> (rule8 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3