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