Anne is rough. Anne is smart. Charlie is rough. Charlie is smart. Dave is blue. Dave is furry. Dave is rough. Dave is white. Fiona is nice. Fiona is smart. All blue, rough people are white. Smart people are cold. Furry people are blue. If someone is cold and smart then they are furry. If someone is cold and blue then they are rough. White people are blue.
Anne is rough.
("Anne" "is" "rough" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is white.
("Dave" "is" "white" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
All blue, rough people are white.
((("someone" "is" "blue" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "white" "+"))
Smart people are cold.
((("someone" "is" "smart" "+")) -> ("someone" "is" "cold" "+"))
Furry people are blue.
((("someone" "is" "furry" "+")) -> ("someone" "is" "blue" "+"))
If someone is cold and smart then they are furry.
((("someone" "is" "cold" "+") ("someone" "is" "smart" "+")) -> ("someone" "is" "furry" "+"))
If someone is cold and blue then they are rough.
((("someone" "is" "cold" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "rough" "+"))
White people are blue.
((("someone" "is" "white" "+")) -> ("someone" "is" "blue" "+"))
Fiona is smart.
True
1
proof
[(triple10)]
("Fiona" "is" "smart" "+")
triple10
Charlie is not rough.
False
1
inv-proof
[(triple3 OR ((((triple4) -> rule2) ((((((triple4) -> rule2) triple4) -> rule4)) -> rule3)) -> rule5))]
("Charlie" "is" "rough" "-")
triple3
((((triple4) -> (rule2 % int4)) ((((((triple4) -> (rule2 % int4)) triple4) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Fiona is cold.
True
2
proof
[(((triple10) -> rule2))]
("Fiona" "is" "cold" "+")
((triple10) -> (rule2 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is not cold.
False
2
inv-proof
[(((triple10) -> rule2))]
("Fiona" "is" "cold" "-")
((triple10) -> (rule2 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
True
4
proof
[(((((triple10) -> rule2) triple10) -> rule4))]
("Fiona" "is" "furry" "+")
((((triple10) -> (rule2 % int2)) triple10) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is not furry.
False
4
inv-proof
[(((((triple10) -> rule2) triple10) -> rule4))]
("Fiona" "is" "furry" "-")
((((triple10) -> (rule2 % int2)) triple10) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Anne is blue.
True
5
proof
[(((((((triple2) -> rule2) triple2) -> rule4)) -> rule3))]
("Anne" "is" "blue" "+")
((((((triple2) -> (rule2 % int3)) triple2) -> (rule4 % int2))) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
Fiona is not blue.
False
5
inv-proof
[(((((((triple10) -> rule2) triple10) -> rule4)) -> rule3))]
("Fiona" "is" "blue" "-")
((((((triple10) -> (rule2 % int3)) triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Anne is white.
True
7
proof
[(((((((((triple2) -> rule2) triple2) -> rule4)) -> rule3) triple1) -> rule1) OR ((((((((triple2) -> rule2) triple2) -> rule4)) -> rule3) ((((triple2) -> rule2) ((((((triple2) -> rule2) triple2) -> rule4)) -> rule3)) -> rule5)) -> rule1))]
("Anne" "is" "white" "+")
((((((((triple2) -> (rule2 % int4)) triple2) -> (rule4 % int3))) -> (rule3 % int2)) triple1) -> (rule1 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
Anne is cold.
("Anne" "is" "cold" "+")
int4
((((((((triple2) -> (rule2 % int5)) triple2) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple2) -> (rule2 % int5)) ((((((triple2) -> (rule2 % int5)) triple2) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is furry.
("Anne" "is" "furry" "+")
int4
Anne is cold.
("Anne" "is" "cold" "+")
int5
Charlie is not white.
False
7
inv-proof
[(((((((((triple4) -> rule2) triple4) -> rule4)) -> rule3) triple3) -> rule1) OR ((((((((triple4) -> rule2) triple4) -> rule4)) -> rule3) ((((triple4) -> rule2) ((((((triple4) -> rule2) triple4) -> rule4)) -> rule3)) -> rule5)) -> rule1))]
("Charlie" "is" "white" "-")
((((((((triple4) -> (rule2 % int4)) triple4) -> (rule4 % int3))) -> (rule3 % int2)) triple3) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
((((((((triple4) -> (rule2 % int5)) triple4) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple4) -> (rule2 % int5)) ((((((triple4) -> (rule2 % int5)) triple4) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is cold.
("Charlie" "is" "cold" "+")
int5
Fiona is white.
True
14
proof
[(((((((((triple10) -> rule2) triple10) -> rule4)) -> rule3) ((((triple10) -> rule2) ((((((triple10) -> rule2) triple10) -> rule4)) -> rule3)) -> rule5)) -> rule1))]
("Fiona" "is" "white" "+")
((((((((triple10) -> (rule2 % int5)) triple10) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple10) -> (rule2 % int5)) ((((((triple10) -> (rule2 % int5)) triple10) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
Fiona is not white.
False
14
inv-proof
[(((((((((triple10) -> rule2) triple10) -> rule4)) -> rule3) ((((triple10) -> rule2) ((((((triple10) -> rule2) triple10) -> rule4)) -> rule3)) -> rule5)) -> rule1))]
("Fiona" "is" "white" "-")
((((((((triple10) -> (rule2 % int5)) triple10) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple10) -> (rule2 % int5)) ((((((triple10) -> (rule2 % int5)) triple10) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5
Dave is not cold.
Unknown
inv-rconc
[@1: Dave is cold.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Dave" "is" "cold" "-")
Dave is smart.
Unknown
random
[@0: Dave is smart.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "smart" "+")
Anne is not nice.
Unknown
inv-random
[@0: Anne is nice.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "nice" "-")
Dave is nice.
Unknown
random
[@0: Dave is nice.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "nice" "+")
@0: Anne is rough.[(triple1 OR ((((triple2) -> rule2) ((((((triple2) -> rule2) triple2) -> rule4)) -> rule3)) -> rule5))] Anne is smart.[(triple2)] Charlie is rough.[(triple3 OR ((((triple4) -> rule2) ((((((triple4) -> rule2) triple4) -> rule4)) -> rule3)) -> rule5))] Charlie is smart.[(triple4)] Dave is blue.[(triple5 OR ((triple6) -> rule3) OR ((triple8) -> rule6))] Dave is furry.[(triple6)] Dave is rough.[(triple7)] Dave is white.[(triple8 OR ((triple5 triple7) -> rule1) OR ((((triple6) -> rule3) triple7) -> rule1))] Fiona is nice.[(triple9)] Fiona is smart.[(triple10)] @1: Anne is cold.[(((triple2) -> rule2))] Charlie is cold.[(((triple4) -> rule2))] Fiona is cold.[(((triple10) -> rule2))] @2: Anne is furry.[(((((triple2) -> rule2) triple2) -> rule4))] Charlie is furry.[(((((triple4) -> rule2) triple4) -> rule4))] Fiona is furry.[(((((triple10) -> rule2) triple10) -> rule4))] @3: Anne is blue.[(((((((triple2) -> rule2) triple2) -> rule4)) -> rule3))] Charlie is blue.[(((((((triple4) -> rule2) triple4) -> rule4)) -> rule3))] Fiona is blue.[(((((((triple10) -> rule2) triple10) -> rule4)) -> rule3))] @4: Anne is white.[(((((((((triple2) -> rule2) triple2) -> rule4)) -> rule3) triple1) -> rule1) OR ((((((((triple2) -> rule2) triple2) -> rule4)) -> rule3) ((((triple2) -> rule2) ((((((triple2) -> rule2) triple2) -> rule4)) -> rule3)) -> rule5)) -> rule1))] Charlie is white.[(((((((((triple4) -> rule2) triple4) -> rule4)) -> rule3) triple3) -> rule1) OR ((((((((triple4) -> rule2) triple4) -> rule4)) -> rule3) ((((triple4) -> rule2) ((((((triple4) -> rule2) triple4) -> rule4)) -> rule3)) -> rule5)) -> rule1))] Fiona is rough.[(((((triple10) -> rule2) ((((((triple10) -> rule2) triple10) -> rule4)) -> rule3)) -> rule5))] @5: Fiona is white.[(((((((((triple10) -> rule2) triple10) -> rule4)) -> rule3) ((((triple10) -> rule2) ((((((triple10) -> rule2) triple10) -> rule4)) -> rule3)) -> rule5)) -> rule1))]
Anne is rough.
("Anne" "is" "rough" "+")
triple1
((((triple2) -> (rule2 % int4)) ((((((triple2) -> (rule2 % int4)) triple2) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
Anne is cold.
("Anne" "is" "cold" "+")
int4
Anne is smart.
("Anne" "is" "smart" "+")
triple2
Charlie is rough.
("Charlie" "is" "rough" "+")
triple3
((((triple4) -> (rule2 % int4)) ((((((triple4) -> (rule2 % int4)) triple4) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Charlie is smart.
("Charlie" "is" "smart" "+")
triple4
Dave is blue.
("Dave" "is" "blue" "+")
triple5
((triple6) -> (rule3 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
((triple8) -> (rule6 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
triple6
Dave is rough.
("Dave" "is" "rough" "+")
triple7
Dave is white.
("Dave" "is" "white" "+")
triple8
((triple5 triple7) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((((triple6) -> (rule3 % int2)) triple7) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
triple9
Fiona is smart.
("Fiona" "is" "smart" "+")
triple10
Anne is cold.
("Anne" "is" "cold" "+")
((triple2) -> (rule2 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple4) -> (rule2 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
((triple10) -> (rule2 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
((((triple2) -> (rule2 % int2)) triple2) -> (rule4 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
((((triple4) -> (rule2 % int2)) triple4) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
((((triple10) -> (rule2 % int2)) triple10) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
((((((triple2) -> (rule2 % int3)) triple2) -> (rule4 % int2))) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
((((((triple4) -> (rule2 % int3)) triple4) -> (rule4 % int2))) -> (rule3 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
((((((triple10) -> (rule2 % int3)) triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Anne is white.
("Anne" "is" "white" "+")
((((((((triple2) -> (rule2 % int4)) triple2) -> (rule4 % int3))) -> (rule3 % int2)) triple1) -> (rule1 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
Anne is cold.
("Anne" "is" "cold" "+")
int4
((((((((triple2) -> (rule2 % int5)) triple2) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple2) -> (rule2 % int5)) ((((((triple2) -> (rule2 % int5)) triple2) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is furry.
("Anne" "is" "furry" "+")
int4
Anne is cold.
("Anne" "is" "cold" "+")
int5
Charlie is white.
("Charlie" "is" "white" "+")
((((((((triple4) -> (rule2 % int4)) triple4) -> (rule4 % int3))) -> (rule3 % int2)) triple3) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
((((((((triple4) -> (rule2 % int5)) triple4) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple4) -> (rule2 % int5)) ((((((triple4) -> (rule2 % int5)) triple4) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is cold.
("Charlie" "is" "cold" "+")
int5
Fiona is rough.
("Fiona" "is" "rough" "+")
((((triple10) -> (rule2 % int4)) ((((((triple10) -> (rule2 % int4)) triple10) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is white.
("Fiona" "is" "white" "+")
((((((((triple10) -> (rule2 % int5)) triple10) -> (rule4 % int4))) -> (rule3 % int3)) ((((triple10) -> (rule2 % int5)) ((((((triple10) -> (rule2 % int5)) triple10) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
int5