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