Charlie is big. Charlie is cold. Charlie is green. Charlie is nice. Charlie is rough. Harry is big. Harry is blue. Harry is not cold. Harry is not green. Harry is nice. Harry is red. Harry is rough. All rough people are blue. If someone is blue and not green then they are nice. If someone is red and not rough then they are nice.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is not cold.
("Harry" "is" "cold" "-")
Harry is not green.
("Harry" "is" "green" "-")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is rough.
("Harry" "is" "rough" "+")
All rough people are blue.
((("someone" "is" "rough" "+")) -> ("someone" "is" "blue" "+"))
If someone is blue and not green then they are nice.
((("someone" "is" "blue" "+") ("someone" "is" "green" "~")) -> ("someone" "is" "nice" "+"))
If someone is red and not rough then they are nice.
((("someone" "is" "red" "+") ("someone" "is" "rough" "~")) -> ("someone" "is" "nice" "+"))
Charlie is nice.
True
1
proof
[(triple4)]
("Charlie" "is" "nice" "+")
triple4
Harry is not rough.
False
1
inv-proof
[(triple12)]
("Harry" "is" "rough" "-")
triple12
Charlie is blue.
True
2
proof
[(((triple5) -> rule1))]
("Charlie" "is" "blue" "+")
((triple5) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is not blue.
False
2
inv-proof
[(((triple5) -> rule1))]
("Charlie" "is" "blue" "-")
((triple5) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
@0: Charlie is big.[(triple1)] Charlie is cold.[(triple2)] Charlie is green.[(triple3)] Charlie is nice.[(triple4)] Charlie is rough.[(triple5)] Harry is big.[(triple6)] Harry is blue.[(triple7 OR ((triple12) -> rule1))] Harry is nice.[(triple10 OR ((triple7 triple9) -> rule2) OR ((((triple12) -> rule1) triple9) -> rule2))] Harry is not cold.[(triple8)] Harry is not green.[(triple9)] Harry is red.[(triple11)] Harry is rough.[(triple12)] @1: Charlie is blue.[(((triple5) -> rule1))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple2
Charlie is green.
("Charlie" "is" "green" "+")
triple3
Charlie is nice.
("Charlie" "is" "nice" "+")
triple4
Charlie is rough.
("Charlie" "is" "rough" "+")
triple5
Harry is big.
("Harry" "is" "big" "+")
triple6
Harry is blue.
("Harry" "is" "blue" "+")
triple7
((triple12) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
triple10
((triple7 triple9) -> (rule2 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple12) -> (rule1 % int2)) triple9) -> (rule2 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is not cold.
("Harry" "is" "cold" "-")
triple8
Harry is not green.
("Harry" "is" "green" "-")
triple9
Harry is red.
("Harry" "is" "red" "+")
triple11
Harry is rough.
("Harry" "is" "rough" "+")
triple12
Charlie is blue.
("Charlie" "is" "blue" "+")
((triple5) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1