Charlie is round. Dave is blue. Dave is red. Dave is round. Dave is smart. Erin is round. Gary is round. If something is furry and kind then it is red. All kind things are blue. All round things are kind. If Gary is smart then Gary is red. If something is red then it is round. If Erin is blue and Erin is round then Erin is big. Furry things are big. All red things are smart.
Charlie is round.
("Charlie" "is" "round" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is round.
("Dave" "is" "round" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Erin is round.
("Erin" "is" "round" "+")
Gary is round.
("Gary" "is" "round" "+")
If something is furry and kind then it is red.
((("something" "is" "furry" "+") ("something" "is" "kind" "+")) -> ("something" "is" "red" "+"))
All kind things are blue.
((("something" "is" "kind" "+")) -> ("something" "is" "blue" "+"))
All round things are kind.
((("something" "is" "round" "+")) -> ("something" "is" "kind" "+"))
If Gary is smart then Gary is red.
((("Gary" "is" "smart" "+")) -> ("Gary" "is" "red" "+"))
If something is red then it is round.
((("something" "is" "red" "+")) -> ("something" "is" "round" "+"))
If Erin is blue and Erin is round then Erin is big.
((("Erin" "is" "blue" "+") ("Erin" "is" "round" "+")) -> ("Erin" "is" "big" "+"))
Furry things are big.
((("something" "is" "furry" "+")) -> ("something" "is" "big" "+"))
All red things are smart.
((("something" "is" "red" "+")) -> ("something" "is" "smart" "+"))
Dave is round.
True
1
proof
[(triple4 OR ((triple3) -> rule5))]
("Dave" "is" "round" "+")
triple4
((triple3) -> (rule5 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is not red.
False
1
inv-proof
[(triple3)]
("Dave" "is" "red" "-")
triple3
Charlie is kind.
True
2
proof
[(((triple1) -> rule3))]
("Charlie" "is" "kind" "+")
((triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Dave is not kind.
False
2
inv-proof
[(((triple4) -> rule3) OR ((((triple3) -> rule5)) -> rule3))]
("Dave" "is" "kind" "-")
((triple4) -> (rule3 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((((triple3) -> (rule5 % int2))) -> (rule3 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Gary is blue.
True
3
proof
[(((((triple7) -> rule3)) -> rule2))]
("Gary" "is" "blue" "+")
((((triple7) -> (rule3 % int2))) -> (rule2 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Erin is not blue.
False
3
inv-proof
[(((((triple6) -> rule3)) -> rule2))]
("Erin" "is" "blue" "-")
((((triple6) -> (rule3 % int2))) -> (rule2 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Erin is big.
True
5
proof
[(((((((triple6) -> rule3)) -> rule2) triple6) -> rule6))]
("Erin" "is" "big" "+")
((((((triple6) -> (rule3 % int3))) -> (rule2 % int2)) triple6) -> (rule6 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Erin is not big.
False
5
inv-proof
[(((((((triple6) -> rule3)) -> rule2) triple6) -> rule6))]
("Erin" "is" "big" "-")
((((((triple6) -> (rule3 % int3))) -> (rule2 % int2)) triple6) -> (rule6 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Charlie is not smart.
Unknown
inv-rconc
[@2: Charlie is smart.[CWA. Example of deepest failure = (rule8 <- rule1 <- FAIL)]]
("Charlie" "is" "smart" "-")
Charlie is big.
Unknown
rconc
[@1: Charlie is big.[CWA. Example of deepest failure = (rule7 <- FAIL)]]
("Charlie" "is" "big" "+")
Gary is not big.
Unknown
inv-rconc
[@1: Gary is big.[CWA. Example of deepest failure = (rule7 <- FAIL)]]
("Gary" "is" "big" "-")
Charlie is red.
Unknown
rconc
[@1: Charlie is red.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Charlie" "is" "red" "+")
Gary is not furry.
Unknown
inv-random
[@0: Gary is furry.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "furry" "-")
Charlie is furry.
Unknown
random
[@0: Charlie is furry.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "furry" "+")
Dave is not furry.
Unknown
inv-random
[@0: Dave is furry.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "furry" "-")
Erin is furry.
Unknown
random
[@0: Erin is furry.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "furry" "+")
@0: Charlie is round.[(triple1)] Dave is blue.[(triple2 OR ((((triple4) -> rule3)) -> rule2) OR ((((((triple3) -> rule5)) -> rule3)) -> rule2))] Dave is red.[(triple3)] Dave is round.[(triple4 OR ((triple3) -> rule5))] Dave is smart.[(triple5 OR ((triple3) -> rule8))] Erin is round.[(triple6)] Gary is round.[(triple7)] @1: Charlie is kind.[(((triple1) -> rule3))] Dave is kind.[(((triple4) -> rule3) OR ((((triple3) -> rule5)) -> rule3))] Erin is kind.[(((triple6) -> rule3))] Gary is kind.[(((triple7) -> rule3))] @2: Charlie is blue.[(((((triple1) -> rule3)) -> rule2))] Erin is blue.[(((((triple6) -> rule3)) -> rule2))] Gary is blue.[(((((triple7) -> rule3)) -> rule2))] @3: Erin is big.[(((((((triple6) -> rule3)) -> rule2) triple6) -> rule6))]
Charlie is round.
("Charlie" "is" "round" "+")
triple1
Dave is blue.
("Dave" "is" "blue" "+")
triple2
((((triple4) -> (rule3 % int2))) -> (rule2 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
((((((triple3) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule2 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
triple3
Dave is round.
("Dave" "is" "round" "+")
triple4
((triple3) -> (rule5 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
triple5
((triple3) -> (rule8 % int1))
Dave is smart.
("Dave" "is" "smart" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
triple6
Gary is round.
("Gary" "is" "round" "+")
triple7
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
((triple4) -> (rule3 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((((triple3) -> (rule5 % int2))) -> (rule3 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
((triple6) -> (rule3 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
((triple7) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
((((triple1) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Erin is blue.
("Erin" "is" "blue" "+")
((((triple6) -> (rule3 % int2))) -> (rule2 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
((((triple7) -> (rule3 % int2))) -> (rule2 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Erin is big.
("Erin" "is" "big" "+")
((((((triple6) -> (rule3 % int3))) -> (rule2 % int2)) triple6) -> (rule6 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3