Anne is green. Anne is not kind. Dave is green. Dave is kind. Dave is red. Harry is not nice. Harry is red. If someone is red then they are big. All round people are big. If Dave is big then Dave is green. If Harry is kind and Harry is round then Harry is not green. If someone is kind and not furry then they are round. Green people are round. If someone is round then they are nice. If someone is big then they are red.
Anne is green.
("Anne" "is" "green" "+")
Anne is not kind.
("Anne" "is" "kind" "-")
Dave is green.
("Dave" "is" "green" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is red.
("Dave" "is" "red" "+")
Harry is not nice.
("Harry" "is" "nice" "-")
Harry is red.
("Harry" "is" "red" "+")
If someone is red then they are big.
((("someone" "is" "red" "+")) -> ("someone" "is" "big" "+"))
All round people are big.
((("someone" "is" "round" "+")) -> ("someone" "is" "big" "+"))
If Dave is big then Dave is green.
((("Dave" "is" "big" "+")) -> ("Dave" "is" "green" "+"))
If Harry is kind and Harry is round then Harry is not green.
((("Harry" "is" "kind" "+") ("Harry" "is" "round" "+")) -> ("Harry" "is" "green" "-"))
If someone is kind and not furry then they are round.
((("someone" "is" "kind" "+") ("someone" "is" "furry" "~")) -> ("someone" "is" "round" "+"))
Green people are round.
((("someone" "is" "green" "+")) -> ("someone" "is" "round" "+"))
If someone is round then they are nice.
((("someone" "is" "round" "+")) -> ("someone" "is" "nice" "+"))
If someone is big then they are red.
((("someone" "is" "big" "+")) -> ("someone" "is" "red" "+"))
Dave is green.
True
1
proof
[(triple3 OR ((((triple5) -> rule1)) -> rule3))]
("Dave" "is" "green" "+")
triple3
((((triple5) -> (rule1 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is not green.
False
1
inv-proof
[(triple3 OR ((((triple5) -> rule1)) -> rule3))]
("Dave" "is" "green" "-")
triple3
((((triple5) -> (rule1 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is round.
True
2
proof
[(((triple3) -> rule6) OR ((((((triple5) -> rule1)) -> rule3)) -> rule6))]
("Dave" "is" "round" "+")
((triple3) -> (rule6 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((((triple5) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
Dave is not round.
False
2
inv-proof
[(((triple3) -> rule6) OR ((((((triple5) -> rule1)) -> rule3)) -> rule6))]
("Dave" "is" "round" "-")
((triple3) -> (rule6 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((((triple5) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
Dave is nice.
True
3
proof
[(((((triple3) -> rule6)) -> rule7) OR ((((((((triple5) -> rule1)) -> rule3)) -> rule6)) -> rule7))]
("Dave" "is" "nice" "+")
((((triple3) -> (rule6 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((((triple5) -> (rule1 % int4))) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
Dave is not nice.
False
3
inv-proof
[(((((triple3) -> rule6)) -> rule7) OR ((((((((triple5) -> rule1)) -> rule3)) -> rule6)) -> rule7))]
("Dave" "is" "nice" "-")
((((triple3) -> (rule6 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((((triple5) -> (rule1 % int4))) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
Anne is red.
True
4
proof
[(((((((triple1) -> rule6)) -> rule2)) -> rule8))]
("Anne" "is" "red" "+")
((((((triple1) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is round.
("Anne" "is" "round" "+")
int3
Anne is not red.
False
4
inv-proof
[(((((((triple1) -> rule6)) -> rule2)) -> rule8))]
("Anne" "is" "red" "-")
((((((triple1) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is round.
("Anne" "is" "round" "+")
int3
Harry is not round.
Unknown
inv-rconc
[@1: Harry is round.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Harry" "is" "round" "-")
Dave is furry.
Unknown
random
[@0: Dave is furry.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "furry" "+")
Harry is not kind.
Unknown
inv-random
[@0: Harry is kind.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "kind" "-")
Harry is furry.
Unknown
random
[@0: Harry is furry.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "furry" "+")
Harry is not green.
Unknown
inv-random
[@0: Harry is green.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "green" "-")
Anne is furry.
Unknown
random
[@0: Anne is furry.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "furry" "+")
@0: Anne is green.[(triple1)] Anne is not kind.[(triple2)] Dave is green.[(triple3 OR ((((triple5) -> rule1)) -> rule3))] Dave is kind.[(triple4)] Dave is red.[(triple5 OR ((((((triple3) -> rule6)) -> rule2)) -> rule8))] Harry is not nice.[(triple6)] Harry is red.[(triple7)] @1: Anne is round.[(((triple1) -> rule6))] Dave is big.[(((triple5) -> rule1) OR ((((triple3) -> rule6)) -> rule2))] Dave is round.[(((triple3) -> rule6) OR ((((((triple5) -> rule1)) -> rule3)) -> rule6))] Harry is big.[(((triple7) -> rule1))] @2: Anne is big.[(((((triple1) -> rule6)) -> rule2))] Anne is nice.[(((((triple1) -> rule6)) -> rule7))] Dave is nice.[(((((triple3) -> rule6)) -> rule7) OR ((((((((triple5) -> rule1)) -> rule3)) -> rule6)) -> rule7))] @3: Anne is red.[(((((((triple1) -> rule6)) -> rule2)) -> rule8))]
Anne is green.
("Anne" "is" "green" "+")
triple1
Anne is not kind.
("Anne" "is" "kind" "-")
triple2
Dave is green.
("Dave" "is" "green" "+")
triple3
((((triple5) -> (rule1 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
triple4
Dave is red.
("Dave" "is" "red" "+")
triple5
((((((triple3) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
Harry is not nice.
("Harry" "is" "nice" "-")
triple6
Harry is red.
("Harry" "is" "red" "+")
triple7
Anne is round.
("Anne" "is" "round" "+")
((triple1) -> (rule6 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
((triple5) -> (rule1 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
((((triple3) -> (rule6 % int2))) -> (rule2 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
((triple3) -> (rule6 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((((triple5) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
Harry is big.
("Harry" "is" "big" "+")
((triple7) -> (rule1 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
((((triple1) -> (rule6 % int2))) -> (rule2 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
((((triple1) -> (rule6 % int2))) -> (rule7 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
((((triple3) -> (rule6 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((((triple5) -> (rule1 % int4))) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
Anne is red.
("Anne" "is" "red" "+")
((((((triple1) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is round.
("Anne" "is" "round" "+")
int3