Anne is blue. Anne is red. Anne is round. Anne is smart. Charlie is big. Charlie is blue. Charlie is rough. Charlie is round. Charlie is smart. Dave is furry. Dave is red. Gary is big. Gary is blue. Gary is rough. Gary is smart. Red, smart things are furry. Round things are rough. All rough things are smart. If Gary is rough then Gary is red. All blue things are furry. All big, furry things are blue. Rough things are big. Smart, big things are rough.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is red.
("Dave" "is" "red" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Red, smart things are furry.
((("something" "is" "red" "+") ("something" "is" "smart" "+")) -> ("something" "is" "furry" "+"))
Round things are rough.
((("something" "is" "round" "+")) -> ("something" "is" "rough" "+"))
All rough things are smart.
((("something" "is" "rough" "+")) -> ("something" "is" "smart" "+"))
If Gary is rough then Gary is red.
((("Gary" "is" "rough" "+")) -> ("Gary" "is" "red" "+"))
All blue things are furry.
((("something" "is" "blue" "+")) -> ("something" "is" "furry" "+"))
All big, furry things are blue.
((("something" "is" "big" "+") ("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
Rough things are big.
((("something" "is" "rough" "+")) -> ("something" "is" "big" "+"))
Smart, big things are rough.
((("something" "is" "smart" "+") ("something" "is" "big" "+")) -> ("something" "is" "rough" "+"))
Gary is big.
True
1
proof
[(triple12 OR ((triple14) -> rule7))]
("Gary" "is" "big" "+")
triple12
((triple14) -> (rule7 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Anne is not smart.
False
1
inv-proof
[(triple4 OR ((((triple3) -> rule2)) -> rule3))]
("Anne" "is" "smart" "-")
triple4
((((triple3) -> (rule2 % int2))) -> (rule3 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is furry.
True
2
proof
[(((triple1) -> rule5) OR ((triple2 triple4) -> rule1) OR ((triple2 ((((triple3) -> rule2)) -> rule3)) -> rule1))]
("Anne" "is" "furry" "+")
((triple1) -> (rule5 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple2 triple4) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple2 ((((triple3) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Gary is not furry.
False
2
inv-proof
[(((triple13) -> rule5) OR ((((triple14) -> rule4) triple15) -> rule1) OR ((((triple14) -> rule4) ((triple14) -> rule3)) -> rule1) OR ((((((triple15 triple12) -> rule8)) -> rule4) triple15) -> rule1) OR ((((((triple15 triple12) -> rule8)) -> rule4) ((triple14) -> rule3)) -> rule1))]
("Gary" "is" "furry" "-")
((triple13) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
((((triple14) -> (rule4 % int2)) triple15) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple14) -> (rule3 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
((((((triple15 triple12) -> (rule8 % int3))) -> (rule4 % int2)) triple15) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((((((triple15 triple12) -> (rule8 % int4))) -> (rule4 % int3)) ((triple14) -> (rule3 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
Anne is big.
True
3
proof
[(((((triple3) -> rule2)) -> rule7))]
("Anne" "is" "big" "+")
((((triple3) -> (rule2 % int2))) -> (rule7 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is not big.
False
3
inv-proof
[(((((triple3) -> rule2)) -> rule7))]
("Anne" "is" "big" "-")
((((triple3) -> (rule2 % int2))) -> (rule7 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Dave is not rough.
Unknown
inv-rconc
[@3: Dave is rough.[CWA. Example of deepest failure = (rule8 <- rule3 <- rule2 <- FAIL)]]
("Dave" "is" "rough" "-")
Dave is smart.
Unknown
rconc
[@2: Dave is smart.[CWA. Example of deepest failure = (rule3 <- rule2 <- FAIL)]]
("Dave" "is" "smart" "+")
Dave is not blue.
Unknown
inv-rconc
[@3: Dave is blue.[CWA. Example of deepest failure = (rule6 <- rule7 <- rule2 <- FAIL)]]
("Dave" "is" "blue" "-")
Gary is round.
Unknown
random
[@0: Gary is round.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "round" "+")
Charlie is not red.
Unknown
inv-random
[@0: Charlie is red.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "red" "-")
Dave is round.
Unknown
random
[@0: Dave is round.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "round" "+")
@0: Anne is blue.[(triple1 OR ((((((triple3) -> rule2)) -> rule7) ((triple2 triple4) -> rule1)) -> rule6) OR ((((((triple3) -> rule2)) -> rule7) ((triple2 ((((triple3) -> rule2)) -> rule3)) -> rule1)) -> rule6))] Anne is red.[(triple2)] Anne is round.[(triple3)] Anne is smart.[(triple4 OR ((((triple3) -> rule2)) -> rule3))] Charlie is big.[(triple5 OR ((triple7) -> rule7) OR ((((triple8) -> rule2)) -> rule7))] Charlie is blue.[(triple6)] Charlie is rough.[(triple7 OR ((triple8) -> rule2) OR ((triple9 triple5) -> rule8))] Charlie is round.[(triple8)] Charlie is smart.[(triple9 OR ((triple7) -> rule3) OR ((((triple8) -> rule2)) -> rule3))] Dave is furry.[(triple10)] Dave is red.[(triple11)] Gary is big.[(triple12 OR ((triple14) -> rule7))] Gary is blue.[(triple13 OR ((triple12 ((((triple14) -> rule4) triple15) -> rule1)) -> rule6) OR ((triple12 ((((triple14) -> rule4) ((triple14) -> rule3)) -> rule1)) -> rule6) OR ((((triple14) -> rule7) ((((triple14) -> rule4) triple15) -> rule1)) -> rule6) OR ((((triple14) -> rule7) ((((triple14) -> rule4) ((triple14) -> rule3)) -> rule1)) -> rule6) OR ((triple12 ((((((triple15 triple12) -> rule8)) -> rule4) triple15) -> rule1)) -> rule6) OR ((triple12 ((((((triple15 triple12) -> rule8)) -> rule4) ((triple14) -> rule3)) -> rule1)) -> rule6) OR ((((triple14) -> rule7) ((((((triple15 triple12) -> rule8)) -> rule4) triple15) -> rule1)) -> rule6) OR ((((triple14) -> rule7) ((((((triple15 triple12) -> rule8)) -> rule4) ((triple14) -> rule3)) -> rule1)) -> rule6))] Gary is rough.[(triple14 OR ((triple15 triple12) -> rule8))] Gary is smart.[(triple15 OR ((triple14) -> rule3))] @1: Anne is furry.[(((triple1) -> rule5) OR ((triple2 triple4) -> rule1) OR ((triple2 ((((triple3) -> rule2)) -> rule3)) -> rule1))] Anne is rough.[(((triple3) -> rule2))] Charlie is furry.[(((triple6) -> rule5))] Gary is furry.[(((triple13) -> rule5) OR ((((triple14) -> rule4) triple15) -> rule1) OR ((((triple14) -> rule4) ((triple14) -> rule3)) -> rule1) OR ((((((triple15 triple12) -> rule8)) -> rule4) triple15) -> rule1) OR ((((((triple15 triple12) -> rule8)) -> rule4) ((triple14) -> rule3)) -> rule1))] Gary is red.[(((triple14) -> rule4) OR ((((triple15 triple12) -> rule8)) -> rule4))] @2: Anne is big.[(((((triple3) -> rule2)) -> rule7))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
((((((triple3) -> (rule2 % int4))) -> (rule7 % int3)) ((triple2 triple4) -> (rule1 % int2))) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
int4
((((((triple3) -> (rule2 % int5))) -> (rule7 % int4)) ((triple2 ((((triple3) -> (rule2 % int5))) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is smart.
("Anne" "is" "smart" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
Anne is rough.
("Anne" "is" "rough" "+")
int5
Anne is red.
("Anne" "is" "red" "+")
triple2
Anne is round.
("Anne" "is" "round" "+")
triple3
Anne is smart.
("Anne" "is" "smart" "+")
triple4
((((triple3) -> (rule2 % int2))) -> (rule3 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
triple5
((triple7) -> (rule7 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
((((triple8) -> (rule2 % int2))) -> (rule7 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
triple6
Charlie is rough.
("Charlie" "is" "rough" "+")
triple7
((triple8) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((triple9 triple5) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
triple8
Charlie is smart.
("Charlie" "is" "smart" "+")
triple9
((triple7) -> (rule3 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
((((triple8) -> (rule2 % int2))) -> (rule3 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
triple10
Dave is red.
("Dave" "is" "red" "+")
triple11
Gary is big.
("Gary" "is" "big" "+")
triple12
((triple14) -> (rule7 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
triple13
((triple12 ((((triple14) -> (rule4 % int3)) triple15) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
((triple12 ((((triple14) -> (rule4 % int4)) ((triple14) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
int4
((((triple14) -> (rule7 % int4)) ((((triple14) -> (rule4 % int3)) triple15) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((((triple14) -> (rule7 % int5)) ((((triple14) -> (rule4 % int4)) ((triple14) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
int4
Gary is big.
("Gary" "is" "big" "+")
int5
((triple12 ((((((triple15 triple12) -> (rule8 % int4))) -> (rule4 % int3)) triple15) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
((triple12 ((((((triple15 triple12) -> (rule8 % int5))) -> (rule4 % int4)) ((triple14) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
int4
Gary is rough.
("Gary" "is" "rough" "+")
int5
((((triple14) -> (rule7 % int5)) ((((((triple15 triple12) -> (rule8 % int4))) -> (rule4 % int3)) triple15) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
Gary is big.
("Gary" "is" "big" "+")
int5
((((triple14) -> (rule7 % int6)) ((((((triple15 triple12) -> (rule8 % int5))) -> (rule4 % int4)) ((triple14) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is smart.
("Gary" "is" "smart" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
int4
Gary is rough.
("Gary" "is" "rough" "+")
int5
Gary is big.
("Gary" "is" "big" "+")
int6
Gary is rough.
("Gary" "is" "rough" "+")
triple14
((triple15 triple12) -> (rule8 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
triple15
((triple14) -> (rule3 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
((triple1) -> (rule5 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple2 triple4) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple2 ((((triple3) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
((triple3) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
((triple6) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
((triple13) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
((((triple14) -> (rule4 % int2)) triple15) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple14) -> (rule3 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
((((((triple15 triple12) -> (rule8 % int3))) -> (rule4 % int2)) triple15) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((((((triple15 triple12) -> (rule8 % int4))) -> (rule4 % int3)) ((triple14) -> (rule3 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
Gary is red.
("Gary" "is" "red" "+")
((triple14) -> (rule4 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
((((triple15 triple12) -> (rule8 % int2))) -> (rule4 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
((((triple3) -> (rule2 % int2))) -> (rule7 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2