Erin is blue. Erin is not cold. Erin is quiet. Erin is not red. Erin is not young. Fiona is blue. Fiona is cold. Fiona is furry. Fiona is quiet. Fiona is red. Fiona is smart. Fiona is young. Gary is blue. Gary is cold. Gary is furry. Gary is not red. Furry people are young. All red people are furry. All cold people are smart. If someone is blue and red then they are cold. If someone is red and not young then they are not blue. Furry people are blue.
Erin is blue.
("Erin" "is" "blue" "+")
Erin is not cold.
("Erin" "is" "cold" "-")
Erin is quiet.
("Erin" "is" "quiet" "+")
Erin is not red.
("Erin" "is" "red" "-")
Erin is not young.
("Erin" "is" "young" "-")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is not red.
("Gary" "is" "red" "-")
Furry people are young.
((("someone" "is" "furry" "+")) -> ("someone" "is" "young" "+"))
All red people are furry.
((("someone" "is" "red" "+")) -> ("someone" "is" "furry" "+"))
All cold people are smart.
((("someone" "is" "cold" "+")) -> ("someone" "is" "smart" "+"))
If someone is blue and red then they are cold.
((("someone" "is" "blue" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "cold" "+"))
If someone is red and not young then they are not blue.
((("someone" "is" "red" "+") ("someone" "is" "young" "~")) -> ("someone" "is" "blue" "-"))
Furry people are blue.
((("someone" "is" "furry" "+")) -> ("someone" "is" "blue" "+"))
Fiona is young.
True
1
proof
[(triple12 OR ((triple8) -> rule1) OR ((((triple10) -> rule2)) -> rule1))]
("Fiona" "is" "young" "+")
triple12
((triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((((triple10) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Gary is not furry.
False
1
inv-proof
[(triple15)]
("Gary" "is" "furry" "-")
triple15
Gary is smart.
True
2
proof
[(((triple14) -> rule3))]
("Gary" "is" "smart" "+")
((triple14) -> (rule3 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is not young.
False
2
inv-proof
[(((triple15) -> rule1))]
("Gary" "is" "young" "-")
((triple15) -> (rule1 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Erin is not smart.
Unknown
inv-rconc
[@1: Erin is smart.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Erin" "is" "smart" "-")
Erin is furry.
Unknown
rconc
[@1: Erin is furry.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Erin" "is" "furry" "+")
@0: Erin is blue.[(triple1)] Erin is not cold.[(triple2)] Erin is not red.[(triple4)] Erin is not young.[(triple5)] Erin is quiet.[(triple3)] Fiona is blue.[(triple6 OR ((triple8) -> rule6) OR ((((triple10) -> rule2)) -> rule6))] Fiona is cold.[(triple7 OR ((triple6 triple10) -> rule4) OR ((((triple8) -> rule6) triple10) -> rule4) OR ((((((triple10) -> rule2)) -> rule6) triple10) -> rule4))] Fiona is furry.[(triple8 OR ((triple10) -> rule2))] Fiona is quiet.[(triple9)] Fiona is red.[(triple10)] Fiona is smart.[(triple11 OR ((triple7) -> rule3) OR ((((triple6 triple10) -> rule4)) -> rule3) OR ((((((triple8) -> rule6) triple10) -> rule4)) -> rule3) OR ((((((((triple10) -> rule2)) -> rule6) triple10) -> rule4)) -> rule3))] Fiona is young.[(triple12 OR ((triple8) -> rule1) OR ((((triple10) -> rule2)) -> rule1))] Gary is blue.[(triple13 OR ((triple15) -> rule6))] Gary is cold.[(triple14)] Gary is furry.[(triple15)] Gary is not red.[(triple16)] @1: Gary is smart.[(((triple14) -> rule3))] Gary is young.[(((triple15) -> rule1))]
Erin is blue.
("Erin" "is" "blue" "+")
triple1
Erin is not cold.
("Erin" "is" "cold" "-")
triple2
Erin is not red.
("Erin" "is" "red" "-")
triple4
Erin is not young.
("Erin" "is" "young" "-")
triple5
Erin is quiet.
("Erin" "is" "quiet" "+")
triple3
Fiona is blue.
("Fiona" "is" "blue" "+")
triple6
((triple8) -> (rule6 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
((((triple10) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
triple7
((triple6 triple10) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((((triple8) -> (rule6 % int2)) triple10) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
((((((triple10) -> (rule2 % int3))) -> (rule6 % int2)) triple10) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
triple8
((triple10) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple9
Fiona is red.
("Fiona" "is" "red" "+")
triple10
Fiona is smart.
("Fiona" "is" "smart" "+")
triple11
((triple7) -> (rule3 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
((((triple6 triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((((triple8) -> (rule6 % int3)) triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
((((((((triple10) -> (rule2 % int4))) -> (rule6 % int3)) triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is young.
("Fiona" "is" "young" "+")
triple12
((triple8) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((((triple10) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
triple13
((triple15) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
triple14
Gary is furry.
("Gary" "is" "furry" "+")
triple15
Gary is not red.
("Gary" "is" "red" "-")
triple16
Gary is smart.
("Gary" "is" "smart" "+")
((triple14) -> (rule3 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is young.
("Gary" "is" "young" "+")
((triple15) -> (rule1 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1