Bob is big. Bob is green. Bob is nice. Bob is quiet. Bob is red. Charlie is big. Charlie is blue. Charlie is green. Charlie is nice. Charlie is quiet. Charlie is white. Harry is big. Harry is green. Harry is quiet. Harry is red. All nice, red people are blue. If someone is red then they are big. White people are nice. If someone is quiet then they are blue. All blue, big people are white. Blue people are big.
Bob is big.
("Bob" "is" "big" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is red.
("Harry" "is" "red" "+")
All nice, red people are blue.
((("someone" "is" "nice" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "blue" "+"))
If someone is red then they are big.
((("someone" "is" "red" "+")) -> ("someone" "is" "big" "+"))
White people are nice.
((("someone" "is" "white" "+")) -> ("someone" "is" "nice" "+"))
If someone is quiet then they are blue.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "blue" "+"))
All blue, big people are white.
((("someone" "is" "blue" "+") ("someone" "is" "big" "+")) -> ("someone" "is" "white" "+"))
Blue people are big.
((("someone" "is" "blue" "+")) -> ("someone" "is" "big" "+"))
Harry is quiet.
True
1
proof
[(triple14)]
("Harry" "is" "quiet" "+")
triple14
Bob is not big.
False
1
inv-proof
[(triple1 OR ((triple5) -> rule2) OR ((((triple4) -> rule4)) -> rule6) OR ((((triple3 triple5) -> rule1)) -> rule6))]
("Bob" "is" "big" "-")
triple1
((triple5) -> (rule2 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((((triple4) -> (rule4 % int2))) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple3 triple5) -> (rule1 % int2))) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Harry is blue.
True
2
proof
[(((triple14) -> rule4))]
("Harry" "is" "blue" "+")
((triple14) -> (rule4 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is not blue.
False
2
inv-proof
[(((triple14) -> rule4))]
("Harry" "is" "blue" "-")
((triple14) -> (rule4 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is white.
True
4
proof
[(((((triple14) -> rule4) triple12) -> rule5) OR ((((triple14) -> rule4) ((triple15) -> rule2)) -> rule5) OR ((((triple14) -> rule4) ((((triple14) -> rule4)) -> rule6)) -> rule5))]
("Harry" "is" "white" "+")
((((triple14) -> (rule4 % int2)) triple12) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple15) -> (rule2 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((triple14) -> (rule4 % int3)) ((((triple14) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is not white.
False
4
inv-proof
[(((((triple14) -> rule4) triple12) -> rule5) OR ((((triple14) -> rule4) ((triple15) -> rule2)) -> rule5) OR ((((triple14) -> rule4) ((((triple14) -> rule4)) -> rule6)) -> rule5))]
("Harry" "is" "white" "-")
((((triple14) -> (rule4 % int2)) triple12) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple15) -> (rule2 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((triple14) -> (rule4 % int3)) ((((triple14) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is nice.
True
5
proof
[(((((((triple14) -> rule4) triple12) -> rule5)) -> rule3) OR ((((((triple14) -> rule4) ((triple15) -> rule2)) -> rule5)) -> rule3) OR ((((((triple14) -> rule4) ((((triple14) -> rule4)) -> rule6)) -> rule5)) -> rule3))]
("Harry" "is" "nice" "+")
((((((triple14) -> (rule4 % int3)) triple12) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((((triple14) -> (rule4 % int4)) ((triple15) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
((((((triple14) -> (rule4 % int4)) ((((triple14) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is not nice.
False
5
inv-proof
[(((((((triple14) -> rule4) triple12) -> rule5)) -> rule3) OR ((((((triple14) -> rule4) ((triple15) -> rule2)) -> rule5)) -> rule3) OR ((((((triple14) -> rule4) ((((triple14) -> rule4)) -> rule6)) -> rule5)) -> rule3))]
("Harry" "is" "nice" "-")
((((((triple14) -> (rule4 % int3)) triple12) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((((triple14) -> (rule4 % int4)) ((triple15) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
((((((triple14) -> (rule4 % int4)) ((((triple14) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
@0: Bob is big.[(triple1 OR ((triple5) -> rule2) OR ((((triple4) -> rule4)) -> rule6) OR ((((triple3 triple5) -> rule1)) -> rule6))] Bob is green.[(triple2)] Bob is nice.[(triple3 OR ((((((triple4) -> rule4) triple1) -> rule5)) -> rule3) OR ((((((triple4) -> rule4) ((triple5) -> rule2)) -> rule5)) -> rule3) OR ((((((triple4) -> rule4) ((((triple4) -> rule4)) -> rule6)) -> rule5)) -> rule3))] Bob is quiet.[(triple4)] Bob is red.[(triple5)] Charlie is big.[(triple6 OR ((triple7) -> rule6) OR ((((triple10) -> rule4)) -> rule6))] Charlie is blue.[(triple7 OR ((triple10) -> rule4))] Charlie is green.[(triple8)] Charlie is nice.[(triple9 OR ((triple11) -> rule3) OR ((((triple7 triple6) -> rule5)) -> rule3) OR ((((triple7 ((triple7) -> rule6)) -> rule5)) -> rule3) OR ((((((triple10) -> rule4) triple6) -> rule5)) -> rule3) OR ((((((triple10) -> rule4) ((triple7) -> rule6)) -> rule5)) -> rule3) OR ((((triple7 ((((triple10) -> rule4)) -> rule6)) -> rule5)) -> rule3) OR ((((((triple10) -> rule4) ((((triple10) -> rule4)) -> rule6)) -> rule5)) -> rule3))] Charlie is quiet.[(triple10)] Charlie is white.[(triple11 OR ((triple7 triple6) -> rule5) OR ((triple7 ((triple7) -> rule6)) -> rule5) OR ((((triple10) -> rule4) triple6) -> rule5) OR ((((triple10) -> rule4) ((triple7) -> rule6)) -> rule5) OR ((triple7 ((((triple10) -> rule4)) -> rule6)) -> rule5) OR ((((triple10) -> rule4) ((((triple10) -> rule4)) -> rule6)) -> rule5))] Harry is big.[(triple12 OR ((triple15) -> rule2) OR ((((triple14) -> rule4)) -> rule6))] Harry is green.[(triple13)] Harry is quiet.[(triple14)] Harry is red.[(triple15)] @1: Bob is blue.[(((triple4) -> rule4) OR ((triple3 triple5) -> rule1))] Harry is blue.[(((triple14) -> rule4))] @2: Bob is white.[(((((triple4) -> rule4) triple1) -> rule5) OR ((((triple3 triple5) -> rule1) triple1) -> rule5) OR ((((triple4) -> rule4) ((triple5) -> rule2)) -> rule5) OR ((((triple3 triple5) -> rule1) ((triple5) -> rule2)) -> rule5) OR ((((triple4) -> rule4) ((((triple4) -> rule4)) -> rule6)) -> rule5) OR ((((triple4) -> rule4) ((((triple3 triple5) -> rule1)) -> rule6)) -> rule5) OR ((((triple3 triple5) -> rule1) ((((triple4) -> rule4)) -> rule6)) -> rule5) OR ((((triple3 triple5) -> rule1) ((((triple3 triple5) -> rule1)) -> rule6)) -> rule5))] Harry is white.[(((((triple14) -> rule4) triple12) -> rule5) OR ((((triple14) -> rule4) ((triple15) -> rule2)) -> rule5) OR ((((triple14) -> rule4) ((((triple14) -> rule4)) -> rule6)) -> rule5))] @3: Harry is nice.[(((((((triple14) -> rule4) triple12) -> rule5)) -> rule3) OR ((((((triple14) -> rule4) ((triple15) -> rule2)) -> rule5)) -> rule3) OR ((((((triple14) -> rule4) ((((triple14) -> rule4)) -> rule6)) -> rule5)) -> rule3))]
Bob is big.
("Bob" "is" "big" "+")
triple1
((triple5) -> (rule2 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((((triple4) -> (rule4 % int2))) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple3 triple5) -> (rule1 % int2))) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
triple2
Bob is nice.
("Bob" "is" "nice" "+")
triple3
((((((triple4) -> (rule4 % int3)) triple1) -> (rule5 % int2))) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple4) -> (rule4 % int4)) ((triple5) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is big.
("Bob" "is" "big" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
((((((triple4) -> (rule4 % int4)) ((((triple4) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is big.
("Bob" "is" "big" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is quiet.
("Bob" "is" "quiet" "+")
triple4
Bob is red.
("Bob" "is" "red" "+")
triple5
Charlie is big.
("Charlie" "is" "big" "+")
triple6
((triple7) -> (rule6 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
((((triple10) -> (rule4 % int2))) -> (rule6 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
triple7
((triple10) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
triple8
Charlie is nice.
("Charlie" "is" "nice" "+")
triple9
((triple11) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple7 triple6) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple7 ((triple7) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
((((((triple10) -> (rule4 % int3)) triple6) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple10) -> (rule4 % int4)) ((triple7) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((triple7 ((((triple10) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((((triple10) -> (rule4 % int4)) ((((triple10) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple10
Charlie is white.
("Charlie" "is" "white" "+")
triple11
((triple7 triple6) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((triple7 ((triple7) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
((((triple10) -> (rule4 % int2)) triple6) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((triple10) -> (rule4 % int3)) ((triple7) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((triple7 ((((triple10) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((triple10) -> (rule4 % int3)) ((((triple10) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Harry is big.
("Harry" "is" "big" "+")
triple12
((triple15) -> (rule2 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
((((triple14) -> (rule4 % int2))) -> (rule6 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
triple13
Harry is quiet.
("Harry" "is" "quiet" "+")
triple14
Harry is red.
("Harry" "is" "red" "+")
triple15
Bob is blue.
("Bob" "is" "blue" "+")
((triple4) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple3 triple5) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
((triple14) -> (rule4 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
((((triple4) -> (rule4 % int2)) triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple3 triple5) -> (rule1 % int2)) triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple4) -> (rule4 % int3)) ((triple5) -> (rule2 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((triple3 triple5) -> (rule1 % int3)) ((triple5) -> (rule2 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((triple4) -> (rule4 % int3)) ((((triple4) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((triple4) -> (rule4 % int3)) ((((triple3 triple5) -> (rule1 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((triple3 triple5) -> (rule1 % int3)) ((((triple4) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((triple3 triple5) -> (rule1 % int3)) ((((triple3 triple5) -> (rule1 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
((((triple14) -> (rule4 % int2)) triple12) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple15) -> (rule2 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((triple14) -> (rule4 % int3)) ((((triple14) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
((((((triple14) -> (rule4 % int3)) triple12) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((((triple14) -> (rule4 % int4)) ((triple15) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
((((((triple14) -> (rule4 % int4)) ((((triple14) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4