Erin is big. Erin is red. Erin is rough. Erin is round. Gary is big. Gary is red. Gary is rough. All red, round people are big. All rough people are big. Nice, round people are quiet. All rough people are cold. If someone is cold then they are nice. All quiet, red people are nice. All round, nice people are rough. Quiet, nice people are round.
Erin is big.
("Erin" "is" "big" "+")
Erin is red.
("Erin" "is" "red" "+")
Erin is rough.
("Erin" "is" "rough" "+")
Erin is round.
("Erin" "is" "round" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is red.
("Gary" "is" "red" "+")
Gary is rough.
("Gary" "is" "rough" "+")
All red, round people are big.
((("someone" "is" "red" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "big" "+"))
All rough people are big.
((("someone" "is" "rough" "+")) -> ("someone" "is" "big" "+"))
Nice, round people are quiet.
((("someone" "is" "nice" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "quiet" "+"))
All rough people are cold.
((("someone" "is" "rough" "+")) -> ("someone" "is" "cold" "+"))
If someone is cold then they are nice.
((("someone" "is" "cold" "+")) -> ("someone" "is" "nice" "+"))
All quiet, red people are nice.
((("someone" "is" "quiet" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "nice" "+"))
All round, nice people are rough.
((("someone" "is" "round" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "rough" "+"))
Quiet, nice people are round.
((("someone" "is" "quiet" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "round" "+"))
Erin is red.
True
1
proof
[(triple2)]
("Erin" "is" "red" "+")
triple2
Erin is not red.
False
1
inv-proof
[(triple2)]
("Erin" "is" "red" "-")
triple2
@0: Erin is big.[(triple1 OR ((triple3) -> rule2) OR ((triple2 triple4) -> rule1))] Erin is red.[(triple2)] Erin is rough.[(triple3)] Erin is round.[(triple4)] Gary is big.[(triple5 OR ((triple7) -> rule2))] Gary is red.[(triple6)] Gary is rough.[(triple7)] @1: Erin is cold.[(((triple3) -> rule4))] Gary is cold.[(((triple7) -> rule4))] @2: Erin is nice.[(((((triple3) -> rule4)) -> rule5))] Gary is nice.[(((((triple7) -> rule4)) -> rule5))] @3: Erin is quiet.[(((((((triple3) -> rule4)) -> rule5) triple4) -> rule3))]
Erin is big.
("Erin" "is" "big" "+")
triple1
((triple3) -> (rule2 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
((triple2 triple4) -> (rule1 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
triple2
Erin is rough.
("Erin" "is" "rough" "+")
triple3
Erin is round.
("Erin" "is" "round" "+")
triple4
Gary is big.
("Gary" "is" "big" "+")
triple5
((triple7) -> (rule2 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
triple6
Gary is rough.
("Gary" "is" "rough" "+")
triple7
Erin is cold.
("Erin" "is" "cold" "+")
((triple3) -> (rule4 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
((triple7) -> (rule4 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
((((triple3) -> (rule4 % int2))) -> (rule5 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
((((triple7) -> (rule4 % int2))) -> (rule5 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Erin is quiet.
("Erin" "is" "quiet" "+")
((((((triple3) -> (rule4 % int3))) -> (rule5 % int2)) triple4) -> (rule3 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3