Erin is cold. Erin is young. Fiona is blue. Fiona is cold. Fiona is green. Fiona is white. Fiona is young. Cold things are young. If something is blue then it is cold. All young, blue things are rough. If Erin is green and Erin is rough then Erin is white. All red, rough things are blue. If something is red and young then it is white. Rough things are red. All red things are white.
Erin is cold.
("Erin" "is" "cold" "+")
Erin is young.
("Erin" "is" "young" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Cold things are young.
((("something" "is" "cold" "+")) -> ("something" "is" "young" "+"))
If something is blue then it is cold.
((("something" "is" "blue" "+")) -> ("something" "is" "cold" "+"))
All young, blue things are rough.
((("something" "is" "young" "+") ("something" "is" "blue" "+")) -> ("something" "is" "rough" "+"))
If Erin is green and Erin is rough then Erin is white.
((("Erin" "is" "green" "+") ("Erin" "is" "rough" "+")) -> ("Erin" "is" "white" "+"))
All red, rough things are blue.
((("something" "is" "red" "+") ("something" "is" "rough" "+")) -> ("something" "is" "blue" "+"))
If something is red and young then it is white.
((("something" "is" "red" "+") ("something" "is" "young" "+")) -> ("something" "is" "white" "+"))
Rough things are red.
((("something" "is" "rough" "+")) -> ("something" "is" "red" "+"))
All red things are white.
((("something" "is" "red" "+")) -> ("something" "is" "white" "+"))
Fiona is white.
True
1
proof
[(triple6 OR ((((((triple7 triple3) -> rule3)) -> rule7)) -> rule8) OR ((((((triple7 triple3) -> rule3)) -> rule7) triple7) -> rule6) OR ((((((triple7 triple3) -> rule3)) -> rule7) ((triple4) -> rule1)) -> rule6) OR ((((((triple7 triple3) -> rule3)) -> rule7) ((((triple3) -> rule2)) -> rule1)) -> rule6) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7)) -> rule8) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) triple7) -> rule6) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) ((triple4) -> rule1)) -> rule6) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) ((((triple3) -> rule2)) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7)) -> rule8) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7) triple7) -> rule6) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7) ((triple4) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7) ((((triple3) -> rule2)) -> rule1)) -> rule6))]
("Fiona" "is" "white" "+")
triple6
((((((triple7 triple3) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple7 triple3) -> (rule3 % int3))) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple7 triple3) -> (rule3 % int4))) -> (rule7 % int3)) ((triple4) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
((((((triple7 triple3) -> (rule3 % int5))) -> (rule7 % int4)) ((((triple3) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
Fiona is rough.
("Fiona" "is" "rough" "+")
int5
((((((((triple4) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
((((((((triple4) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
((((((((triple4) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) ((triple4) -> (rule1 % int4))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
((((((((triple4) -> (rule1 % int5)) triple3) -> (rule3 % int4))) -> (rule7 % int3)) ((((triple3) -> (rule2 % int2))) -> (rule1 % int5))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
Fiona is young.
("Fiona" "is" "young" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) ((triple4) -> (rule1 % int4))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) ((((triple3) -> (rule2 % int5))) -> (rule1 % int4))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
Fiona is not young.
False
1
inv-proof
[(triple7 OR ((triple4) -> rule1) OR ((((triple3) -> rule2)) -> rule1))]
("Fiona" "is" "young" "-")
triple7
((triple4) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Erin is not rough.
Unknown
inv-rconc
[@2: Erin is rough.[CWA. Example of deepest failure = (rule3 <- rule5 <- FAIL)]]
("Erin" "is" "rough" "-")
Erin is green.
Unknown
random
[@0: Erin is green.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "green" "+")
@0: Erin is cold.[(triple1)] Erin is young.[(triple2 OR ((triple1) -> rule1))] Fiona is blue.[(triple3)] Fiona is cold.[(triple4 OR ((triple3) -> rule2))] Fiona is green.[(triple5)] Fiona is white.[(triple6 OR ((((((triple7 triple3) -> rule3)) -> rule7)) -> rule8) OR ((((((triple7 triple3) -> rule3)) -> rule7) triple7) -> rule6) OR ((((((triple7 triple3) -> rule3)) -> rule7) ((triple4) -> rule1)) -> rule6) OR ((((((triple7 triple3) -> rule3)) -> rule7) ((((triple3) -> rule2)) -> rule1)) -> rule6) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7)) -> rule8) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) triple7) -> rule6) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) ((triple4) -> rule1)) -> rule6) OR ((((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) ((((triple3) -> rule2)) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7)) -> rule8) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7) triple7) -> rule6) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7) ((triple4) -> rule1)) -> rule6) OR ((((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7) ((((triple3) -> rule2)) -> rule1)) -> rule6))] Fiona is young.[(triple7 OR ((triple4) -> rule1) OR ((((triple3) -> rule2)) -> rule1))] @1: Fiona is rough.[(((triple7 triple3) -> rule3) OR ((((triple4) -> rule1) triple3) -> rule3) OR ((((((triple3) -> rule2)) -> rule1) triple3) -> rule3))] @2: Fiona is red.[(((((triple7 triple3) -> rule3)) -> rule7) OR ((((((triple4) -> rule1) triple3) -> rule3)) -> rule7) OR ((((((((triple3) -> rule2)) -> rule1) triple3) -> rule3)) -> rule7))]
Erin is cold.
("Erin" "is" "cold" "+")
triple1
Erin is young.
("Erin" "is" "young" "+")
triple2
((triple1) -> (rule1 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
triple3
Fiona is cold.
("Fiona" "is" "cold" "+")
triple4
((triple3) -> (rule2 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
triple5
Fiona is white.
("Fiona" "is" "white" "+")
triple6
((((((triple7 triple3) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple7 triple3) -> (rule3 % int3))) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple7 triple3) -> (rule3 % int4))) -> (rule7 % int3)) ((triple4) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
((((((triple7 triple3) -> (rule3 % int5))) -> (rule7 % int4)) ((((triple3) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
Fiona is rough.
("Fiona" "is" "rough" "+")
int5
((((((((triple4) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
((((((((triple4) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
((((((((triple4) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) ((triple4) -> (rule1 % int4))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
((((((((triple4) -> (rule1 % int5)) triple3) -> (rule3 % int4))) -> (rule7 % int3)) ((((triple3) -> (rule2 % int2))) -> (rule1 % int5))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
Fiona is young.
("Fiona" "is" "young" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) ((triple4) -> (rule1 % int4))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
((((((((((triple3) -> (rule2 % int5))) -> (rule1 % int4)) triple3) -> (rule3 % int3))) -> (rule7 % int2)) ((((triple3) -> (rule2 % int5))) -> (rule1 % int4))) -> (rule6 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
Fiona is young.
("Fiona" "is" "young" "+")
triple7
((triple4) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
((triple7 triple3) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((triple4) -> (rule1 % int2)) triple3) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
((((((triple3) -> (rule2 % int3))) -> (rule1 % int2)) triple3) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
((((triple7 triple3) -> (rule3 % int2))) -> (rule7 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((((triple4) -> (rule1 % int3)) triple3) -> (rule3 % int2))) -> (rule7 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
int3
((((((((triple3) -> (rule2 % int4))) -> (rule1 % int3)) triple3) -> (rule3 % int2))) -> (rule7 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4