Fiona is blue. Fiona is cold. Fiona is furry. Fiona is green. Fiona is quiet. Fiona is red. Fiona is white. All blue people are quiet. If Fiona is cold and Fiona is green then Fiona is red. All furry people are white. Red, blue people are white. All green, blue people are cold. If someone is white then they are red. All green people are furry. All blue, quiet people are furry.
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is white.
("Fiona" "is" "white" "+")
All blue people are quiet.
((("someone" "is" "blue" "+")) -> ("someone" "is" "quiet" "+"))
If Fiona is cold and Fiona is green then Fiona is red.
((("Fiona" "is" "cold" "+") ("Fiona" "is" "green" "+")) -> ("Fiona" "is" "red" "+"))
All furry people are white.
((("someone" "is" "furry" "+")) -> ("someone" "is" "white" "+"))
Red, blue people are white.
((("someone" "is" "red" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
All green, blue people are cold.
((("someone" "is" "green" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "cold" "+"))
If someone is white then they are red.
((("someone" "is" "white" "+")) -> ("someone" "is" "red" "+"))
All green people are furry.
((("someone" "is" "green" "+")) -> ("someone" "is" "furry" "+"))
All blue, quiet people are furry.
((("someone" "is" "blue" "+") ("someone" "is" "quiet" "+")) -> ("someone" "is" "furry" "+"))
Fiona is red.
True
1
proof
[(triple6 OR ((triple7) -> rule6) OR ((triple2 triple4) -> rule2) OR ((((triple3) -> rule3)) -> rule6) OR ((((triple4 triple1) -> rule5) triple4) -> rule2) OR ((((((triple4) -> rule7)) -> rule3)) -> rule6) OR ((((((triple1 triple5) -> rule8)) -> rule3)) -> rule6) OR ((((((triple1 ((triple1) -> rule1)) -> rule8)) -> rule3)) -> rule6))]
("Fiona" "is" "red" "+")
triple6
((triple7) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple2 triple4) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
((((triple4 triple1) -> (rule5 % int2)) triple4) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((((triple4) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((((triple1 triple5) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((((triple1 ((triple1) -> (rule1 % int4))) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
Fiona is not furry.
False
1
inv-proof
[(triple3 OR ((triple4) -> rule7) OR ((triple1 triple5) -> rule8) OR ((triple1 ((triple1) -> rule1)) -> rule8))]
("Fiona" "is" "furry" "-")
triple3
((triple4) -> (rule7 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple1 triple5) -> (rule8 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple1 ((triple1) -> (rule1 % int2))) -> (rule8 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
@0: Fiona is blue.[(triple1)] Fiona is cold.[(triple2 OR ((triple4 triple1) -> rule5))] Fiona is furry.[(triple3 OR ((triple4) -> rule7) OR ((triple1 triple5) -> rule8) OR ((triple1 ((triple1) -> rule1)) -> rule8))] Fiona is green.[(triple4)] Fiona is quiet.[(triple5 OR ((triple1) -> rule1))] Fiona is red.[(triple6 OR ((triple7) -> rule6) OR ((triple2 triple4) -> rule2) OR ((((triple3) -> rule3)) -> rule6) OR ((((triple4 triple1) -> rule5) triple4) -> rule2) OR ((((((triple4) -> rule7)) -> rule3)) -> rule6) OR ((((((triple1 triple5) -> rule8)) -> rule3)) -> rule6) OR ((((((triple1 ((triple1) -> rule1)) -> rule8)) -> rule3)) -> rule6))] Fiona is white.[(triple7 OR ((triple3) -> rule3) OR ((triple6 triple1) -> rule4) OR ((((triple4) -> rule7)) -> rule3) OR ((((triple1 triple5) -> rule8)) -> rule3) OR ((((triple2 triple4) -> rule2) triple1) -> rule4) OR ((((triple1 ((triple1) -> rule1)) -> rule8)) -> rule3) OR ((((((triple4 triple1) -> rule5) triple4) -> rule2) triple1) -> rule4))]
Fiona is blue.
("Fiona" "is" "blue" "+")
triple1
Fiona is cold.
("Fiona" "is" "cold" "+")
triple2
((triple4 triple1) -> (rule5 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
triple3
((triple4) -> (rule7 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple1 triple5) -> (rule8 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple1 ((triple1) -> (rule1 % int2))) -> (rule8 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
triple4
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple5
((triple1) -> (rule1 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
triple6
((triple7) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple2 triple4) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
((((triple4 triple1) -> (rule5 % int2)) triple4) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((((triple4) -> (rule7 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((((triple1 triple5) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((((triple1 ((triple1) -> (rule1 % int4))) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int4
Fiona is white.
("Fiona" "is" "white" "+")
triple7
((triple3) -> (rule3 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((triple6 triple1) -> (rule4 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((((triple4) -> (rule7 % int2))) -> (rule3 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
((((triple1 triple5) -> (rule8 % int2))) -> (rule3 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
((((triple2 triple4) -> (rule2 % int2)) triple1) -> (rule4 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple1 ((triple1) -> (rule1 % int3))) -> (rule8 % int2))) -> (rule3 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int3
((((((triple4 triple1) -> (rule5 % int3)) triple4) -> (rule2 % int2)) triple1) -> (rule4 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3