Dave is big. Dave is blue. Dave is furry. Dave is kind. Dave is nice. Dave is quiet. Dave is white. Nice people are white. All big, blue people are white. Furry people are nice. If Dave is furry and Dave is nice then Dave is quiet. Big people are furry. Furry people are 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 quiet.
("Dave" "is" "quiet" "+")
Dave is white.
("Dave" "is" "white" "+")
Nice people are white.
((("someone" "is" "nice" "+")) -> ("someone" "is" "white" "+"))
All big, blue people are white.
((("someone" "is" "big" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
Furry people are nice.
((("someone" "is" "furry" "+")) -> ("someone" "is" "nice" "+"))
If Dave is furry and Dave is nice then Dave is quiet.
((("Dave" "is" "furry" "+") ("Dave" "is" "nice" "+")) -> ("Dave" "is" "quiet" "+"))
Big people are furry.
((("someone" "is" "big" "+")) -> ("someone" "is" "furry" "+"))
Furry people are white.
((("someone" "is" "furry" "+")) -> ("someone" "is" "white" "+"))
Dave is white.
True
1
proof
[(triple7 OR ((triple3) -> rule6) OR ((triple5) -> rule1) OR ((triple1 triple2) -> rule2) OR ((((triple1) -> rule5)) -> rule6) OR ((((triple3) -> rule3)) -> rule1) OR ((((((triple1) -> rule5)) -> rule3)) -> rule1))]
("Dave" "is" "white" "+")
triple7
((triple3) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple5) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple1 triple2) -> (rule2 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((((triple1) -> (rule5 % int2))) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
((((triple3) -> (rule3 % int2))) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((((triple1) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
Dave is not blue.
False
1
inv-proof
[(triple2)]
("Dave" "is" "blue" "-")
triple2
@0: Dave is big.[(triple1)] Dave is blue.[(triple2)] Dave is furry.[(triple3 OR ((triple1) -> rule5))] Dave is kind.[(triple4)] Dave is nice.[(triple5 OR ((triple3) -> rule3) OR ((((triple1) -> rule5)) -> rule3))] Dave is quiet.[(triple6 OR ((triple3 triple5) -> rule4) OR ((triple3 ((triple3) -> rule3)) -> rule4) OR ((((triple1) -> rule5) triple5) -> rule4) OR ((((triple1) -> rule5) ((triple3) -> rule3)) -> rule4) OR ((triple3 ((((triple1) -> rule5)) -> rule3)) -> rule4) OR ((((triple1) -> rule5) ((((triple1) -> rule5)) -> rule3)) -> rule4))] Dave is white.[(triple7 OR ((triple3) -> rule6) OR ((triple5) -> rule1) OR ((triple1 triple2) -> rule2) OR ((((triple1) -> rule5)) -> rule6) OR ((((triple3) -> rule3)) -> rule1) OR ((((((triple1) -> rule5)) -> rule3)) -> rule1))]
Dave is big.
("Dave" "is" "big" "+")
triple1
Dave is blue.
("Dave" "is" "blue" "+")
triple2
Dave is furry.
("Dave" "is" "furry" "+")
triple3
((triple1) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
triple4
Dave is nice.
("Dave" "is" "nice" "+")
triple5
((triple3) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((((triple1) -> (rule5 % int2))) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
triple6
((triple3 triple5) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
((triple3 ((triple3) -> (rule3 % int2))) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple1) -> (rule5 % int2)) triple5) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
((((triple1) -> (rule5 % int3)) ((triple3) -> (rule3 % int2))) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
((triple3 ((((triple1) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
((((triple1) -> (rule5 % int3)) ((((triple1) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
triple7
((triple3) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple5) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple1 triple2) -> (rule2 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((((triple1) -> (rule5 % int2))) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
((((triple3) -> (rule3 % int2))) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((((triple1) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3