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