Anne is blue. Anne is furry. Anne is kind. Anne is round. Anne is young. Harry is blue. Harry is furry. Harry is kind. Harry is nice. Harry is rough. Harry is round. Harry is young. If someone is kind then they are rough. All round people are furry. Round people are furry. Furry, nice people are round. If Harry is furry then Harry is kind. If someone is rough and kind then they are nice.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is furry.
("Anne" "is" "furry" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is young.
("Anne" "is" "young" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is round.
("Harry" "is" "round" "+")
Harry is young.
("Harry" "is" "young" "+")
If someone is kind then they are rough.
((("someone" "is" "kind" "+")) -> ("someone" "is" "rough" "+"))
All round people are furry.
((("someone" "is" "round" "+")) -> ("someone" "is" "furry" "+"))
Round people are furry.
((("someone" "is" "round" "+")) -> ("someone" "is" "furry" "+"))
Furry, nice people are round.
((("someone" "is" "furry" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "round" "+"))
If Harry is furry then Harry is kind.
((("Harry" "is" "furry" "+")) -> ("Harry" "is" "kind" "+"))
If someone is rough and kind then they are nice.
((("someone" "is" "rough" "+") ("someone" "is" "kind" "+")) -> ("someone" "is" "nice" "+"))
Anne is furry.
True
1
proof
[(triple2 OR ((triple4) -> rule2) OR ((triple4) -> rule3))]
("Anne" "is" "furry" "+")
triple2
((triple4) -> (rule2 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple4) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is not furry.
False
1
inv-proof
[(triple2 OR ((triple4) -> rule2) OR ((triple4) -> rule3))]
("Anne" "is" "furry" "-")
triple2
((triple4) -> (rule2 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple4) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
@0: Anne is blue.[(triple1)] Anne is furry.[(triple2 OR ((triple4) -> rule2) OR ((triple4) -> rule3))] Anne is kind.[(triple3)] Anne is round.[(triple4 OR ((triple2 ((((triple3) -> rule1) triple3) -> rule6)) -> rule4))] Anne is young.[(triple5)] Harry is blue.[(triple6)] Harry is furry.[(triple7 OR ((triple11) -> rule2) OR ((triple11) -> rule3))] Harry is kind.[(triple8 OR ((triple7) -> rule5) OR ((((triple11) -> rule2)) -> rule5) OR ((((triple11) -> rule3)) -> rule5))] Harry is nice.[(triple9 OR ((triple10 triple8) -> rule6) OR ((triple10 ((triple7) -> rule5)) -> rule6) OR ((((triple8) -> rule1) triple8) -> rule6) OR ((((triple8) -> rule1) ((triple7) -> rule5)) -> rule6) OR ((triple10 ((((triple11) -> rule2)) -> rule5)) -> rule6) OR ((triple10 ((((triple11) -> rule3)) -> rule5)) -> rule6) OR ((((((triple7) -> rule5)) -> rule1) triple8) -> rule6) OR ((((triple8) -> rule1) ((((triple11) -> rule2)) -> rule5)) -> rule6) OR ((((triple8) -> rule1) ((((triple11) -> rule3)) -> rule5)) -> rule6) OR ((((((triple7) -> rule5)) -> rule1) ((triple7) -> rule5)) -> rule6) OR ((((((triple7) -> rule5)) -> rule1) ((((triple11) -> rule2)) -> rule5)) -> rule6) OR ((((((triple7) -> rule5)) -> rule1) ((((triple11) -> rule3)) -> rule5)) -> rule6) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple8) -> rule6) OR ((((((((triple11) -> rule3)) -> rule5)) -> rule1) triple8) -> rule6) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((triple7) -> rule5)) -> rule6) OR ((((((((triple11) -> rule3)) -> rule5)) -> rule1) ((triple7) -> rule5)) -> rule6) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((triple11) -> rule2)) -> rule5)) -> rule6) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((triple11) -> rule3)) -> rule5)) -> rule6) OR ((((((((triple11) -> rule3)) -> rule5)) -> rule1) ((((triple11) -> rule2)) -> rule5)) -> rule6) OR ((((((((triple11) -> rule3)) -> rule5)) -> rule1) ((((triple11) -> rule3)) -> rule5)) -> rule6))] Harry is rough.[(triple10 OR ((triple8) -> rule1) OR ((((triple7) -> rule5)) -> rule1) OR ((((((triple11) -> rule2)) -> rule5)) -> rule1) OR ((((((triple11) -> rule3)) -> rule5)) -> rule1))] Harry is round.[(triple11 OR ((triple7 triple9) -> rule4) OR ((triple7 ((triple10 triple8) -> rule6)) -> rule4) OR ((triple7 ((triple10 ((triple7) -> rule5)) -> rule6)) -> rule4) OR ((triple7 ((((triple8) -> rule1) triple8) -> rule6)) -> rule4) OR ((triple7 ((((triple8) -> rule1) ((triple7) -> rule5)) -> rule6)) -> rule4) OR ((triple7 ((((((triple7) -> rule5)) -> rule1) triple8) -> rule6)) -> rule4) OR ((triple7 ((((((triple7) -> rule5)) -> rule1) ((triple7) -> rule5)) -> rule6)) -> rule4))] Harry is young.[(triple12)] @1: Anne is rough.[(((triple3) -> rule1))] @2: Anne is nice.[(((((triple3) -> rule1) triple3) -> rule6))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
Anne is furry.
("Anne" "is" "furry" "+")
triple2
((triple4) -> (rule2 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple4) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
triple3
Anne is round.
("Anne" "is" "round" "+")
triple4
((triple2 ((((triple3) -> (rule1 % int3)) triple3) -> (rule6 % int2))) -> (rule4 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is young.
("Anne" "is" "young" "+")
triple5
Harry is blue.
("Harry" "is" "blue" "+")
triple6
Harry is furry.
("Harry" "is" "furry" "+")
triple7
((triple11) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple11) -> (rule3 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
triple8
((triple7) -> (rule5 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
((((triple11) -> (rule2 % int2))) -> (rule5 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((((triple11) -> (rule3 % int2))) -> (rule5 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
triple9
((triple10 triple8) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((triple10 ((triple7) -> (rule5 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
((((triple8) -> (rule1 % int2)) triple8) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((triple8) -> (rule1 % int3)) ((triple7) -> (rule5 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((triple10 ((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
((triple10 ((((triple11) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
((((((triple7) -> (rule5 % int3))) -> (rule1 % int2)) triple8) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((triple8) -> (rule1 % int4)) ((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
int4
((((triple8) -> (rule1 % int4)) ((((triple11) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
int4
((((((triple7) -> (rule5 % int3))) -> (rule1 % int2)) ((triple7) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((((triple7) -> (rule5 % int4))) -> (rule1 % int3)) ((((triple11) -> (rule2 % int2))) -> (rule5 % int4))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
((((((triple7) -> (rule5 % int4))) -> (rule1 % int3)) ((((triple11) -> (rule3 % int2))) -> (rule5 % int4))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
((((((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) triple8) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) triple8) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) ((triple7) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) ((triple7) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) ((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) ((((triple11) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) ((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((((((((triple11) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) ((((triple11) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
triple10
((triple8) -> (rule1 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((((triple7) -> (rule5 % int2))) -> (rule1 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
((((((triple11) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
triple11
((triple7 triple9) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
((triple7 ((triple10 triple8) -> (rule6 % int2))) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((triple7 ((triple10 ((triple7) -> (rule5 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((triple7 ((((triple8) -> (rule1 % int3)) triple8) -> (rule6 % int2))) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((triple7 ((((triple8) -> (rule1 % int4)) ((triple7) -> (rule5 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
int4
((triple7 ((((((triple7) -> (rule5 % int4))) -> (rule1 % int3)) triple8) -> (rule6 % int2))) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
((triple7 ((((((triple7) -> (rule5 % int4))) -> (rule1 % int3)) ((triple7) -> (rule5 % int4))) -> (rule6 % int2))) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
Harry is young.
("Harry" "is" "young" "+")
triple12
Anne is rough.
("Anne" "is" "rough" "+")
((triple3) -> (rule1 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
((((triple3) -> (rule1 % int2)) triple3) -> (rule6 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2