Erin is furry. Fiona is cold. Fiona is smart. Gary is nice. Gary is quiet. Harry is nice. Harry is not smart. Rough things are nice. All rough things are nice. If something is rough and furry then it is blue. If something is furry then it is blue. If something is smart then it is blue. If something is nice then it is quiet. If something is quiet and not smart then it is not cold. Blue things are cold. If something is cold then it is rough.
Erin is furry.
("Erin" "is" "furry" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is quiet.
("Gary" "is" "quiet" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is not smart.
("Harry" "is" "smart" "-")
Rough things are nice.
((("something" "is" "rough" "+")) -> ("something" "is" "nice" "+"))
All rough things are nice.
((("something" "is" "rough" "+")) -> ("something" "is" "nice" "+"))
If something is rough and furry then it is blue.
((("something" "is" "rough" "+") ("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
If something is furry then it is blue.
((("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
If something is smart then it is blue.
((("something" "is" "smart" "+")) -> ("something" "is" "blue" "+"))
If something is nice then it is quiet.
((("something" "is" "nice" "+")) -> ("something" "is" "quiet" "+"))
If something is quiet and not smart then it is not cold.
((("something" "is" "quiet" "+") ("something" "is" "smart" "~")) -> ("something" "is" "cold" "-"))
Blue things are cold.
((("something" "is" "blue" "+")) -> ("something" "is" "cold" "+"))
If something is cold then it is rough.
((("something" "is" "cold" "+")) -> ("something" "is" "rough" "+"))
Gary is nice.
True
1
proof
[(triple4)]
("Gary" "is" "nice" "+")
triple4
Fiona is not cold.
False
1
inv-proof
[(triple2 OR ((((triple3) -> rule5)) -> rule8))]
("Fiona" "is" "cold" "-")
triple2
((((triple3) -> (rule5 % int2))) -> (rule8 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is rough.
True
2
proof
[(((triple2) -> rule9) OR ((((((triple3) -> rule5)) -> rule8)) -> rule9))]
("Fiona" "is" "rough" "+")
((triple2) -> (rule9 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((((triple3) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Harry is not quiet.
False
2
inv-proof
[(((triple6) -> rule6))]
("Harry" "is" "quiet" "-")
((triple6) -> (rule6 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is not cold.
True
4
proof
[(((((triple6) -> rule6) triple7) -> rule7))]
("Harry" "is" "cold" "-")
((((triple6) -> (rule6 % int2)) triple7) -> (rule7 % int1))
Harry is not cold.
("Harry" "is" "cold" "-")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Erin is not cold.
False
3
inv-proof
[(((((triple1) -> rule4)) -> rule8))]
("Erin" "is" "cold" "-")
((((triple1) -> (rule4 % int2))) -> (rule8 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Fiona is quiet.
True
4
proof
[(((((((triple2) -> rule9)) -> rule1)) -> rule6) OR ((((((triple2) -> rule9)) -> rule2)) -> rule6) OR ((((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule2)) -> rule6))]
("Fiona" "is" "quiet" "+")
((((((triple2) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple2) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((((((triple3) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
((((((((((triple3) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Fiona is not quiet.
False
4
inv-proof
[(((((((triple2) -> rule9)) -> rule1)) -> rule6) OR ((((((triple2) -> rule9)) -> rule2)) -> rule6) OR ((((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule2)) -> rule6))]
("Fiona" "is" "quiet" "-")
((((((triple2) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple2) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((((((triple3) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
((((((((((triple3) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Erin is nice.
True
5
proof
[(((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule1) OR ((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule2))]
("Erin" "is" "nice" "+")
((((((((triple1) -> (rule4 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
int4
((((((((triple1) -> (rule4 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
int4
Erin is not nice.
False
5
inv-proof
[(((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule1) OR ((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule2))]
("Erin" "is" "nice" "-")
((((((((triple1) -> (rule4 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
int4
((((((((triple1) -> (rule4 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
int4
Erin is quiet.
True
6
proof
[(((((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule1)) -> rule6) OR ((((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule2)) -> rule6))]
("Erin" "is" "quiet" "+")
((((((((((triple1) -> (rule4 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is cold.
("Erin" "is" "cold" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
int5
((((((((((triple1) -> (rule4 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is cold.
("Erin" "is" "cold" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
int5
Erin is not quiet.
False
6
inv-proof
[(((((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule1)) -> rule6) OR ((((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule2)) -> rule6))]
("Erin" "is" "quiet" "-")
((((((((((triple1) -> (rule4 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is cold.
("Erin" "is" "cold" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
int5
((((((((((triple1) -> (rule4 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is cold.
("Erin" "is" "cold" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
int5
Harry is not rough.
Unknown
inv-rconc
[@1: Harry is rough.[CWA. Example of deepest failure = (rule9 <- FAIL)]]
("Harry" "is" "rough" "-")
Gary is rough.
Unknown
rconc
[@3: Gary is rough.[CWA. Example of deepest failure = (rule9 <- rule8 <- rule3 <- FAIL)]]
("Gary" "is" "rough" "+")
Harry is not blue.
Unknown
inv-rconc
[@1: Harry is blue.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Harry" "is" "blue" "-")
Gary is blue.
Unknown
rconc
[@1: Gary is blue.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Gary" "is" "blue" "+")
Gary is not cold.
Unknown
inv-rconc
[@2: Gary is cold.[CWA. Example of deepest failure = (rule8 <- rule3 <- FAIL)]]
("Gary" "is" "cold" "-")
Harry is furry.
Unknown
random
[@0: Harry is furry.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "furry" "+")
Fiona is not furry.
Unknown
inv-random
[@0: Fiona is furry.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "furry" "-")
Gary is smart.
Unknown
random
[@0: Gary is smart.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "smart" "+")
Erin is not smart.
Unknown
inv-random
[@0: Erin is smart.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "smart" "-")
Gary is furry.
Unknown
random
[@0: Gary is furry.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "furry" "+")
@0: Erin is furry.[(triple1)] Fiona is cold.[(triple2 OR ((((triple3) -> rule5)) -> rule8))] Fiona is smart.[(triple3)] Gary is nice.[(triple4)] Gary is quiet.[(triple5 OR ((triple4) -> rule6))] Harry is nice.[(triple6)] Harry is not smart.[(triple7)] @1: Erin is blue.[(((triple1) -> rule4))] Fiona is blue.[(((triple3) -> rule5))] Fiona is rough.[(((triple2) -> rule9) OR ((((((triple3) -> rule5)) -> rule8)) -> rule9))] Harry is quiet.[(((triple6) -> rule6))] @2: Erin is cold.[(((((triple1) -> rule4)) -> rule8))] Fiona is nice.[(((((triple2) -> rule9)) -> rule1) OR ((((triple2) -> rule9)) -> rule2) OR ((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule1) OR ((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule2))] Harry is not cold.[(((((triple6) -> rule6) triple7) -> rule7))] @3: Erin is rough.[(((((((triple1) -> rule4)) -> rule8)) -> rule9))] Fiona is quiet.[(((((((triple2) -> rule9)) -> rule1)) -> rule6) OR ((((((triple2) -> rule9)) -> rule2)) -> rule6) OR ((((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule5)) -> rule8)) -> rule9)) -> rule2)) -> rule6))] @4: Erin is nice.[(((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule1) OR ((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule2))] @5: Erin is quiet.[(((((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule1)) -> rule6) OR ((((((((((triple1) -> rule4)) -> rule8)) -> rule9)) -> rule2)) -> rule6))]
Erin is furry.
("Erin" "is" "furry" "+")
triple1
Fiona is cold.
("Fiona" "is" "cold" "+")
triple2
((((triple3) -> (rule5 % int2))) -> (rule8 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
triple3
Gary is nice.
("Gary" "is" "nice" "+")
triple4
Gary is quiet.
("Gary" "is" "quiet" "+")
triple5
((triple4) -> (rule6 % int1))
Gary is quiet.
("Gary" "is" "quiet" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
triple6
Harry is not smart.
("Harry" "is" "smart" "-")
triple7
Erin is blue.
("Erin" "is" "blue" "+")
((triple1) -> (rule4 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
((triple3) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
((triple2) -> (rule9 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((((triple3) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Harry is quiet.
("Harry" "is" "quiet" "+")
((triple6) -> (rule6 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
((((triple1) -> (rule4 % int2))) -> (rule8 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
((((triple2) -> (rule9 % int2))) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple2) -> (rule9 % int2))) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((((((triple3) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
int4
((((((((triple3) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
int4
Harry is not cold.
("Harry" "is" "cold" "-")
((((triple6) -> (rule6 % int2)) triple7) -> (rule7 % int1))
Harry is not cold.
("Harry" "is" "cold" "-")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
((((((triple1) -> (rule4 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is blue.
("Erin" "is" "blue" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
((((((triple2) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple2) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((((((triple3) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
((((((((((triple3) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Erin is nice.
("Erin" "is" "nice" "+")
((((((((triple1) -> (rule4 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
int4
((((((((triple1) -> (rule4 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
int4
Erin is quiet.
("Erin" "is" "quiet" "+")
((((((((((triple1) -> (rule4 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is cold.
("Erin" "is" "cold" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
int5
((((((((((triple1) -> (rule4 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Erin is quiet.
("Erin" "is" "quiet" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is cold.
("Erin" "is" "cold" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
int5