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