Fiona is furry. Fiona is red. Fiona is white. If someone is furry and red then they are cold. If someone is kind and red then they are blue. Cold people are kind. If someone is red and cold then they are not big. Kind, cold people are furry. All red people are furry.
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is white.
("Fiona" "is" "white" "+")
If someone is furry and red then they are cold.
((("someone" "is" "furry" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "cold" "+"))
If someone is kind and red then they are blue.
((("someone" "is" "kind" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "blue" "+"))
Cold people are kind.
((("someone" "is" "cold" "+")) -> ("someone" "is" "kind" "+"))
If someone is red and cold then they are not big.
((("someone" "is" "red" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "big" "-"))
Kind, cold people are furry.
((("someone" "is" "kind" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "furry" "+"))
All red people are furry.
((("someone" "is" "red" "+")) -> ("someone" "is" "furry" "+"))
Fiona is white.
True
1
proof
[(triple3)]
("Fiona" "is" "white" "+")
triple3
Fiona is not white.
False
1
inv-proof
[(triple3)]
("Fiona" "is" "white" "-")
triple3
Fiona is cold.
True
3
proof
[(((triple1 triple2) -> rule1) OR ((((triple2) -> rule6) triple2) -> rule1))]
("Fiona" "is" "cold" "+")
((triple1 triple2) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((((triple2) -> (rule6 % int2)) triple2) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is not cold.
False
3
inv-proof
[(((triple1 triple2) -> rule1) OR ((((triple2) -> rule6) triple2) -> rule1))]
("Fiona" "is" "cold" "-")
((triple1 triple2) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((((triple2) -> (rule6 % int2)) triple2) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
True
4
proof
[(((((triple1 triple2) -> rule1)) -> rule3) OR ((((((triple2) -> rule6) triple2) -> rule1)) -> rule3))]
("Fiona" "is" "kind" "+")
((((triple1 triple2) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((((triple2) -> (rule6 % int3)) triple2) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is big.
False
5
inv-proof
[(((triple2 ((triple1 triple2) -> rule1)) -> rule4) OR ((triple2 ((((triple2) -> rule6) triple2) -> rule1)) -> rule4))]
("Fiona" "is" "big" "+")
((triple2 ((triple1 triple2) -> (rule1 % int2))) -> (rule4 % int1))
Fiona is not big.
("Fiona" "is" "big" "-")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((triple2 ((((triple2) -> (rule6 % int3)) triple2) -> (rule1 % int2))) -> (rule4 % int1))
Fiona is not big.
("Fiona" "is" "big" "-")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is blue.
True
6
proof
[(((((((triple1 triple2) -> rule1)) -> rule3) triple2) -> rule2) OR ((((((((triple2) -> rule6) triple2) -> rule1)) -> rule3) triple2) -> rule2))]
("Fiona" "is" "blue" "+")
((((((triple1 triple2) -> (rule1 % int3))) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
((((((((triple2) -> (rule6 % int4)) triple2) -> (rule1 % int3))) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is not blue.
False
6
inv-proof
[(((((((triple1 triple2) -> rule1)) -> rule3) triple2) -> rule2) OR ((((((((triple2) -> rule6) triple2) -> rule1)) -> rule3) triple2) -> rule2))]
("Fiona" "is" "blue" "-")
((((((triple1 triple2) -> (rule1 % int3))) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
((((((((triple2) -> (rule6 % int4)) triple2) -> (rule1 % int3))) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
@0: Fiona is furry.[(triple1 OR ((triple2) -> rule6))] Fiona is red.[(triple2)] Fiona is white.[(triple3)] @1: Fiona is cold.[(((triple1 triple2) -> rule1) OR ((((triple2) -> rule6) triple2) -> rule1))] @2: Fiona is kind.[(((((triple1 triple2) -> rule1)) -> rule3) OR ((((((triple2) -> rule6) triple2) -> rule1)) -> rule3))] Fiona is not big.[(((triple2 ((triple1 triple2) -> rule1)) -> rule4) OR ((triple2 ((((triple2) -> rule6) triple2) -> rule1)) -> rule4))] @3: Fiona is blue.[(((((((triple1 triple2) -> rule1)) -> rule3) triple2) -> rule2) OR ((((((((triple2) -> rule6) triple2) -> rule1)) -> rule3) triple2) -> rule2))]
Fiona is furry.
("Fiona" "is" "furry" "+")
triple1
((triple2) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
triple2
Fiona is white.
("Fiona" "is" "white" "+")
triple3
Fiona is cold.
("Fiona" "is" "cold" "+")
((triple1 triple2) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((((triple2) -> (rule6 % int2)) triple2) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
((((triple1 triple2) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((((triple2) -> (rule6 % int3)) triple2) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is not big.
("Fiona" "is" "big" "-")
((triple2 ((triple1 triple2) -> (rule1 % int2))) -> (rule4 % int1))
Fiona is not big.
("Fiona" "is" "big" "-")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((triple2 ((((triple2) -> (rule6 % int3)) triple2) -> (rule1 % int2))) -> (rule4 % int1))
Fiona is not big.
("Fiona" "is" "big" "-")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
((((((triple1 triple2) -> (rule1 % int3))) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
((((((((triple2) -> (rule6 % int4)) triple2) -> (rule1 % int3))) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4