Charlie is blue. Charlie is young. Fiona is blue. Fiona is rough. Harry is blue. Harry is rough. Harry is round. Red, green people are blue. If someone is green then they are young. Nice, rough people are green. Rough, round people are young. If someone is red then they are rough. If someone is blue then they are nice. If someone is round then they are blue. If someone is blue and round then they are young.
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is round.
("Harry" "is" "round" "+")
Red, green people are blue.
((("someone" "is" "red" "+") ("someone" "is" "green" "+")) -> ("someone" "is" "blue" "+"))
If someone is green then they are young.
((("someone" "is" "green" "+")) -> ("someone" "is" "young" "+"))
Nice, rough people are green.
((("someone" "is" "nice" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "green" "+"))
Rough, round people are young.
((("someone" "is" "rough" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "young" "+"))
If someone is red then they are rough.
((("someone" "is" "red" "+")) -> ("someone" "is" "rough" "+"))
If someone is blue then they are nice.
((("someone" "is" "blue" "+")) -> ("someone" "is" "nice" "+"))
If someone is round then they are blue.
((("someone" "is" "round" "+")) -> ("someone" "is" "blue" "+"))
If someone is blue and round then they are young.
((("someone" "is" "blue" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "young" "+"))
Fiona is rough.
True
1
proof
[(triple4)]
("Fiona" "is" "rough" "+")
triple4
Harry is not blue.
False
1
inv-proof
[(triple5 OR ((triple7) -> rule7))]
("Harry" "is" "blue" "-")
triple5
((triple7) -> (rule7 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is nice.
True
2
proof
[(((triple5) -> rule6) OR ((((triple7) -> rule7)) -> rule6))]
("Harry" "is" "nice" "+")
((triple5) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple7) -> (rule7 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Fiona is not nice.
False
2
inv-proof
[(((triple3) -> rule6))]
("Fiona" "is" "nice" "-")
((triple3) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Harry is green.
True
4
proof
[(((((triple5) -> rule6) triple6) -> rule3) OR ((((((triple7) -> rule7)) -> rule6) triple6) -> rule3))]
("Harry" "is" "green" "+")
((((triple5) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((((triple7) -> (rule7 % int3))) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is not green.
False
4
inv-proof
[(((((triple5) -> rule6) triple6) -> rule3) OR ((((((triple7) -> rule7)) -> rule6) triple6) -> rule3))]
("Harry" "is" "green" "-")
((((triple5) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((((triple7) -> (rule7 % int3))) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Fiona is young.
True
5
proof
[(((((((triple3) -> rule6) triple4) -> rule3)) -> rule2))]
("Fiona" "is" "young" "+")
((((((triple3) -> (rule6 % int3)) triple4) -> (rule3 % int2))) -> (rule2 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is not young.
False
5
inv-proof
[(((((((triple3) -> rule6) triple4) -> rule3)) -> rule2))]
("Fiona" "is" "young" "-")
((((((triple3) -> (rule6 % int3)) triple4) -> (rule3 % int2))) -> (rule2 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Charlie is not green.
Unknown
inv-rconc
[@2: Charlie is green.[CWA. Example of deepest failure = (rule3 <- rule5 <- FAIL)]]
("Charlie" "is" "green" "-")
Charlie is rough.
Unknown
rconc
[@1: Charlie is rough.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Charlie" "is" "rough" "+")
Fiona is not red.
Unknown
inv-random
[@0: Fiona is red.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "red" "-")
Charlie is round.
Unknown
random
[@0: Charlie is round.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "round" "+")
Fiona is not round.
Unknown
inv-random
[@0: Fiona is round.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "round" "-")
Charlie is red.
Unknown
random
[@0: Charlie is red.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "red" "+")
@0: Charlie is blue.[(triple1)] Charlie is young.[(triple2)] Fiona is blue.[(triple3)] Fiona is rough.[(triple4)] Harry is blue.[(triple5 OR ((triple7) -> rule7))] Harry is rough.[(triple6)] Harry is round.[(triple7)] @1: Charlie is nice.[(((triple1) -> rule6))] Fiona is nice.[(((triple3) -> rule6))] Harry is nice.[(((triple5) -> rule6) OR ((((triple7) -> rule7)) -> rule6))] Harry is young.[(((triple5 triple7) -> rule8) OR ((triple6 triple7) -> rule4) OR ((((triple7) -> rule7) triple7) -> rule8) OR ((((((triple5) -> rule6) triple6) -> rule3)) -> rule2) OR ((((((((triple7) -> rule7)) -> rule6) triple6) -> rule3)) -> rule2))] @2: Fiona is green.[(((((triple3) -> rule6) triple4) -> rule3))] Harry is green.[(((((triple5) -> rule6) triple6) -> rule3) OR ((((((triple7) -> rule7)) -> rule6) triple6) -> rule3))] @3: Fiona is young.[(((((((triple3) -> rule6) triple4) -> rule3)) -> rule2))]
Charlie is blue.
("Charlie" "is" "blue" "+")
triple1
Charlie is young.
("Charlie" "is" "young" "+")
triple2
Fiona is blue.
("Fiona" "is" "blue" "+")
triple3
Fiona is rough.
("Fiona" "is" "rough" "+")
triple4
Harry is blue.
("Harry" "is" "blue" "+")
triple5
((triple7) -> (rule7 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
triple6
Harry is round.
("Harry" "is" "round" "+")
triple7
Charlie is nice.
("Charlie" "is" "nice" "+")
((triple1) -> (rule6 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
((triple3) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
((triple5) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple7) -> (rule7 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is young.
("Harry" "is" "young" "+")
((triple5 triple7) -> (rule8 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
((triple6 triple7) -> (rule4 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
((((triple7) -> (rule7 % int2)) triple7) -> (rule8 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((((triple5) -> (rule6 % int3)) triple6) -> (rule3 % int2))) -> (rule2 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((((triple7) -> (rule7 % int4))) -> (rule6 % int3)) triple6) -> (rule3 % int2))) -> (rule2 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Fiona is green.
("Fiona" "is" "green" "+")
((((triple3) -> (rule6 % int2)) triple4) -> (rule3 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
((((triple5) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((((triple7) -> (rule7 % int3))) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
((((((triple3) -> (rule6 % int3)) triple4) -> (rule3 % int2))) -> (rule2 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3