Charlie is nice. Charlie is red. Charlie is smart. Gary is cold. Gary is nice. Gary is quiet. Gary is red. Gary is rough. Gary is smart. Gary is white. If Charlie is nice and Charlie is red then Charlie is quiet. Rough, red people are white. All rough people are cold. Nice, cold people are smart. If someone is quiet and smart then they are cold. If Charlie is cold then Charlie is red. If Gary is red then Gary is rough. If someone is quiet then they are white.
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is quiet.
("Gary" "is" "quiet" "+")
Gary is red.
("Gary" "is" "red" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Gary is white.
("Gary" "is" "white" "+")
If Charlie is nice and Charlie is red then Charlie is quiet.
((("Charlie" "is" "nice" "+") ("Charlie" "is" "red" "+")) -> ("Charlie" "is" "quiet" "+"))
Rough, red people are white.
((("someone" "is" "rough" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "white" "+"))
All rough people are cold.
((("someone" "is" "rough" "+")) -> ("someone" "is" "cold" "+"))
Nice, cold people are smart.
((("someone" "is" "nice" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "smart" "+"))
If someone is quiet and smart then they are cold.
((("someone" "is" "quiet" "+") ("someone" "is" "smart" "+")) -> ("someone" "is" "cold" "+"))
If Charlie is cold then Charlie is red.
((("Charlie" "is" "cold" "+")) -> ("Charlie" "is" "red" "+"))
If Gary is red then Gary is rough.
((("Gary" "is" "red" "+")) -> ("Gary" "is" "rough" "+"))
If someone is quiet then they are white.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "white" "+"))
Gary is smart.
True
1
proof
[(triple9 OR ((triple5 triple4) -> rule4) OR ((triple5 ((triple8) -> rule3)) -> rule4) OR ((triple5 ((((triple7) -> rule7)) -> rule3)) -> rule4))]
("Gary" "is" "smart" "+")
triple9
((triple5 triple4) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
((triple5 ((triple8) -> (rule3 % int2))) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
((triple5 ((((triple7) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Charlie is not nice.
False
1
inv-proof
[(triple1)]
("Charlie" "is" "nice" "-")
triple1
@0: Charlie is nice.[(triple1)] Charlie is red.[(triple2)] Charlie is smart.[(triple3)] Gary is cold.[(triple4 OR ((triple8) -> rule3) OR ((triple6 triple9) -> rule5) OR ((((triple7) -> rule7)) -> rule3))] Gary is nice.[(triple5)] Gary is quiet.[(triple6)] Gary is red.[(triple7)] Gary is rough.[(triple8 OR ((triple7) -> rule7))] Gary is smart.[(triple9 OR ((triple5 triple4) -> rule4) OR ((triple5 ((triple8) -> rule3)) -> rule4) OR ((triple5 ((((triple7) -> rule7)) -> rule3)) -> rule4))] Gary is white.[(triple10 OR ((triple6) -> rule8) OR ((triple8 triple7) -> rule2) OR ((((triple7) -> rule7) triple7) -> rule2))] @1: Charlie is quiet.[(((triple1 triple2) -> rule1))] @2: Charlie is cold.[(((((triple1 triple2) -> rule1) triple3) -> rule5))] Charlie is white.[(((((triple1 triple2) -> rule1)) -> rule8))]
Charlie is nice.
("Charlie" "is" "nice" "+")
triple1
Charlie is red.
("Charlie" "is" "red" "+")
triple2
Charlie is smart.
("Charlie" "is" "smart" "+")
triple3
Gary is cold.
("Gary" "is" "cold" "+")
triple4
((triple8) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
((triple6 triple9) -> (rule5 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
((((triple7) -> (rule7 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
triple5
Gary is quiet.
("Gary" "is" "quiet" "+")
triple6
Gary is red.
("Gary" "is" "red" "+")
triple7
Gary is rough.
("Gary" "is" "rough" "+")
triple8
((triple7) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
triple9
((triple5 triple4) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
((triple5 ((triple8) -> (rule3 % int2))) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
((triple5 ((((triple7) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Gary is white.
("Gary" "is" "white" "+")
triple10
((triple6) -> (rule8 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
((triple8 triple7) -> (rule2 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
((((triple7) -> (rule7 % int2)) triple7) -> (rule2 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
((triple1 triple2) -> (rule1 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
((((triple1 triple2) -> (rule1 % int2)) triple3) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
((((triple1 triple2) -> (rule1 % int2))) -> (rule8 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2