Charlie is big. Charlie is cold. Charlie is kind. Charlie is quiet. Charlie is red. Charlie is round. Fiona is blue. Fiona is cold. Fiona is kind. Fiona is red. Fiona is round. Harry is blue. Harry is cold. Harry is kind. Harry is quiet. Blue, kind things are red. If something is cold and big then it is blue. Cold, kind things are round. If Fiona is kind then Fiona is cold. All cold things are red. If Harry is kind then Harry is big.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Blue, kind things are red.
((("something" "is" "blue" "+") ("something" "is" "kind" "+")) -> ("something" "is" "red" "+"))
If something is cold and big then it is blue.
((("something" "is" "cold" "+") ("something" "is" "big" "+")) -> ("something" "is" "blue" "+"))
Cold, kind things are round.
((("something" "is" "cold" "+") ("something" "is" "kind" "+")) -> ("something" "is" "round" "+"))
If Fiona is kind then Fiona is cold.
((("Fiona" "is" "kind" "+")) -> ("Fiona" "is" "cold" "+"))
All cold things are red.
((("something" "is" "cold" "+")) -> ("something" "is" "red" "+"))
If Harry is kind then Harry is big.
((("Harry" "is" "kind" "+")) -> ("Harry" "is" "big" "+"))
Fiona is red.
True
1
proof
[(triple10 OR ((triple8) -> rule5) OR ((triple7 triple9) -> rule1) OR ((((triple9) -> rule4)) -> rule5))]
("Fiona" "is" "red" "+")
triple10
((triple8) -> (rule5 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple7 triple9) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple9) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Charlie is not red.
False
1
inv-proof
[(triple5 OR ((triple2) -> rule5) OR ((((triple2 triple1) -> rule2) triple3) -> rule1))]
("Charlie" "is" "red" "-")
triple5
((triple2) -> (rule5 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
((((triple2 triple1) -> (rule2 % int2)) triple3) -> (rule1 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Fiona is not big.
Unknown
inv-random
[@0: Fiona is big.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "big" "-")
Fiona is quiet.
Unknown
random
[@0: Fiona is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "quiet" "+")
@0: Charlie is big.[(triple1)] Charlie is cold.[(triple2)] Charlie is kind.[(triple3)] Charlie is quiet.[(triple4)] Charlie is red.[(triple5 OR ((triple2) -> rule5) OR ((((triple2 triple1) -> rule2) triple3) -> rule1))] Charlie is round.[(triple6 OR ((triple2 triple3) -> rule3))] Fiona is blue.[(triple7)] Fiona is cold.[(triple8 OR ((triple9) -> rule4))] Fiona is kind.[(triple9)] Fiona is red.[(triple10 OR ((triple8) -> rule5) OR ((triple7 triple9) -> rule1) OR ((((triple9) -> rule4)) -> rule5))] Fiona is round.[(triple11 OR ((triple8 triple9) -> rule3) OR ((((triple9) -> rule4) triple9) -> rule3))] Harry is blue.[(triple12 OR ((triple13 ((triple14) -> rule6)) -> rule2))] Harry is cold.[(triple13)] Harry is kind.[(triple14)] Harry is quiet.[(triple15)] @1: Charlie is blue.[(((triple2 triple1) -> rule2))] Harry is big.[(((triple14) -> rule6))] Harry is red.[(((triple13) -> rule5) OR ((triple12 triple14) -> rule1) OR ((((triple13 ((triple14) -> rule6)) -> rule2) triple14) -> rule1))] Harry is round.[(((triple13 triple14) -> rule3))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple2
Charlie is kind.
("Charlie" "is" "kind" "+")
triple3
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple4
Charlie is red.
("Charlie" "is" "red" "+")
triple5
((triple2) -> (rule5 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
((((triple2 triple1) -> (rule2 % int2)) triple3) -> (rule1 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
triple6
((triple2 triple3) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
Fiona is cold.
("Fiona" "is" "cold" "+")
triple8
((triple9) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple9
Fiona is red.
("Fiona" "is" "red" "+")
triple10
((triple8) -> (rule5 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple7 triple9) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple9) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
triple11
((triple8 triple9) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple9) -> (rule4 % int2)) triple9) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
triple12
((triple13 ((triple14) -> (rule6 % int2))) -> (rule2 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
triple13
Harry is kind.
("Harry" "is" "kind" "+")
triple14
Harry is quiet.
("Harry" "is" "quiet" "+")
triple15
Charlie is blue.
("Charlie" "is" "blue" "+")
((triple2 triple1) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
((triple14) -> (rule6 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
((triple13) -> (rule5 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((triple12 triple14) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((((triple13 ((triple14) -> (rule6 % int3))) -> (rule2 % int2)) triple14) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
((triple13 triple14) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1