Anne is white. Charlie is furry. Charlie is kind. Charlie is young. Dave is green. Dave is quiet. Dave is white. Fiona is green. Fiona is round. Fiona is young. If something is furry and green then it is kind. All furry things are round. All kind, green things are round. If something is green and young then it is kind. All green things are furry. If something is young and white then it is kind.
Anne is white.
("Anne" "is" "white" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Dave is white.
("Dave" "is" "white" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is young.
("Fiona" "is" "young" "+")
If something is furry and green then it is kind.
((("something" "is" "furry" "+") ("something" "is" "green" "+")) -> ("something" "is" "kind" "+"))
All furry things are round.
((("something" "is" "furry" "+")) -> ("something" "is" "round" "+"))
All kind, green things are round.
((("something" "is" "kind" "+") ("something" "is" "green" "+")) -> ("something" "is" "round" "+"))
If something is green and young then it is kind.
((("something" "is" "green" "+") ("something" "is" "young" "+")) -> ("something" "is" "kind" "+"))
All green things are furry.
((("something" "is" "green" "+")) -> ("something" "is" "furry" "+"))
If something is young and white then it is kind.
((("something" "is" "young" "+") ("something" "is" "white" "+")) -> ("something" "is" "kind" "+"))
Charlie is kind.
True
1
proof
[(triple3)]
("Charlie" "is" "kind" "+")
triple3
Charlie is not kind.
False
1
inv-proof
[(triple3)]
("Charlie" "is" "kind" "-")
triple3
Fiona is kind.
True
3
proof
[(((triple8 triple10) -> rule4) OR ((((triple8) -> rule5) triple8) -> rule1))]
("Fiona" "is" "kind" "+")
((triple8 triple10) -> (rule4 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((((triple8) -> (rule5 % int2)) triple8) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is not kind.
False
3
inv-proof
[(((triple8 triple10) -> rule4) OR ((((triple8) -> rule5) triple8) -> rule1))]
("Fiona" "is" "kind" "-")
((triple8 triple10) -> (rule4 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((((triple8) -> (rule5 % int2)) triple8) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Dave is kind.
True
4
proof
[(((((triple5) -> rule5) triple5) -> rule1))]
("Dave" "is" "kind" "+")
((((triple5) -> (rule5 % int2)) triple5) -> (rule1 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is not kind.
False
4
inv-proof
[(((((triple5) -> rule5) triple5) -> rule1))]
("Dave" "is" "kind" "-")
((((triple5) -> (rule5 % int2)) triple5) -> (rule1 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Anne is not round.
Unknown
inv-rconc
[@2: Anne is round.[CWA. Example of deepest failure = (rule2 <- rule5 <- FAIL)]]
("Anne" "is" "round" "-")
Anne is furry.
Unknown
rconc
[@1: Anne is furry.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Anne" "is" "furry" "+")
Anne is not kind.
Unknown
inv-rconc
[@1: Anne is kind.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Anne" "is" "kind" "-")
Fiona is white.
Unknown
random
[@0: Fiona is white.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "white" "+")
Fiona is not quiet.
Unknown
inv-random
[@0: Fiona is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "quiet" "-")
Charlie is green.
Unknown
random
[@0: Charlie is green.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "green" "+")
@0: Anne is white.[(triple1)] Charlie is furry.[(triple2)] Charlie is kind.[(triple3)] Charlie is young.[(triple4)] Dave is green.[(triple5)] Dave is quiet.[(triple6)] Dave is white.[(triple7)] Fiona is green.[(triple8)] Fiona is round.[(triple9 OR ((((triple8) -> rule5)) -> rule2) OR ((((triple8 triple10) -> rule4) triple8) -> rule3) OR ((((((triple8) -> rule5) triple8) -> rule1) triple8) -> rule3))] Fiona is young.[(triple10)] @1: Charlie is round.[(((triple2) -> rule2))] Dave is furry.[(((triple5) -> rule5))] Fiona is furry.[(((triple8) -> rule5))] Fiona is kind.[(((triple8 triple10) -> rule4) OR ((((triple8) -> rule5) triple8) -> rule1))] @2: Dave is kind.[(((((triple5) -> rule5) triple5) -> rule1))] Dave is round.[(((((triple5) -> rule5)) -> rule2) OR ((((((triple5) -> rule5) triple5) -> rule1) triple5) -> rule3))]
Anne is white.
("Anne" "is" "white" "+")
triple1
Charlie is furry.
("Charlie" "is" "furry" "+")
triple2
Charlie is kind.
("Charlie" "is" "kind" "+")
triple3
Charlie is young.
("Charlie" "is" "young" "+")
triple4
Dave is green.
("Dave" "is" "green" "+")
triple5
Dave is quiet.
("Dave" "is" "quiet" "+")
triple6
Dave is white.
("Dave" "is" "white" "+")
triple7
Fiona is green.
("Fiona" "is" "green" "+")
triple8
Fiona is round.
("Fiona" "is" "round" "+")
triple9
((((triple8) -> (rule5 % int2))) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
((((triple8 triple10) -> (rule4 % int2)) triple8) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((((triple8) -> (rule5 % int3)) triple8) -> (rule1 % int2)) triple8) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
triple10
Charlie is round.
("Charlie" "is" "round" "+")
((triple2) -> (rule2 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
((triple5) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
((triple8) -> (rule5 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
((triple8 triple10) -> (rule4 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((((triple8) -> (rule5 % int2)) triple8) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
((((triple5) -> (rule5 % int2)) triple5) -> (rule1 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
((((triple5) -> (rule5 % int2))) -> (rule2 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
((((((triple5) -> (rule5 % int3)) triple5) -> (rule1 % int2)) triple5) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3