Bob is big. Bob is cold. Bob is kind. Bob is quiet. Bob is smart. Charlie is big. Charlie is cold. Charlie is not kind. Charlie is quiet. Charlie is red. Charlie is rough. Charlie is not smart. If something is kind and not cold then it is quiet. If Bob is rough and Bob is big then Bob is red. If something is smart and red then it is rough. Kind things are big. All quiet things are red. Quiet, smart things are kind.
Bob is big.
("Bob" "is" "big" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is not kind.
("Charlie" "is" "kind" "-")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is not smart.
("Charlie" "is" "smart" "-")
If something is kind and not cold then it is quiet.
((("something" "is" "kind" "+") ("something" "is" "cold" "~")) -> ("something" "is" "quiet" "+"))
If Bob is rough and Bob is big then Bob is red.
((("Bob" "is" "rough" "+") ("Bob" "is" "big" "+")) -> ("Bob" "is" "red" "+"))
If something is smart and red then it is rough.
((("something" "is" "smart" "+") ("something" "is" "red" "+")) -> ("something" "is" "rough" "+"))
Kind things are big.
((("something" "is" "kind" "+")) -> ("something" "is" "big" "+"))
All quiet things are red.
((("something" "is" "quiet" "+")) -> ("something" "is" "red" "+"))
Quiet, smart things are kind.
((("something" "is" "quiet" "+") ("something" "is" "smart" "+")) -> ("something" "is" "kind" "+"))
Charlie is not kind.
True
1
proof
[(triple8)]
("Charlie" "is" "kind" "-")
triple8
Charlie is smart.
False
1
inv-proof
[(triple12)]
("Charlie" "is" "smart" "+")
triple12
Bob is red.
True
2
proof
[(((triple4) -> rule5))]
("Bob" "is" "red" "+")
((triple4) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is not red.
False
2
inv-proof
[(((triple4) -> rule5))]
("Bob" "is" "red" "-")
((triple4) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
True
4
proof
[(((triple5 ((triple4) -> rule5)) -> rule3))]
("Bob" "is" "rough" "+")
((triple5 ((triple4) -> (rule5 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is not rough.
False
4
inv-proof
[(((triple5 ((triple4) -> rule5)) -> rule3))]
("Bob" "is" "rough" "-")
((triple5 ((triple4) -> (rule5 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
@0: Bob is big.[(triple1 OR ((triple3) -> rule4) OR ((((triple4 triple5) -> rule6)) -> rule4))] Bob is cold.[(triple2)] Bob is kind.[(triple3 OR ((triple4 triple5) -> rule6))] Bob is quiet.[(triple4)] Bob is smart.[(triple5)] Charlie is big.[(triple6)] Charlie is cold.[(triple7)] Charlie is not kind.[(triple8)] Charlie is not smart.[(triple12)] Charlie is quiet.[(triple9)] Charlie is red.[(triple10 OR ((triple9) -> rule5))] Charlie is rough.[(triple11)] @1: Bob is red.[(((triple4) -> rule5))] @2: Bob is rough.[(((triple5 ((triple4) -> rule5)) -> rule3))]
Bob is big.
("Bob" "is" "big" "+")
triple1
((triple3) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((((triple4 triple5) -> (rule6 % int2))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
triple2
Bob is kind.
("Bob" "is" "kind" "+")
triple3
((triple4 triple5) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple4
Bob is smart.
("Bob" "is" "smart" "+")
triple5
Charlie is big.
("Charlie" "is" "big" "+")
triple6
Charlie is cold.
("Charlie" "is" "cold" "+")
triple7
Charlie is not kind.
("Charlie" "is" "kind" "-")
triple8
Charlie is not smart.
("Charlie" "is" "smart" "-")
triple12
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple9
Charlie is red.
("Charlie" "is" "red" "+")
triple10
((triple9) -> (rule5 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
triple11
Bob is red.
("Bob" "is" "red" "+")
((triple4) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
((triple5 ((triple4) -> (rule5 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2