Anne is furry. Anne is kind. Anne is nice. Anne is quiet. Anne is rough. Anne is white. Bob is kind. Bob is nice. Bob is quiet. Fiona is blue. Fiona is furry. Fiona is kind. Fiona is nice. Fiona is quiet. Fiona is rough. Fiona is white. If someone is nice then they are furry. Blue people are quiet. If someone is furry then they are rough. If Bob is nice then Bob is furry. If someone is nice then they are kind. Nice people are kind.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is quiet.
("Anne" "is" "quiet" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Anne is white.
("Anne" "is" "white" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is white.
("Fiona" "is" "white" "+")
If someone is nice then they are furry.
((("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "+"))
Blue people are quiet.
((("someone" "is" "blue" "+")) -> ("someone" "is" "quiet" "+"))
If someone is furry then they are rough.
((("someone" "is" "furry" "+")) -> ("someone" "is" "rough" "+"))
If Bob is nice then Bob is furry.
((("Bob" "is" "nice" "+")) -> ("Bob" "is" "furry" "+"))
If someone is nice then they are kind.
((("someone" "is" "nice" "+")) -> ("someone" "is" "kind" "+"))
Nice people are kind.
((("someone" "is" "nice" "+")) -> ("someone" "is" "kind" "+"))
Fiona is rough.
True
1
proof
[(triple15 OR ((triple11) -> rule3) OR ((((triple13) -> rule1)) -> rule3))]
("Fiona" "is" "rough" "+")
triple15
((triple11) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((triple13) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Anne is not kind.
False
1
inv-proof
[(triple2 OR ((triple3) -> rule5) OR ((triple3) -> rule6))]
("Anne" "is" "kind" "-")
triple2
((triple3) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((triple3) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Bob is furry.
True
2
proof
[(((triple8) -> rule1) OR ((triple8) -> rule4))]
("Bob" "is" "furry" "+")
((triple8) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple8) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is not furry.
False
2
inv-proof
[(((triple8) -> rule1) OR ((triple8) -> rule4))]
("Bob" "is" "furry" "-")
((triple8) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple8) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
True
3
proof
[(((((triple8) -> rule1)) -> rule3) OR ((((triple8) -> rule4)) -> rule3))]
("Bob" "is" "rough" "+")
((((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple8) -> (rule4 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is not rough.
False
3
inv-proof
[(((((triple8) -> rule1)) -> rule3) OR ((((triple8) -> rule4)) -> rule3))]
("Bob" "is" "rough" "-")
((((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple8) -> (rule4 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is not blue.
Unknown
inv-random
[@0: Bob is blue.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "blue" "-")
Anne is blue.
Unknown
random
[@0: Anne is blue.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "blue" "+")
@0: Anne is furry.[(triple1 OR ((triple3) -> rule1))] Anne is kind.[(triple2 OR ((triple3) -> rule5) OR ((triple3) -> rule6))] Anne is nice.[(triple3)] Anne is quiet.[(triple4)] Anne is rough.[(triple5 OR ((triple1) -> rule3) OR ((((triple3) -> rule1)) -> rule3))] Anne is white.[(triple6)] Bob is kind.[(triple7 OR ((triple8) -> rule5) OR ((triple8) -> rule6))] Bob is nice.[(triple8)] Bob is quiet.[(triple9)] Fiona is blue.[(triple10)] Fiona is furry.[(triple11 OR ((triple13) -> rule1))] Fiona is kind.[(triple12 OR ((triple13) -> rule5) OR ((triple13) -> rule6))] Fiona is nice.[(triple13)] Fiona is quiet.[(triple14 OR ((triple10) -> rule2))] Fiona is rough.[(triple15 OR ((triple11) -> rule3) OR ((((triple13) -> rule1)) -> rule3))] Fiona is white.[(triple16)] @1: Bob is furry.[(((triple8) -> rule1) OR ((triple8) -> rule4))] @2: Bob is rough.[(((((triple8) -> rule1)) -> rule3) OR ((((triple8) -> rule4)) -> rule3))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
((triple3) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
triple2
((triple3) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((triple3) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
triple3
Anne is quiet.
("Anne" "is" "quiet" "+")
triple4
Anne is rough.
("Anne" "is" "rough" "+")
triple5
((triple1) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is white.
("Anne" "is" "white" "+")
triple6
Bob is kind.
("Bob" "is" "kind" "+")
triple7
((triple8) -> (rule5 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((triple8) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
triple8
Bob is quiet.
("Bob" "is" "quiet" "+")
triple9
Fiona is blue.
("Fiona" "is" "blue" "+")
triple10
Fiona is furry.
("Fiona" "is" "furry" "+")
triple11
((triple13) -> (rule1 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple12
((triple13) -> (rule5 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple13) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
triple13
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple14
((triple10) -> (rule2 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
triple15
((triple11) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((triple13) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
triple16
Bob is furry.
("Bob" "is" "furry" "+")
((triple8) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple8) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
((((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple8) -> (rule4 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2