Bob is blue. Bob is nice. Bob is quiet. Bob is rough. Dave is big. Dave is blue. Dave is kind. Dave is quiet. Dave is rough. Dave is white. If someone is nice then they are kind. If Bob is rough then Bob is nice. If Bob is nice then Bob is not big. If someone is nice and not big then they are white. If someone is white and nice then they are blue. If someone is rough and not white then they are not blue.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is white.
("Dave" "is" "white" "+")
If someone is nice then they are kind.
((("someone" "is" "nice" "+")) -> ("someone" "is" "kind" "+"))
If Bob is rough then Bob is nice.
((("Bob" "is" "rough" "+")) -> ("Bob" "is" "nice" "+"))
If Bob is nice then Bob is not big.
((("Bob" "is" "nice" "+")) -> ("Bob" "is" "big" "-"))
If someone is nice and not big then they are white.
((("someone" "is" "nice" "+") ("someone" "is" "big" "~")) -> ("someone" "is" "white" "+"))
If someone is white and nice then they are blue.
((("someone" "is" "white" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
If someone is rough and not white then they are not blue.
((("someone" "is" "rough" "+") ("someone" "is" "white" "~")) -> ("someone" "is" "blue" "-"))
Dave is white.
True
1
proof
[(triple10)]
("Dave" "is" "white" "+")
triple10
Bob is not rough.
False
1
inv-proof
[(triple4)]
("Bob" "is" "rough" "-")
triple4
Bob is kind.
True
2
proof
[(((triple2) -> rule1) OR ((((triple4) -> rule2)) -> rule1))]
("Bob" "is" "kind" "+")
((triple2) -> (rule1 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule1 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is not kind.
False
2
inv-proof
[(((triple2) -> rule1) OR ((((triple4) -> rule2)) -> rule1))]
("Bob" "is" "kind" "-")
((triple2) -> (rule1 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule1 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is white.
True
4
proof
[(((triple2 ((triple2) -> rule3)) -> rule4) OR ((((triple4) -> rule2) ((triple2) -> rule3)) -> rule4) OR ((triple2 ((((triple4) -> rule2)) -> rule3)) -> rule4) OR ((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule3)) -> rule4))]
("Bob" "is" "white" "+")
((triple2 ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
((((triple4) -> (rule2 % int3)) ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple2 ((((triple4) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple4) -> (rule2 % int3)) ((((triple4) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is not white.
False
4
inv-proof
[(((triple2 ((triple2) -> rule3)) -> rule4) OR ((((triple4) -> rule2) ((triple2) -> rule3)) -> rule4) OR ((triple2 ((((triple4) -> rule2)) -> rule3)) -> rule4) OR ((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule3)) -> rule4))]
("Bob" "is" "white" "-")
((triple2 ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
((((triple4) -> (rule2 % int3)) ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple2 ((((triple4) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple4) -> (rule2 % int3)) ((((triple4) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
@0: Bob is blue.[(triple1 OR ((((triple2 ((triple2) -> rule3)) -> rule4) triple2) -> rule5) OR ((((triple2 ((triple2) -> rule3)) -> rule4) ((triple4) -> rule2)) -> rule5) OR ((((((triple4) -> rule2) ((triple2) -> rule3)) -> rule4) triple2) -> rule5) OR ((((((triple4) -> rule2) ((triple2) -> rule3)) -> rule4) ((triple4) -> rule2)) -> rule5) OR ((((triple2 ((((triple4) -> rule2)) -> rule3)) -> rule4) triple2) -> rule5) OR ((((triple2 ((((triple4) -> rule2)) -> rule3)) -> rule4) ((triple4) -> rule2)) -> rule5) OR ((((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule3)) -> rule4) triple2) -> rule5) OR ((((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule3)) -> rule4) ((triple4) -> rule2)) -> rule5))] Bob is nice.[(triple2 OR ((triple4) -> rule2))] Bob is quiet.[(triple3)] Bob is rough.[(triple4)] Dave is big.[(triple5)] Dave is blue.[(triple6)] Dave is kind.[(triple7)] Dave is quiet.[(triple8)] Dave is rough.[(triple9)] Dave is white.[(triple10)] @1: Bob is kind.[(((triple2) -> rule1) OR ((((triple4) -> rule2)) -> rule1))] Bob is not big.[(((triple2) -> rule3) OR ((((triple4) -> rule2)) -> rule3))] @2: Bob is white.[(((triple2 ((triple2) -> rule3)) -> rule4) OR ((((triple4) -> rule2) ((triple2) -> rule3)) -> rule4) OR ((triple2 ((((triple4) -> rule2)) -> rule3)) -> rule4) OR ((((triple4) -> rule2) ((((triple4) -> rule2)) -> rule3)) -> rule4))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((((triple2 ((triple2) -> (rule3 % int3))) -> (rule4 % int2)) triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
((((triple2 ((triple2) -> (rule3 % int4))) -> (rule4 % int3)) ((triple4) -> (rule2 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is not big.
("Bob" "is" "big" "-")
int4
((((((triple4) -> (rule2 % int4)) ((triple2) -> (rule3 % int3))) -> (rule4 % int2)) triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
((((((triple4) -> (rule2 % int4)) ((triple2) -> (rule3 % int3))) -> (rule4 % int2)) ((triple4) -> (rule2 % int4))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
((((triple2 ((((triple4) -> (rule2 % int4))) -> (rule3 % int3))) -> (rule4 % int2)) triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
((((triple2 ((((triple4) -> (rule2 % int4))) -> (rule3 % int3))) -> (rule4 % int2)) ((triple4) -> (rule2 % int4))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
((((((triple4) -> (rule2 % int4)) ((((triple4) -> (rule2 % int4))) -> (rule3 % int3))) -> (rule4 % int2)) triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
((((((triple4) -> (rule2 % int4)) ((((triple4) -> (rule2 % int4))) -> (rule3 % int3))) -> (rule4 % int2)) ((triple4) -> (rule2 % int4))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
Bob is nice.
("Bob" "is" "nice" "+")
triple2
((triple4) -> (rule2 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple3
Bob is rough.
("Bob" "is" "rough" "+")
triple4
Dave is big.
("Dave" "is" "big" "+")
triple5
Dave is blue.
("Dave" "is" "blue" "+")
triple6
Dave is kind.
("Dave" "is" "kind" "+")
triple7
Dave is quiet.
("Dave" "is" "quiet" "+")
triple8
Dave is rough.
("Dave" "is" "rough" "+")
triple9
Dave is white.
("Dave" "is" "white" "+")
triple10
Bob is kind.
("Bob" "is" "kind" "+")
((triple2) -> (rule1 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule1 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is not big.
("Bob" "is" "big" "-")
((triple2) -> (rule3 % int1))
Bob is not big.
("Bob" "is" "big" "-")
int1
((((triple4) -> (rule2 % int2))) -> (rule3 % int1))
Bob is not big.
("Bob" "is" "big" "-")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
((triple2 ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
((((triple4) -> (rule2 % int3)) ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple2 ((((triple4) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple4) -> (rule2 % int3)) ((((triple4) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not big.
("Bob" "is" "big" "-")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3