Charlie is big. Charlie is quiet. Charlie is red. Fiona is big. Fiona is blue. Fiona is round. Harry is big. Harry is blue. Harry is kind. Harry is round. If Fiona is kind then Fiona is smart. If someone is round then they are blue. Red, big people are kind. Quiet people are red. If Harry is kind then Harry is big. All red people are kind. Kind people are big. All kind people are round.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is round.
("Harry" "is" "round" "+")
If Fiona is kind then Fiona is smart.
((("Fiona" "is" "kind" "+")) -> ("Fiona" "is" "smart" "+"))
If someone is round then they are blue.
((("someone" "is" "round" "+")) -> ("someone" "is" "blue" "+"))
Red, big people are kind.
((("someone" "is" "red" "+") ("someone" "is" "big" "+")) -> ("someone" "is" "kind" "+"))
Quiet people are red.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "red" "+"))
If Harry is kind then Harry is big.
((("Harry" "is" "kind" "+")) -> ("Harry" "is" "big" "+"))
All red people are kind.
((("someone" "is" "red" "+")) -> ("someone" "is" "kind" "+"))
Kind people are big.
((("someone" "is" "kind" "+")) -> ("someone" "is" "big" "+"))
All kind people are round.
((("someone" "is" "kind" "+")) -> ("someone" "is" "round" "+"))
Charlie is red.
True
1
proof
[(triple3 OR ((triple2) -> rule4))]
("Charlie" "is" "red" "+")
triple3
((triple2) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Harry is not round.
False
1
inv-proof
[(triple10 OR ((triple9) -> rule8))]
("Harry" "is" "round" "-")
triple10
((triple9) -> (rule8 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Charlie is kind.
True
2
proof
[(((triple3) -> rule6) OR ((triple3 triple1) -> rule3) OR ((((triple2) -> rule4)) -> rule6) OR ((((triple2) -> rule4) triple1) -> rule3))]
("Charlie" "is" "kind" "+")
((triple3) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((triple3 triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
((((triple2) -> (rule4 % int2)) triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is not kind.
False
2
inv-proof
[(((triple3) -> rule6) OR ((triple3 triple1) -> rule3) OR ((((triple2) -> rule4)) -> rule6) OR ((((triple2) -> rule4) triple1) -> rule3))]
("Charlie" "is" "kind" "-")
((triple3) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((triple3 triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
((((triple2) -> (rule4 % int2)) triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is round.
True
3
proof
[(((((triple3) -> rule6)) -> rule8) OR ((((triple3 triple1) -> rule3)) -> rule8) OR ((((((triple2) -> rule4)) -> rule6)) -> rule8) OR ((((((triple2) -> rule4) triple1) -> rule3)) -> rule8))]
("Charlie" "is" "round" "+")
((((triple3) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((triple3 triple1) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
((((((triple2) -> (rule4 % int3)) triple1) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is not round.
False
3
inv-proof
[(((((triple3) -> rule6)) -> rule8) OR ((((triple3 triple1) -> rule3)) -> rule8) OR ((((((triple2) -> rule4)) -> rule6)) -> rule8) OR ((((((triple2) -> rule4) triple1) -> rule3)) -> rule8))]
("Charlie" "is" "round" "-")
((((triple3) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((triple3 triple1) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
((((((triple2) -> (rule4 % int3)) triple1) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is blue.
True
4
proof
[(((((((triple3) -> rule6)) -> rule8)) -> rule2) OR ((((((triple3 triple1) -> rule3)) -> rule8)) -> rule2) OR ((((((((triple2) -> rule4)) -> rule6)) -> rule8)) -> rule2) OR ((((((((triple2) -> rule4) triple1) -> rule3)) -> rule8)) -> rule2))]
("Charlie" "is" "blue" "+")
((((((triple3) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((triple3 triple1) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((((triple2) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
((((((((triple2) -> (rule4 % int4)) triple1) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Charlie is not blue.
False
4
inv-proof
[(((((((triple3) -> rule6)) -> rule8)) -> rule2) OR ((((((triple3 triple1) -> rule3)) -> rule8)) -> rule2) OR ((((((((triple2) -> rule4)) -> rule6)) -> rule8)) -> rule2) OR ((((((((triple2) -> rule4) triple1) -> rule3)) -> rule8)) -> rule2))]
("Charlie" "is" "blue" "-")
((((((triple3) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((triple3 triple1) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((((triple2) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
((((((((triple2) -> (rule4 % int4)) triple1) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Harry is not red.
Unknown
inv-rconc
[@1: Harry is red.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Harry" "is" "red" "-")
Fiona is red.
Unknown
rconc
[@1: Fiona is red.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Fiona" "is" "red" "+")
Fiona is not smart.
Unknown
inv-rconc
[@3: Fiona is smart.[CWA. Example of deepest failure = (rule1 <- rule3 <- rule4 <- FAIL)]]
("Fiona" "is" "smart" "-")
Fiona is kind.
Unknown
rconc
[@2: Fiona is kind.[CWA. Example of deepest failure = (rule3 <- rule4 <- FAIL)]]
("Fiona" "is" "kind" "+")
Harry is not smart.
Unknown
inv-random
[@0: Harry is smart.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "smart" "-")
Harry is quiet.
Unknown
random
[@0: Harry is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "quiet" "+")
Fiona is not quiet.
Unknown
inv-random
[@0: Fiona is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "quiet" "-")
Charlie is smart.
Unknown
random
[@0: Charlie is smart.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "smart" "+")
@0: Charlie is big.[(triple1 OR ((((triple3) -> rule6)) -> rule7) OR ((((((triple2) -> rule4)) -> rule6)) -> rule7))] Charlie is quiet.[(triple2)] Charlie is red.[(triple3 OR ((triple2) -> rule4))] Fiona is big.[(triple4)] Fiona is blue.[(triple5 OR ((triple6) -> rule2))] Fiona is round.[(triple6)] Harry is big.[(triple7 OR ((triple9) -> rule5) OR ((triple9) -> rule7))] Harry is blue.[(triple8 OR ((triple10) -> rule2) OR ((((triple9) -> rule8)) -> rule2))] Harry is kind.[(triple9)] Harry is round.[(triple10 OR ((triple9) -> rule8))] @1: Charlie is kind.[(((triple3) -> rule6) OR ((triple3 triple1) -> rule3) OR ((((triple2) -> rule4)) -> rule6) OR ((((triple2) -> rule4) triple1) -> rule3))] @2: Charlie is round.[(((((triple3) -> rule6)) -> rule8) OR ((((triple3 triple1) -> rule3)) -> rule8) OR ((((((triple2) -> rule4)) -> rule6)) -> rule8) OR ((((((triple2) -> rule4) triple1) -> rule3)) -> rule8))] @3: Charlie is blue.[(((((((triple3) -> rule6)) -> rule8)) -> rule2) OR ((((((triple3 triple1) -> rule3)) -> rule8)) -> rule2) OR ((((((((triple2) -> rule4)) -> rule6)) -> rule8)) -> rule2) OR ((((((((triple2) -> rule4) triple1) -> rule3)) -> rule8)) -> rule2))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((((triple3) -> (rule6 % int2))) -> (rule7 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple2
Charlie is red.
("Charlie" "is" "red" "+")
triple3
((triple2) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
triple4
Fiona is blue.
("Fiona" "is" "blue" "+")
triple5
((triple6) -> (rule2 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
triple6
Harry is big.
("Harry" "is" "big" "+")
triple7
((triple9) -> (rule5 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
((triple9) -> (rule7 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
triple8
((triple10) -> (rule2 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
((((triple9) -> (rule8 % int2))) -> (rule2 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
triple9
Harry is round.
("Harry" "is" "round" "+")
triple10
((triple9) -> (rule8 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple3) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((triple3 triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
((((triple2) -> (rule4 % int2)) triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
((((triple3) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((triple3 triple1) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
((((((triple2) -> (rule4 % int3)) triple1) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
((((((triple3) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((triple3 triple1) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((((triple2) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
((((((((triple2) -> (rule4 % int4)) triple1) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4