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