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