Anne is kind. Anne is nice. Charlie is blue. Charlie is furry. Charlie is smart. Harry is blue. Harry is kind. If Charlie is furry then Charlie is rough. If something is green and smart then it is nice. If something is blue then it is furry. Furry, rough things are smart. Nice things are blue. If something is furry then it is kind.
Anne is kind.
("Anne" "is" "kind" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is kind.
("Harry" "is" "kind" "+")
If Charlie is furry then Charlie is rough.
((("Charlie" "is" "furry" "+")) -> ("Charlie" "is" "rough" "+"))
If something is green and smart then it is nice.
((("something" "is" "green" "+") ("something" "is" "smart" "+")) -> ("something" "is" "nice" "+"))
If something is blue then it is furry.
((("something" "is" "blue" "+")) -> ("something" "is" "furry" "+"))
Furry, rough things are smart.
((("something" "is" "furry" "+") ("something" "is" "rough" "+")) -> ("something" "is" "smart" "+"))
Nice things are blue.
((("something" "is" "nice" "+")) -> ("something" "is" "blue" "+"))
If something is furry then it is kind.
((("something" "is" "furry" "+")) -> ("something" "is" "kind" "+"))
Charlie is smart.
True
1
proof
[(triple5 OR ((triple4 ((triple4) -> rule1)) -> rule4) OR ((((triple3) -> rule3) ((triple4) -> rule1)) -> rule4) OR ((triple4 ((((triple3) -> rule3)) -> rule1)) -> rule4) OR ((((triple3) -> rule3) ((((triple3) -> rule3)) -> rule1)) -> rule4))]
("Charlie" "is" "smart" "+")
triple5
((triple4 ((triple4) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple3) -> (rule3 % int3)) ((triple4) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
((triple4 ((((triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
((((triple3) -> (rule3 % int3)) ((((triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Anne is not kind.
False
1
inv-proof
[(triple1 OR ((((((triple2) -> rule5)) -> rule3)) -> rule6))]
("Anne" "is" "kind" "-")
triple1
((((((triple2) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Charlie is rough.
True
2
proof
[(((triple4) -> rule1) OR ((((triple3) -> rule3)) -> rule1))]
("Charlie" "is" "rough" "+")
((triple4) -> (rule1 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule1 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Anne is not blue.
False
2
inv-proof
[(((triple2) -> rule5))]
("Anne" "is" "blue" "-")
((triple2) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is furry.
True
3
proof
[(((((triple2) -> rule5)) -> rule3))]
("Anne" "is" "furry" "+")
((((triple2) -> (rule5 % int2))) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is not furry.
False
3
inv-proof
[(((((triple2) -> rule5)) -> rule3))]
("Anne" "is" "furry" "-")
((((triple2) -> (rule5 % int2))) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Harry is not smart.
Unknown
inv-rconc
[@1: Harry is smart.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Harry" "is" "smart" "-")
Harry is nice.
Unknown
rconc
[@1: Harry is nice.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Harry" "is" "nice" "+")
Charlie is not nice.
Unknown
inv-rconc
[@1: Charlie is nice.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Charlie" "is" "nice" "-")
Anne is green.
Unknown
random
[@0: Anne is green.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "green" "+")
Harry is not green.
Unknown
inv-random
[@0: Harry is green.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "green" "-")
Harry is rough.
Unknown
random
[@0: Harry is rough.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "rough" "+")
@0: Anne is kind.[(triple1 OR ((((((triple2) -> rule5)) -> rule3)) -> rule6))] Anne is nice.[(triple2)] Charlie is blue.[(triple3)] Charlie is furry.[(triple4 OR ((triple3) -> rule3))] Charlie is smart.[(triple5 OR ((triple4 ((triple4) -> rule1)) -> rule4) OR ((((triple3) -> rule3) ((triple4) -> rule1)) -> rule4) OR ((triple4 ((((triple3) -> rule3)) -> rule1)) -> rule4) OR ((((triple3) -> rule3) ((((triple3) -> rule3)) -> rule1)) -> rule4))] Harry is blue.[(triple6)] Harry is kind.[(triple7 OR ((((triple6) -> rule3)) -> rule6))] @1: Anne is blue.[(((triple2) -> rule5))] Charlie is kind.[(((triple4) -> rule6) OR ((((triple3) -> rule3)) -> rule6))] Charlie is rough.[(((triple4) -> rule1) OR ((((triple3) -> rule3)) -> rule1))] Harry is furry.[(((triple6) -> rule3))] @2: Anne is furry.[(((((triple2) -> rule5)) -> rule3))]
Anne is kind.
("Anne" "is" "kind" "+")
triple1
((((((triple2) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is nice.
("Anne" "is" "nice" "+")
triple2
Charlie is blue.
("Charlie" "is" "blue" "+")
triple3
Charlie is furry.
("Charlie" "is" "furry" "+")
triple4
((triple3) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
triple5
((triple4 ((triple4) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple3) -> (rule3 % int3)) ((triple4) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
((triple4 ((((triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
((((triple3) -> (rule3 % int3)) ((((triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
triple6
Harry is kind.
("Harry" "is" "kind" "+")
triple7
((((triple6) -> (rule3 % int2))) -> (rule6 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
((triple2) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple4) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple4) -> (rule1 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule1 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
((triple6) -> (rule3 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
((((triple2) -> (rule5 % int2))) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2