Charlie is blue. Charlie is cold. Charlie is furry. Charlie is kind. Erin is cold. Erin is furry. Fiona is blue. Fiona is cold. Fiona is furry. Fiona is green. Fiona is kind. Fiona is round. Fiona is young. Gary is blue. Gary is furry. Gary is kind. Green things are round. If something is kind and green then it is round. All cold things are kind. Cold things are green. If Erin is young and Erin is round then Erin is blue. Round things are furry. If something is young then it is blue. If Gary is green then Gary is furry.
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Erin is cold.
("Erin" "is" "cold" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Green things are round.
((("something" "is" "green" "+")) -> ("something" "is" "round" "+"))
If something is kind and green then it is round.
((("something" "is" "kind" "+") ("something" "is" "green" "+")) -> ("something" "is" "round" "+"))
All cold things are kind.
((("something" "is" "cold" "+")) -> ("something" "is" "kind" "+"))
Cold things are green.
((("something" "is" "cold" "+")) -> ("something" "is" "green" "+"))
If Erin is young and Erin is round then Erin is blue.
((("Erin" "is" "young" "+") ("Erin" "is" "round" "+")) -> ("Erin" "is" "blue" "+"))
Round things are furry.
((("something" "is" "round" "+")) -> ("something" "is" "furry" "+"))
If something is young then it is blue.
((("something" "is" "young" "+")) -> ("something" "is" "blue" "+"))
If Gary is green then Gary is furry.
((("Gary" "is" "green" "+")) -> ("Gary" "is" "furry" "+"))
Fiona is blue.
True
1
proof
[(triple7 OR ((triple13) -> rule7))]
("Fiona" "is" "blue" "+")
triple7
((triple13) -> (rule7 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is not furry.
False
1
inv-proof
[(triple9 OR ((triple12) -> rule6) OR ((((triple10) -> rule1)) -> rule6) OR ((((triple11 triple10) -> rule2)) -> rule6) OR ((((((triple8) -> rule4)) -> rule1)) -> rule6) OR ((((triple11 ((triple8) -> rule4)) -> rule2)) -> rule6) OR ((((((triple8) -> rule3) triple10) -> rule2)) -> rule6) OR ((((((triple8) -> rule3) ((triple8) -> rule4)) -> rule2)) -> rule6))]
("Fiona" "is" "furry" "-")
triple9
((triple12) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((triple11 triple10) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((((triple8) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
((((triple11 ((triple8) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
((((((triple8) -> (rule3 % int3)) triple10) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
((((((triple8) -> (rule3 % int4)) ((triple8) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
Fiona is kind.
("Fiona" "is" "kind" "+")
int4
Erin is green.
True
2
proof
[(((triple5) -> rule4))]
("Erin" "is" "green" "+")
((triple5) -> (rule4 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Charlie is not green.
False
2
inv-proof
[(((triple2) -> rule4))]
("Charlie" "is" "green" "-")
((triple2) -> (rule4 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Erin is round.
True
3
proof
[(((((triple5) -> rule4)) -> rule1) OR ((((triple5) -> rule3) ((triple5) -> rule4)) -> rule2))]
("Erin" "is" "round" "+")
((((triple5) -> (rule4 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
((((triple5) -> (rule3 % int3)) ((triple5) -> (rule4 % int2))) -> (rule2 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Erin is not round.
False
3
inv-proof
[(((((triple5) -> rule4)) -> rule1) OR ((((triple5) -> rule3) ((triple5) -> rule4)) -> rule2))]
("Erin" "is" "round" "-")
((((triple5) -> (rule4 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
((((triple5) -> (rule3 % int3)) ((triple5) -> (rule4 % int2))) -> (rule2 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Erin is not blue.
Unknown
inv-rconc
[@1: Erin is blue.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Erin" "is" "blue" "-")
Gary is round.
Unknown
rconc
[@2: Gary is round.[CWA. Example of deepest failure = (rule1 <- rule4 <- FAIL)]]
("Gary" "is" "round" "+")
Gary is not green.
Unknown
inv-rconc
[@1: Gary is green.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Gary" "is" "green" "-")
Erin is young.
Unknown
random
[@0: Erin is young.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "young" "+")
Gary is not cold.
Unknown
inv-random
[@0: Gary is cold.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "cold" "-")
Gary is young.
Unknown
random
[@0: Gary is young.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "young" "+")
@0: Charlie is blue.[(triple1)] Charlie is cold.[(triple2)] Charlie is furry.[(triple3 OR ((((((triple2) -> rule4)) -> rule1)) -> rule6) OR ((((triple4 ((triple2) -> rule4)) -> rule2)) -> rule6) OR ((((((triple2) -> rule3) ((triple2) -> rule4)) -> rule2)) -> rule6))] Charlie is kind.[(triple4 OR ((triple2) -> rule3))] Erin is cold.[(triple5)] Erin is furry.[(triple6 OR ((((((triple5) -> rule4)) -> rule1)) -> rule6) OR ((((((triple5) -> rule3) ((triple5) -> rule4)) -> rule2)) -> rule6))] Fiona is blue.[(triple7 OR ((triple13) -> rule7))] Fiona is cold.[(triple8)] Fiona is furry.[(triple9 OR ((triple12) -> rule6) OR ((((triple10) -> rule1)) -> rule6) OR ((((triple11 triple10) -> rule2)) -> rule6) OR ((((((triple8) -> rule4)) -> rule1)) -> rule6) OR ((((triple11 ((triple8) -> rule4)) -> rule2)) -> rule6) OR ((((((triple8) -> rule3) triple10) -> rule2)) -> rule6) OR ((((((triple8) -> rule3) ((triple8) -> rule4)) -> rule2)) -> rule6))] Fiona is green.[(triple10 OR ((triple8) -> rule4))] Fiona is kind.[(triple11 OR ((triple8) -> rule3))] Fiona is round.[(triple12 OR ((triple10) -> rule1) OR ((triple11 triple10) -> rule2) OR ((((triple8) -> rule4)) -> rule1) OR ((triple11 ((triple8) -> rule4)) -> rule2) OR ((((triple8) -> rule3) triple10) -> rule2) OR ((((triple8) -> rule3) ((triple8) -> rule4)) -> rule2))] Fiona is young.[(triple13)] Gary is blue.[(triple14)] Gary is furry.[(triple15)] Gary is kind.[(triple16)] @1: Charlie is green.[(((triple2) -> rule4))] Erin is green.[(((triple5) -> rule4))] Erin is kind.[(((triple5) -> rule3))] @2: Charlie is round.[(((((triple2) -> rule4)) -> rule1) OR ((triple4 ((triple2) -> rule4)) -> rule2) OR ((((triple2) -> rule3) ((triple2) -> rule4)) -> rule2))] Erin is round.[(((((triple5) -> rule4)) -> rule1) OR ((((triple5) -> rule3) ((triple5) -> rule4)) -> rule2))]
Charlie is blue.
("Charlie" "is" "blue" "+")
triple1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple2
Charlie is furry.
("Charlie" "is" "furry" "+")
triple3
((((((triple2) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
int3
((((triple4 ((triple2) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
int3
((((((triple2) -> (rule3 % int4)) ((triple2) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
triple4
((triple2) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
triple5
Erin is furry.
("Erin" "is" "furry" "+")
triple6
((((((triple5) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Erin is green.
("Erin" "is" "green" "+")
int3
((((((triple5) -> (rule3 % int4)) ((triple5) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Erin is green.
("Erin" "is" "green" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
((triple13) -> (rule7 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
triple8
Fiona is furry.
("Fiona" "is" "furry" "+")
triple9
((triple12) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((triple11 triple10) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((((triple8) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
((((triple11 ((triple8) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
((((((triple8) -> (rule3 % int3)) triple10) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
((((((triple8) -> (rule3 % int4)) ((triple8) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
Fiona is kind.
("Fiona" "is" "kind" "+")
int4
Fiona is green.
("Fiona" "is" "green" "+")
triple10
((triple8) -> (rule4 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple11
((triple8) -> (rule3 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
triple12
((triple10) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple11 triple10) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple8) -> (rule4 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
((triple11 ((triple8) -> (rule4 % int2))) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
((((triple8) -> (rule3 % int2)) triple10) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((triple8) -> (rule3 % int3)) ((triple8) -> (rule4 % int2))) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
triple13
Gary is blue.
("Gary" "is" "blue" "+")
triple14
Gary is furry.
("Gary" "is" "furry" "+")
triple15
Gary is kind.
("Gary" "is" "kind" "+")
triple16
Charlie is green.
("Charlie" "is" "green" "+")
((triple2) -> (rule4 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
((triple5) -> (rule4 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
((triple5) -> (rule3 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
((((triple2) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
((triple4 ((triple2) -> (rule4 % int2))) -> (rule2 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
((((triple2) -> (rule3 % int3)) ((triple2) -> (rule4 % int2))) -> (rule2 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Erin is round.
("Erin" "is" "round" "+")
((((triple5) -> (rule4 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
((((triple5) -> (rule3 % int3)) ((triple5) -> (rule4 % int2))) -> (rule2 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3