Anne is green. Anne is rough. Anne is smart. Anne is young. Gary is cold. Gary is furry. Gary is green. Gary is quiet. Gary is rough. Gary is smart. Gary is young. Harry is cold. Harry is furry. Harry is green. Harry is quiet. Harry is smart. If Anne is green and Anne is young then Anne is furry. If something is smart then it is rough. Rough things are young. Quiet, furry things are cold. All smart things are rough. Rough, quiet things are young. If something is rough then it is furry. Rough, green things are furry.
Anne is green.
("Anne" "is" "green" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Anne is young.
("Anne" "is" "young" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is green.
("Gary" "is" "green" "+")
Gary is quiet.
("Gary" "is" "quiet" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Gary is young.
("Gary" "is" "young" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is smart.
("Harry" "is" "smart" "+")
If Anne is green and Anne is young then Anne is furry.
((("Anne" "is" "green" "+") ("Anne" "is" "young" "+")) -> ("Anne" "is" "furry" "+"))
If something is smart then it is rough.
((("something" "is" "smart" "+")) -> ("something" "is" "rough" "+"))
Rough things are young.
((("something" "is" "rough" "+")) -> ("something" "is" "young" "+"))
Quiet, furry things are cold.
((("something" "is" "quiet" "+") ("something" "is" "furry" "+")) -> ("something" "is" "cold" "+"))
All smart things are rough.
((("something" "is" "smart" "+")) -> ("something" "is" "rough" "+"))
Rough, quiet things are young.
((("something" "is" "rough" "+") ("something" "is" "quiet" "+")) -> ("something" "is" "young" "+"))
If something is rough then it is furry.
((("something" "is" "rough" "+")) -> ("something" "is" "furry" "+"))
Rough, green things are furry.
((("something" "is" "rough" "+") ("something" "is" "green" "+")) -> ("something" "is" "furry" "+"))
Gary is cold.
True
1
proof
[(triple5 OR ((triple8 triple6) -> rule4) OR ((triple8 ((triple9) -> rule7)) -> rule4) OR ((triple8 ((triple9 triple7) -> rule8)) -> rule4) OR ((triple8 ((((triple10) -> rule2)) -> rule7)) -> rule4) OR ((triple8 ((((triple10) -> rule5)) -> rule7)) -> rule4) OR ((triple8 ((((triple10) -> rule2) triple7) -> rule8)) -> rule4) OR ((triple8 ((((triple10) -> rule5) triple7) -> rule8)) -> rule4))]
("Gary" "is" "cold" "+")
triple5
((triple8 triple6) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
((triple8 ((triple9) -> (rule7 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
((triple8 ((triple9 triple7) -> (rule8 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
((triple8 ((((triple10) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule2 % int3)) triple7) -> (rule8 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule5 % int3)) triple7) -> (rule8 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Harry is not furry.
False
1
inv-proof
[(triple13 OR ((((triple16) -> rule2)) -> rule7) OR ((((triple16) -> rule5)) -> rule7) OR ((((triple16) -> rule2) triple14) -> rule8) OR ((((triple16) -> rule5) triple14) -> rule8))]
("Harry" "is" "furry" "-")
triple13
((((triple16) -> (rule2 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule2 % int2)) triple14) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2)) triple14) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is rough.
True
2
proof
[(((triple16) -> rule2) OR ((triple16) -> rule5))]
("Harry" "is" "rough" "+")
((triple16) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((triple16) -> (rule5 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is not rough.
False
2
inv-proof
[(((triple16) -> rule2) OR ((triple16) -> rule5))]
("Harry" "is" "rough" "-")
((triple16) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((triple16) -> (rule5 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is young.
True
3
proof
[(((((triple16) -> rule2)) -> rule3) OR ((((triple16) -> rule5)) -> rule3) OR ((((triple16) -> rule2) triple15) -> rule6) OR ((((triple16) -> rule5) triple15) -> rule6))]
("Harry" "is" "young" "+")
((((triple16) -> (rule2 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule2 % int2)) triple15) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2)) triple15) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is not young.
False
3
inv-proof
[(((((triple16) -> rule2)) -> rule3) OR ((((triple16) -> rule5)) -> rule3) OR ((((triple16) -> rule2) triple15) -> rule6) OR ((((triple16) -> rule5) triple15) -> rule6))]
("Harry" "is" "young" "-")
((((triple16) -> (rule2 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule2 % int2)) triple15) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2)) triple15) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Anne is not cold.
Unknown
inv-rconc
[@1: Anne is cold.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Anne" "is" "cold" "-")
Anne is quiet.
Unknown
random
[@0: Anne is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "quiet" "+")
@0: Anne is green.[(triple1)] Anne is rough.[(triple2 OR ((triple3) -> rule2) OR ((triple3) -> rule5))] Anne is smart.[(triple3)] Anne is young.[(triple4 OR ((triple2) -> rule3) OR ((((triple3) -> rule2)) -> rule3) OR ((((triple3) -> rule5)) -> rule3))] Gary is cold.[(triple5 OR ((triple8 triple6) -> rule4) OR ((triple8 ((triple9) -> rule7)) -> rule4) OR ((triple8 ((triple9 triple7) -> rule8)) -> rule4) OR ((triple8 ((((triple10) -> rule2)) -> rule7)) -> rule4) OR ((triple8 ((((triple10) -> rule5)) -> rule7)) -> rule4) OR ((triple8 ((((triple10) -> rule2) triple7) -> rule8)) -> rule4) OR ((triple8 ((((triple10) -> rule5) triple7) -> rule8)) -> rule4))] Gary is furry.[(triple6 OR ((triple9) -> rule7) OR ((triple9 triple7) -> rule8) OR ((((triple10) -> rule2)) -> rule7) OR ((((triple10) -> rule5)) -> rule7) OR ((((triple10) -> rule2) triple7) -> rule8) OR ((((triple10) -> rule5) triple7) -> rule8))] Gary is green.[(triple7)] Gary is quiet.[(triple8)] Gary is rough.[(triple9 OR ((triple10) -> rule2) OR ((triple10) -> rule5))] Gary is smart.[(triple10)] Gary is young.[(triple11 OR ((triple9) -> rule3) OR ((triple9 triple8) -> rule6) OR ((((triple10) -> rule2)) -> rule3) OR ((((triple10) -> rule5)) -> rule3) OR ((((triple10) -> rule2) triple8) -> rule6) OR ((((triple10) -> rule5) triple8) -> rule6))] Harry is cold.[(triple12 OR ((triple15 triple13) -> rule4) OR ((triple15 ((((triple16) -> rule2)) -> rule7)) -> rule4) OR ((triple15 ((((triple16) -> rule5)) -> rule7)) -> rule4) OR ((triple15 ((((triple16) -> rule2) triple14) -> rule8)) -> rule4) OR ((triple15 ((((triple16) -> rule5) triple14) -> rule8)) -> rule4))] Harry is furry.[(triple13 OR ((((triple16) -> rule2)) -> rule7) OR ((((triple16) -> rule5)) -> rule7) OR ((((triple16) -> rule2) triple14) -> rule8) OR ((((triple16) -> rule5) triple14) -> rule8))] Harry is green.[(triple14)] Harry is quiet.[(triple15)] Harry is smart.[(triple16)] @1: Anne is furry.[(((triple2) -> rule7) OR ((triple1 triple4) -> rule1) OR ((triple2 triple1) -> rule8) OR ((((triple3) -> rule2)) -> rule7) OR ((((triple3) -> rule5)) -> rule7) OR ((triple1 ((triple2) -> rule3)) -> rule1) OR ((((triple3) -> rule2) triple1) -> rule8) OR ((((triple3) -> rule5) triple1) -> rule8) OR ((triple1 ((((triple3) -> rule2)) -> rule3)) -> rule1) OR ((triple1 ((((triple3) -> rule5)) -> rule3)) -> rule1))] Harry is rough.[(((triple16) -> rule2) OR ((triple16) -> rule5))] @2: Harry is young.[(((((triple16) -> rule2)) -> rule3) OR ((((triple16) -> rule5)) -> rule3) OR ((((triple16) -> rule2) triple15) -> rule6) OR ((((triple16) -> rule5) triple15) -> rule6))]
Anne is green.
("Anne" "is" "green" "+")
triple1
Anne is rough.
("Anne" "is" "rough" "+")
triple2
((triple3) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((triple3) -> (rule5 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
triple3
Anne is young.
("Anne" "is" "young" "+")
triple4
((triple2) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((((triple3) -> (rule5 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
triple5
((triple8 triple6) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
((triple8 ((triple9) -> (rule7 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
((triple8 ((triple9 triple7) -> (rule8 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
((triple8 ((((triple10) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule2 % int3)) triple7) -> (rule8 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule5 % int3)) triple7) -> (rule8 % int2))) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Gary is furry.
("Gary" "is" "furry" "+")
triple6
((triple9) -> (rule7 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
((triple9 triple7) -> (rule8 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
((((triple10) -> (rule2 % int2))) -> (rule7 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule5 % int2))) -> (rule7 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule2 % int2)) triple7) -> (rule8 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule5 % int2)) triple7) -> (rule8 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
triple7
Gary is quiet.
("Gary" "is" "quiet" "+")
triple8
Gary is rough.
("Gary" "is" "rough" "+")
triple9
((triple10) -> (rule2 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
((triple10) -> (rule5 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
triple10
Gary is young.
("Gary" "is" "young" "+")
triple11
((triple9) -> (rule3 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
((triple9 triple8) -> (rule6 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
((((triple10) -> (rule2 % int2))) -> (rule3 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule5 % int2))) -> (rule3 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule2 % int2)) triple8) -> (rule6 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule5 % int2)) triple8) -> (rule6 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
triple12
((triple15 triple13) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((triple15 ((((triple16) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((triple15 ((((triple16) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((triple15 ((((triple16) -> (rule2 % int3)) triple14) -> (rule8 % int2))) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((triple15 ((((triple16) -> (rule5 % int3)) triple14) -> (rule8 % int2))) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
triple13
((((triple16) -> (rule2 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule2 % int2)) triple14) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2)) triple14) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
triple14
Harry is quiet.
("Harry" "is" "quiet" "+")
triple15
Harry is smart.
("Harry" "is" "smart" "+")
triple16
Anne is furry.
("Anne" "is" "furry" "+")
((triple2) -> (rule7 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple1 triple4) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple2 triple1) -> (rule8 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule7 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((((triple3) -> (rule5 % int2))) -> (rule7 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((triple1 ((triple2) -> (rule3 % int2))) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
((((triple3) -> (rule2 % int2)) triple1) -> (rule8 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((((triple3) -> (rule5 % int2)) triple1) -> (rule8 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((triple1 ((((triple3) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
((triple1 ((((triple3) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
((triple16) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((triple16) -> (rule5 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
((((triple16) -> (rule2 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule2 % int2)) triple15) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple16) -> (rule5 % int2)) triple15) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2