Charlie is big. Charlie is blue. Charlie is furry. Charlie is kind. Charlie is nice. Charlie is rough. Charlie is white. Dave is big. Dave is blue. Dave is furry. Dave is kind. Dave is nice. Dave is rough. Dave is white. If Dave is kind and Dave is white then Dave is nice. If something is kind then it is rough. If Charlie is kind then Charlie is big. Rough things are white. If something is nice then it is furry. If Dave is kind then Dave is big. All rough, white things are furry. Blue, white things are nice.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is white.
("Dave" "is" "white" "+")
If Dave is kind and Dave is white then Dave is nice.
((("Dave" "is" "kind" "+") ("Dave" "is" "white" "+")) -> ("Dave" "is" "nice" "+"))
If something is kind then it is rough.
((("something" "is" "kind" "+")) -> ("something" "is" "rough" "+"))
If Charlie is kind then Charlie is big.
((("Charlie" "is" "kind" "+")) -> ("Charlie" "is" "big" "+"))
Rough things are white.
((("something" "is" "rough" "+")) -> ("something" "is" "white" "+"))
If something is nice then it is furry.
((("something" "is" "nice" "+")) -> ("something" "is" "furry" "+"))
If Dave is kind then Dave is big.
((("Dave" "is" "kind" "+")) -> ("Dave" "is" "big" "+"))
All rough, white things are furry.
((("something" "is" "rough" "+") ("something" "is" "white" "+")) -> ("something" "is" "furry" "+"))
Blue, white things are nice.
((("something" "is" "blue" "+") ("something" "is" "white" "+")) -> ("something" "is" "nice" "+"))
Charlie is furry.
True
1
proof
[(triple3 OR ((triple5) -> rule5) OR ((triple6 triple7) -> rule7) OR ((((triple2 triple7) -> rule8)) -> rule5) OR ((triple6 ((triple6) -> rule4)) -> rule7) OR ((((triple4) -> rule2) triple7) -> rule7) OR ((((triple4) -> rule2) ((triple6) -> rule4)) -> rule7) OR ((((triple2 ((triple6) -> rule4)) -> rule8)) -> rule5) OR ((triple6 ((((triple4) -> rule2)) -> rule4)) -> rule7) OR ((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule4)) -> rule7) OR ((((triple2 ((((triple4) -> rule2)) -> rule4)) -> rule8)) -> rule5))]
("Charlie" "is" "furry" "+")
triple3
((triple5) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple6 triple7) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((triple2 triple7) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((triple6 ((triple6) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple4) -> (rule2 % int2)) triple7) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple4) -> (rule2 % int3)) ((triple6) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple2 ((triple6) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
((triple6 ((((triple4) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple4) -> (rule2 % int3)) ((((triple4) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple2 ((((triple4) -> (rule2 % int4))) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is not rough.
False
1
inv-proof
[(triple6 OR ((triple4) -> rule2))]
("Charlie" "is" "rough" "-")
triple6
((triple4) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
@0: Charlie is big.[(triple1 OR ((triple4) -> rule3))] Charlie is blue.[(triple2)] Charlie is furry.[(triple3 OR ((triple5) -> rule5) OR ((triple6 triple7) -> rule7) OR ((((triple2 triple7) -> rule8)) -> rule5) OR ((triple6 ((triple6) -> rule4)) -> rule7) OR ((((triple4) -> rule2) triple7) -> rule7) OR ((((triple4) -> rule2) ((triple6) -> rule4)) -> rule7) OR ((((triple2 ((triple6) -> rule4)) -> rule8)) -> rule5) OR ((triple6 ((((triple4) -> rule2)) -> rule4)) -> rule7) OR ((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule4)) -> rule7) OR ((((triple2 ((((triple4) -> rule2)) -> rule4)) -> rule8)) -> rule5))] Charlie is kind.[(triple4)] Charlie is nice.[(triple5 OR ((triple2 triple7) -> rule8) OR ((triple2 ((triple6) -> rule4)) -> rule8) OR ((triple2 ((((triple4) -> rule2)) -> rule4)) -> rule8))] Charlie is rough.[(triple6 OR ((triple4) -> rule2))] Charlie is white.[(triple7 OR ((triple6) -> rule4) OR ((((triple4) -> rule2)) -> rule4))] Dave is big.[(triple8 OR ((triple11) -> rule6))] Dave is blue.[(triple9)] Dave is furry.[(triple10 OR ((triple12) -> rule5) OR ((triple13 triple14) -> rule7) OR ((((triple11 triple14) -> rule1)) -> rule5) OR ((((triple9 triple14) -> rule8)) -> rule5) OR ((triple13 ((triple13) -> rule4)) -> rule7) OR ((((triple11) -> rule2) triple14) -> rule7) OR ((((triple11) -> rule2) ((triple13) -> rule4)) -> rule7) OR ((((triple11 ((triple13) -> rule4)) -> rule1)) -> rule5) OR ((((triple9 ((triple13) -> rule4)) -> rule8)) -> rule5) OR ((triple13 ((((triple11) -> rule2)) -> rule4)) -> rule7) OR ((((triple11) -> rule2) ((((triple11) -> rule2)) -> rule4)) -> rule7) OR ((((triple11 ((((triple11) -> rule2)) -> rule4)) -> rule1)) -> rule5) OR ((((triple9 ((((triple11) -> rule2)) -> rule4)) -> rule8)) -> rule5))] Dave is kind.[(triple11)] Dave is nice.[(triple12 OR ((triple11 triple14) -> rule1) OR ((triple9 triple14) -> rule8) OR ((triple11 ((triple13) -> rule4)) -> rule1) OR ((triple9 ((triple13) -> rule4)) -> rule8) OR ((triple11 ((((triple11) -> rule2)) -> rule4)) -> rule1) OR ((triple9 ((((triple11) -> rule2)) -> rule4)) -> rule8))] Dave is rough.[(triple13 OR ((triple11) -> rule2))] Dave is white.[(triple14 OR ((triple13) -> rule4) OR ((((triple11) -> rule2)) -> rule4))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((triple4) -> (rule3 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
triple2
Charlie is furry.
("Charlie" "is" "furry" "+")
triple3
((triple5) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple6 triple7) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((triple2 triple7) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((triple6 ((triple6) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple4) -> (rule2 % int2)) triple7) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple4) -> (rule2 % int3)) ((triple6) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple2 ((triple6) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
((triple6 ((((triple4) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple4) -> (rule2 % int3)) ((((triple4) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple2 ((((triple4) -> (rule2 % int4))) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
triple4
Charlie is nice.
("Charlie" "is" "nice" "+")
triple5
((triple2 triple7) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((triple2 ((triple6) -> (rule4 % int2))) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((triple2 ((((triple4) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
triple6
((triple4) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
triple7
((triple6) -> (rule4 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
triple8
((triple11) -> (rule6 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
triple9
Dave is furry.
("Dave" "is" "furry" "+")
triple10
((triple12) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((triple13 triple14) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((((triple11 triple14) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple9 triple14) -> (rule8 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((triple13 ((triple13) -> (rule4 % int2))) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((((triple11) -> (rule2 % int2)) triple14) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple13) -> (rule4 % int2))) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((((triple11 ((triple13) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
((((triple9 ((triple13) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
((triple13 ((((triple11) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((((triple11) -> (rule2 % int3)) ((((triple11) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((((triple11 ((((triple11) -> (rule2 % int4))) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
int4
((((triple9 ((((triple11) -> (rule2 % int4))) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
int4
Dave is kind.
("Dave" "is" "kind" "+")
triple11
Dave is nice.
("Dave" "is" "nice" "+")
triple12
((triple11 triple14) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple9 triple14) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple11 ((triple13) -> (rule4 % int2))) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((triple9 ((triple13) -> (rule4 % int2))) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((triple11 ((((triple11) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((triple9 ((((triple11) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
triple13
((triple11) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
triple14
((triple13) -> (rule4 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((((triple11) -> (rule2 % int2))) -> (rule4 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2