Bob is cold. Bob is nice. Bob is red. Bob is round. Bob is white. Charlie is cold. Charlie is nice. Charlie is red. Charlie is rough. Charlie is round. Charlie is smart. Charlie is white. Harry is cold. Harry is round. Harry is smart. Harry is white. If Charlie is smart then Charlie is nice. All cold, round things are rough. If Bob is round and Bob is rough then Bob is smart. If something is white and round then it is nice. All smart, round things are cold. If something is rough then it is round. All red things are smart. Smart things are rough.
Bob is cold.
("Bob" "is" "cold" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is round.
("Bob" "is" "round" "+")
Bob is white.
("Bob" "is" "white" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is round.
("Harry" "is" "round" "+")
Harry is smart.
("Harry" "is" "smart" "+")
Harry is white.
("Harry" "is" "white" "+")
If Charlie is smart then Charlie is nice.
((("Charlie" "is" "smart" "+")) -> ("Charlie" "is" "nice" "+"))
All cold, round things are rough.
((("something" "is" "cold" "+") ("something" "is" "round" "+")) -> ("something" "is" "rough" "+"))
If Bob is round and Bob is rough then Bob is smart.
((("Bob" "is" "round" "+") ("Bob" "is" "rough" "+")) -> ("Bob" "is" "smart" "+"))
If something is white and round then it is nice.
((("something" "is" "white" "+") ("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
All smart, round things are cold.
((("something" "is" "smart" "+") ("something" "is" "round" "+")) -> ("something" "is" "cold" "+"))
If something is rough then it is round.
((("something" "is" "rough" "+")) -> ("something" "is" "round" "+"))
All red things are smart.
((("something" "is" "red" "+")) -> ("something" "is" "smart" "+"))
Smart things are rough.
((("something" "is" "smart" "+")) -> ("something" "is" "rough" "+"))
Harry is smart.
True
1
proof
[(triple15)]
("Harry" "is" "smart" "+")
triple15
Charlie is not rough.
False
1
inv-proof
[(triple9 OR ((triple11) -> rule8) OR ((triple6 triple10) -> rule2) OR ((((triple8) -> rule7)) -> rule8) OR ((((triple11 triple10) -> rule5) triple10) -> rule2) OR ((((((triple8) -> rule7) triple10) -> rule5) triple10) -> rule2))]
("Charlie" "is" "rough" "-")
triple9
((triple11) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((triple6 triple10) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple8) -> (rule7 % int2))) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
((((triple11 triple10) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
((((((triple8) -> (rule7 % int3)) triple10) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Bob is rough.
True
3
proof
[(((triple1 triple4) -> rule2) OR ((((triple3) -> rule7)) -> rule8) OR ((((((triple3) -> rule7) triple4) -> rule5) triple4) -> rule2))]
("Bob" "is" "rough" "+")
((triple1 triple4) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple3) -> (rule7 % int2))) -> (rule8 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
((((((triple3) -> (rule7 % int3)) triple4) -> (rule5 % int2)) triple4) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
Bob is not smart.
False
2
inv-proof
[(((triple3) -> rule7) OR ((triple4 ((triple1 triple4) -> rule2)) -> rule3))]
("Bob" "is" "smart" "-")
((triple3) -> (rule7 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
((triple4 ((triple1 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
@0: Bob is cold.[(triple1 OR ((((triple3) -> rule7) triple4) -> rule5) OR ((((triple3) -> rule7) ((((((triple3) -> rule7)) -> rule8)) -> rule6)) -> rule5))] Bob is nice.[(triple2 OR ((triple5 triple4) -> rule4) OR ((triple5 ((((((triple3) -> rule7)) -> rule8)) -> rule6)) -> rule4))] Bob is red.[(triple3)] Bob is round.[(triple4 OR ((((((triple3) -> rule7)) -> rule8)) -> rule6))] Bob is white.[(triple5)] Charlie is cold.[(triple6 OR ((triple11 triple10) -> rule5) OR ((triple11 ((triple9) -> rule6)) -> rule5) OR ((((triple8) -> rule7) triple10) -> rule5) OR ((((triple8) -> rule7) ((triple9) -> rule6)) -> rule5) OR ((triple11 ((((triple11) -> rule8)) -> rule6)) -> rule5) OR ((((triple8) -> rule7) ((((triple11) -> rule8)) -> rule6)) -> rule5) OR ((triple11 ((((((triple8) -> rule7)) -> rule8)) -> rule6)) -> rule5) OR ((((triple8) -> rule7) ((((((triple8) -> rule7)) -> rule8)) -> rule6)) -> rule5))] Charlie is nice.[(triple7 OR ((triple11) -> rule1) OR ((triple12 triple10) -> rule4) OR ((((triple8) -> rule7)) -> rule1) OR ((triple12 ((triple9) -> rule6)) -> rule4) OR ((triple12 ((((triple11) -> rule8)) -> rule6)) -> rule4) OR ((triple12 ((((((triple8) -> rule7)) -> rule8)) -> rule6)) -> rule4))] Charlie is red.[(triple8)] Charlie is rough.[(triple9 OR ((triple11) -> rule8) OR ((triple6 triple10) -> rule2) OR ((((triple8) -> rule7)) -> rule8) OR ((((triple11 triple10) -> rule5) triple10) -> rule2) OR ((((((triple8) -> rule7) triple10) -> rule5) triple10) -> rule2))] Charlie is round.[(triple10 OR ((triple9) -> rule6) OR ((((triple11) -> rule8)) -> rule6) OR ((((((triple8) -> rule7)) -> rule8)) -> rule6))] Charlie is smart.[(triple11 OR ((triple8) -> rule7))] Charlie is white.[(triple12)] Harry is cold.[(triple13 OR ((triple15 triple14) -> rule5) OR ((triple15 ((((triple15) -> rule8)) -> rule6)) -> rule5))] Harry is round.[(triple14 OR ((((triple15) -> rule8)) -> rule6))] Harry is smart.[(triple15)] Harry is white.[(triple16)] @1: Bob is rough.[(((triple1 triple4) -> rule2) OR ((((triple3) -> rule7)) -> rule8) OR ((((((triple3) -> rule7) triple4) -> rule5) triple4) -> rule2))] Bob is smart.[(((triple3) -> rule7) OR ((triple4 ((triple1 triple4) -> rule2)) -> rule3))] Harry is nice.[(((triple16 triple14) -> rule4) OR ((triple16 ((((triple15) -> rule8)) -> rule6)) -> rule4))] Harry is rough.[(((triple15) -> rule8) OR ((triple13 triple14) -> rule2) OR ((((triple15 triple14) -> rule5) triple14) -> rule2))]
Bob is cold.
("Bob" "is" "cold" "+")
triple1
((((triple3) -> (rule7 % int2)) triple4) -> (rule5 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
((((triple3) -> (rule7 % int4)) ((((((triple3) -> (rule7 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is smart.
("Bob" "is" "smart" "+")
int4
Bob is nice.
("Bob" "is" "nice" "+")
triple2
((triple5 triple4) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((triple5 ((((((triple3) -> (rule7 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is smart.
("Bob" "is" "smart" "+")
int4
Bob is red.
("Bob" "is" "red" "+")
triple3
Bob is round.
("Bob" "is" "round" "+")
triple4
((((((triple3) -> (rule7 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
triple5
Charlie is cold.
("Charlie" "is" "cold" "+")
triple6
((triple11 triple10) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((triple11 ((triple9) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple8) -> (rule7 % int2)) triple10) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
((((triple8) -> (rule7 % int3)) ((triple9) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
((triple11 ((((triple11) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple8) -> (rule7 % int4)) ((((triple11) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is smart.
("Charlie" "is" "smart" "+")
int4
((triple11 ((((((triple8) -> (rule7 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is smart.
("Charlie" "is" "smart" "+")
int4
((((triple8) -> (rule7 % int4)) ((((((triple8) -> (rule7 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is smart.
("Charlie" "is" "smart" "+")
int4
Charlie is nice.
("Charlie" "is" "nice" "+")
triple7
((triple11) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((triple12 triple10) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple8) -> (rule7 % int2))) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
((triple12 ((triple9) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((triple12 ((((triple11) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((triple12 ((((((triple8) -> (rule7 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is smart.
("Charlie" "is" "smart" "+")
int4
Charlie is red.
("Charlie" "is" "red" "+")
triple8
Charlie is rough.
("Charlie" "is" "rough" "+")
triple9
((triple11) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((triple6 triple10) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple8) -> (rule7 % int2))) -> (rule8 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
((((triple11 triple10) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
((((((triple8) -> (rule7 % int3)) triple10) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
triple10
((triple9) -> (rule6 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((((triple11) -> (rule8 % int2))) -> (rule6 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((((triple8) -> (rule7 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Charlie is smart.
("Charlie" "is" "smart" "+")
triple11
((triple8) -> (rule7 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
triple12
Harry is cold.
("Harry" "is" "cold" "+")
triple13
((triple15 triple14) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((triple15 ((((triple15) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
triple14
((((triple15) -> (rule8 % int2))) -> (rule6 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
triple15
Harry is white.
("Harry" "is" "white" "+")
triple16
Bob is rough.
("Bob" "is" "rough" "+")
((triple1 triple4) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple3) -> (rule7 % int2))) -> (rule8 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
((((((triple3) -> (rule7 % int3)) triple4) -> (rule5 % int2)) triple4) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
Bob is smart.
("Bob" "is" "smart" "+")
((triple3) -> (rule7 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
((triple4 ((triple1 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
((triple16 triple14) -> (rule4 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((triple16 ((((triple15) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
((triple15) -> (rule8 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((triple13 triple14) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((((triple15 triple14) -> (rule5 % int2)) triple14) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2