Anne is not red. Charlie is big. Charlie is cold. Charlie is furry. Charlie is red. Dave is furry. Dave is nice. Dave is round. Dave is white. Erin is big. Erin is not furry. Erin is white. Round people are white. If someone is cold then they are big. All white people are big. All furry, white people are nice. If Charlie is white and Charlie is round then Charlie is cold. If Erin is nice and Erin is cold then Erin is white. If Charlie is round then Charlie is furry. If someone is big then they are round.
Anne is not red.
("Anne" "is" "red" "-")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is round.
("Dave" "is" "round" "+")
Dave is white.
("Dave" "is" "white" "+")
Erin is big.
("Erin" "is" "big" "+")
Erin is not furry.
("Erin" "is" "furry" "-")
Erin is white.
("Erin" "is" "white" "+")
Round people are white.
((("someone" "is" "round" "+")) -> ("someone" "is" "white" "+"))
If someone is cold then they are big.
((("someone" "is" "cold" "+")) -> ("someone" "is" "big" "+"))
All white people are big.
((("someone" "is" "white" "+")) -> ("someone" "is" "big" "+"))
All furry, white people are nice.
((("someone" "is" "furry" "+") ("someone" "is" "white" "+")) -> ("someone" "is" "nice" "+"))
If Charlie is white and Charlie is round then Charlie is cold.
((("Charlie" "is" "white" "+") ("Charlie" "is" "round" "+")) -> ("Charlie" "is" "cold" "+"))
If Erin is nice and Erin is cold then Erin is white.
((("Erin" "is" "nice" "+") ("Erin" "is" "cold" "+")) -> ("Erin" "is" "white" "+"))
If Charlie is round then Charlie is furry.
((("Charlie" "is" "round" "+")) -> ("Charlie" "is" "furry" "+"))
If someone is big then they are round.
((("someone" "is" "big" "+")) -> ("someone" "is" "round" "+"))
Charlie is big.
True
1
proof
[(triple2 OR ((triple3) -> rule2))]
("Charlie" "is" "big" "+")
triple2
((triple3) -> (rule2 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is not furry.
False
1
inv-proof
[(triple4 OR ((((triple2) -> rule8)) -> rule7) OR ((((((triple3) -> rule2)) -> rule8)) -> rule7))]
("Charlie" "is" "furry" "-")
triple4
((((triple2) -> (rule8 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple3) -> (rule2 % int3))) -> (rule8 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Dave is big.
True
2
proof
[(((triple9) -> rule3) OR ((((triple8) -> rule1)) -> rule3))]
("Dave" "is" "big" "+")
((triple9) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
((((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Erin is not round.
False
2
inv-proof
[(((triple10) -> rule8) OR ((((triple12) -> rule3)) -> rule8))]
("Erin" "is" "round" "-")
((triple10) -> (rule8 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
((((triple12) -> (rule3 % int2))) -> (rule8 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Charlie is white.
True
3
proof
[(((((triple2) -> rule8)) -> rule1) OR ((((((triple3) -> rule2)) -> rule8)) -> rule1))]
("Charlie" "is" "white" "+")
((((triple2) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple3) -> (rule2 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is not white.
False
3
inv-proof
[(((((triple2) -> rule8)) -> rule1) OR ((((((triple3) -> rule2)) -> rule8)) -> rule1))]
("Charlie" "is" "white" "-")
((((triple2) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple3) -> (rule2 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is nice.
True
5
proof
[(((triple4 ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((((((triple2) -> rule8)) -> rule7) ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((triple4 ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4) OR ((((((triple2) -> rule8)) -> rule7) ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4) OR ((((((((triple3) -> rule2)) -> rule8)) -> rule7) ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((((((((triple3) -> rule2)) -> rule8)) -> rule7) ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4))]
("Charlie" "is" "nice" "+")
((triple4 ((((triple2) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((((((triple2) -> (rule8 % int4))) -> (rule7 % int3)) ((((triple2) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
((triple4 ((((((triple3) -> (rule2 % int4))) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4
((((((triple2) -> (rule8 % int5))) -> (rule7 % int4)) ((((((triple3) -> (rule2 % int3))) -> (rule8 % int5))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
int5
((((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule7 % int3)) ((((triple2) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
Charlie is big.
("Charlie" "is" "big" "+")
int5
((((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule7 % int3)) ((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
Charlie is big.
("Charlie" "is" "big" "+")
int5
Charlie is not nice.
False
5
inv-proof
[(((triple4 ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((((((triple2) -> rule8)) -> rule7) ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((triple4 ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4) OR ((((((triple2) -> rule8)) -> rule7) ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4) OR ((((((((triple3) -> rule2)) -> rule8)) -> rule7) ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((((((((triple3) -> rule2)) -> rule8)) -> rule7) ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4))]
("Charlie" "is" "nice" "-")
((triple4 ((((triple2) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((((((triple2) -> (rule8 % int4))) -> (rule7 % int3)) ((((triple2) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
((triple4 ((((((triple3) -> (rule2 % int4))) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4
((((((triple2) -> (rule8 % int5))) -> (rule7 % int4)) ((((((triple3) -> (rule2 % int3))) -> (rule8 % int5))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
int5
((((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule7 % int3)) ((((triple2) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
Charlie is big.
("Charlie" "is" "big" "+")
int5
((((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule7 % int3)) ((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
Charlie is big.
("Charlie" "is" "big" "+")
int5
Erin is not nice.
Unknown
inv-rconc
[@1: Erin is nice.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Erin" "is" "nice" "-")
Anne is nice.
Unknown
rconc
[@1: Anne is nice.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Anne" "is" "nice" "+")
Anne is not big.
Unknown
inv-rconc
[@4: Anne is big.[CWA. Example of deepest failure = (rule3 <- rule1 <- rule8 <- rule2 <- FAIL)]]
("Anne" "is" "big" "-")
Anne is round.
Unknown
rconc
[@3: Anne is round.[CWA. Example of deepest failure = (rule8 <- rule3 <- rule1 <- FAIL)]]
("Anne" "is" "round" "+")
Anne is not cold.
Unknown
inv-random
[@0: Anne is cold.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "cold" "-")
Dave is red.
Unknown
random
[@0: Dave is red.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "red" "+")
Erin is not red.
Unknown
inv-random
[@0: Erin is red.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "red" "-")
Erin is cold.
Unknown
random
[@0: Erin is cold.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "cold" "+")
@0: Anne is not red.[(triple1)] Charlie is big.[(triple2 OR ((triple3) -> rule2))] Charlie is cold.[(triple3 OR ((((((triple2) -> rule8)) -> rule1) ((triple2) -> rule8)) -> rule5))] Charlie is furry.[(triple4 OR ((((triple2) -> rule8)) -> rule7) OR ((((((triple3) -> rule2)) -> rule8)) -> rule7))] Charlie is red.[(triple5)] Dave is furry.[(triple6)] Dave is nice.[(triple7 OR ((triple6 triple9) -> rule4) OR ((triple6 ((triple8) -> rule1)) -> rule4))] Dave is round.[(triple8 OR ((((triple9) -> rule3)) -> rule8))] Dave is white.[(triple9 OR ((triple8) -> rule1))] Erin is big.[(triple10 OR ((triple12) -> rule3))] Erin is not furry.[(triple11)] Erin is white.[(triple12 OR ((((triple10) -> rule8)) -> rule1))] @1: Charlie is round.[(((triple2) -> rule8) OR ((((triple3) -> rule2)) -> rule8))] Dave is big.[(((triple9) -> rule3) OR ((((triple8) -> rule1)) -> rule3))] Erin is round.[(((triple10) -> rule8) OR ((((triple12) -> rule3)) -> rule8))] @2: Charlie is white.[(((((triple2) -> rule8)) -> rule1) OR ((((((triple3) -> rule2)) -> rule8)) -> rule1))] @3: Charlie is nice.[(((triple4 ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((((((triple2) -> rule8)) -> rule7) ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((triple4 ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4) OR ((((((triple2) -> rule8)) -> rule7) ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4) OR ((((((((triple3) -> rule2)) -> rule8)) -> rule7) ((((triple2) -> rule8)) -> rule1)) -> rule4) OR ((((((((triple3) -> rule2)) -> rule8)) -> rule7) ((((((triple3) -> rule2)) -> rule8)) -> rule1)) -> rule4))]
Anne is not red.
("Anne" "is" "red" "-")
triple1
Charlie is big.
("Charlie" "is" "big" "+")
triple2
((triple3) -> (rule2 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple3
((((((triple2) -> (rule8 % int3))) -> (rule1 % int2)) ((triple2) -> (rule8 % int3))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
triple4
((((triple2) -> (rule8 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple3) -> (rule2 % int3))) -> (rule8 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
triple5
Dave is furry.
("Dave" "is" "furry" "+")
triple6
Dave is nice.
("Dave" "is" "nice" "+")
triple7
((triple6 triple9) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple6 ((triple8) -> (rule1 % int2))) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
triple8
((((triple9) -> (rule3 % int2))) -> (rule8 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
triple9
((triple8) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
triple10
((triple12) -> (rule3 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is not furry.
("Erin" "is" "furry" "-")
triple11
Erin is white.
("Erin" "is" "white" "+")
triple12
((((triple10) -> (rule8 % int2))) -> (rule1 % int1))
Erin is white.
("Erin" "is" "white" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
((triple2) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
((triple9) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
((((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Erin is round.
("Erin" "is" "round" "+")
((triple10) -> (rule8 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
((((triple12) -> (rule3 % int2))) -> (rule8 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
((((triple2) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple3) -> (rule2 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
((triple4 ((((triple2) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((((((triple2) -> (rule8 % int4))) -> (rule7 % int3)) ((((triple2) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
((triple4 ((((((triple3) -> (rule2 % int4))) -> (rule8 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4
((((((triple2) -> (rule8 % int5))) -> (rule7 % int4)) ((((((triple3) -> (rule2 % int3))) -> (rule8 % int5))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
int5
((((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule7 % int3)) ((((triple2) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
Charlie is big.
("Charlie" "is" "big" "+")
int5
((((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule7 % int3)) ((((((triple3) -> (rule2 % int5))) -> (rule8 % int4))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
Charlie is big.
("Charlie" "is" "big" "+")
int5