Bob is blue. Bob is furry. Bob is kind. Bob is nice. Bob is rough. Bob is round. Bob is young. Fiona is furry. Fiona is round. Gary is furry. Gary is kind. Gary is nice. Gary is rough. Gary is round. Gary is young. If something is nice then it is round. If something is blue then it is round. If something is blue then it is nice. If something is rough then it is blue. Round things are blue. All nice, blue things are rough.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Bob is young.
("Bob" "is" "young" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is round.
("Gary" "is" "round" "+")
Gary is young.
("Gary" "is" "young" "+")
If something is nice then it is round.
((("something" "is" "nice" "+")) -> ("something" "is" "round" "+"))
If something is blue then it is round.
((("something" "is" "blue" "+")) -> ("something" "is" "round" "+"))
If something is blue then it is nice.
((("something" "is" "blue" "+")) -> ("something" "is" "nice" "+"))
If something is rough then it is blue.
((("something" "is" "rough" "+")) -> ("something" "is" "blue" "+"))
Round things are blue.
((("something" "is" "round" "+")) -> ("something" "is" "blue" "+"))
All nice, blue things are rough.
((("something" "is" "nice" "+") ("something" "is" "blue" "+")) -> ("something" "is" "rough" "+"))
Fiona is furry.
True
1
proof
[(triple8)]
("Fiona" "is" "furry" "+")
triple8
Gary is not young.
False
1
inv-proof
[(triple15)]
("Gary" "is" "young" "-")
triple15
Gary is blue.
True
2
proof
[(((triple13) -> rule4) OR ((triple14) -> rule5) OR ((((triple12) -> rule1)) -> rule5))]
("Gary" "is" "blue" "+")
((triple13) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple14) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((((triple12) -> (rule1 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is not blue.
False
2
inv-proof
[(((triple13) -> rule4) OR ((triple14) -> rule5) OR ((((triple12) -> rule1)) -> rule5))]
("Gary" "is" "blue" "-")
((triple13) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple14) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((((triple12) -> (rule1 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Fiona is nice.
True
3
proof
[(((((triple9) -> rule5)) -> rule3))]
("Fiona" "is" "nice" "+")
((((triple9) -> (rule5 % int2))) -> (rule3 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is not nice.
False
3
inv-proof
[(((((triple9) -> rule5)) -> rule3))]
("Fiona" "is" "nice" "-")
((((triple9) -> (rule5 % int2))) -> (rule3 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is rough.
True
6
proof
[(((((((triple9) -> rule5)) -> rule3) ((triple9) -> rule5)) -> rule6))]
("Fiona" "is" "rough" "+")
((((((triple9) -> (rule5 % int3))) -> (rule3 % int2)) ((triple9) -> (rule5 % int3))) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is not rough.
False
6
inv-proof
[(((((((triple9) -> rule5)) -> rule3) ((triple9) -> rule5)) -> rule6))]
("Fiona" "is" "rough" "-")
((((((triple9) -> (rule5 % int3))) -> (rule3 % int2)) ((triple9) -> (rule5 % int3))) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is not kind.
Unknown
inv-random
[@0: Fiona is kind.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "kind" "-")
Fiona is young.
Unknown
random
[@0: Fiona is young.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "young" "+")
@0: Bob is blue.[(triple1 OR ((triple5) -> rule4) OR ((triple6) -> rule5) OR ((((triple4) -> rule1)) -> rule5))] Bob is furry.[(triple2)] Bob is kind.[(triple3)] Bob is nice.[(triple4 OR ((triple1) -> rule3) OR ((((triple5) -> rule4)) -> rule3) OR ((((triple6) -> rule5)) -> rule3))] Bob is rough.[(triple5 OR ((triple4 triple1) -> rule6) OR ((triple4 ((triple6) -> rule5)) -> rule6) OR ((((triple1) -> rule3) triple1) -> rule6) OR ((((triple1) -> rule3) ((triple6) -> rule5)) -> rule6) OR ((triple4 ((((triple4) -> rule1)) -> rule5)) -> rule6) OR ((((((triple6) -> rule5)) -> rule3) triple1) -> rule6) OR ((((triple1) -> rule3) ((((triple4) -> rule1)) -> rule5)) -> rule6) OR ((((((triple6) -> rule5)) -> rule3) ((triple6) -> rule5)) -> rule6) OR ((((((triple6) -> rule5)) -> rule3) ((((triple4) -> rule1)) -> rule5)) -> rule6))] Bob is round.[(triple6 OR ((triple1) -> rule2) OR ((triple4) -> rule1) OR ((((triple1) -> rule3)) -> rule1) OR ((((triple5) -> rule4)) -> rule2) OR ((((((triple5) -> rule4)) -> rule3)) -> rule1))] Bob is young.[(triple7)] Fiona is furry.[(triple8)] Fiona is round.[(triple9)] Gary is furry.[(triple10)] Gary is kind.[(triple11)] Gary is nice.[(triple12 OR ((((triple13) -> rule4)) -> rule3) OR ((((triple14) -> rule5)) -> rule3))] Gary is rough.[(triple13 OR ((triple12 ((triple14) -> rule5)) -> rule6) OR ((triple12 ((((triple12) -> rule1)) -> rule5)) -> rule6) OR ((((((triple14) -> rule5)) -> rule3) ((triple14) -> rule5)) -> rule6) OR ((((((triple14) -> rule5)) -> rule3) ((((triple12) -> rule1)) -> rule5)) -> rule6))] Gary is round.[(triple14 OR ((triple12) -> rule1) OR ((((triple13) -> rule4)) -> rule2) OR ((((((triple13) -> rule4)) -> rule3)) -> rule1))] Gary is young.[(triple15)] @1: Fiona is blue.[(((triple9) -> rule5))] Gary is blue.[(((triple13) -> rule4) OR ((triple14) -> rule5) OR ((((triple12) -> rule1)) -> rule5))] @2: Fiona is nice.[(((((triple9) -> rule5)) -> rule3))] @3: Fiona is rough.[(((((((triple9) -> rule5)) -> rule3) ((triple9) -> rule5)) -> rule6))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple6) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple4) -> (rule1 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
triple2
Bob is kind.
("Bob" "is" "kind" "+")
triple3
Bob is nice.
("Bob" "is" "nice" "+")
triple4
((triple1) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple5) -> (rule4 % int2))) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple6) -> (rule5 % int2))) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
triple5
((triple4 triple1) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple4 ((triple6) -> (rule5 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple1) -> (rule3 % int2)) triple1) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple1) -> (rule3 % int3)) ((triple6) -> (rule5 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple4 ((((triple4) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((((triple6) -> (rule5 % int3))) -> (rule3 % int2)) triple1) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((triple1) -> (rule3 % int4)) ((((triple4) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is nice.
("Bob" "is" "nice" "+")
int4
((((((triple6) -> (rule5 % int3))) -> (rule3 % int2)) ((triple6) -> (rule5 % int3))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple6) -> (rule5 % int4))) -> (rule3 % int3)) ((((triple4) -> (rule1 % int2))) -> (rule5 % int4))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is round.
("Bob" "is" "round" "+")
triple6
((triple1) -> (rule2 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((triple4) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple5) -> (rule4 % int2))) -> (rule2 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple5) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
triple7
Fiona is furry.
("Fiona" "is" "furry" "+")
triple8
Fiona is round.
("Fiona" "is" "round" "+")
triple9
Gary is furry.
("Gary" "is" "furry" "+")
triple10
Gary is kind.
("Gary" "is" "kind" "+")
triple11
Gary is nice.
("Gary" "is" "nice" "+")
triple12
((((triple13) -> (rule4 % int2))) -> (rule3 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
((((triple14) -> (rule5 % int2))) -> (rule3 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
triple13
((triple12 ((triple14) -> (rule5 % int2))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
((triple12 ((((triple12) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((((((triple14) -> (rule5 % int3))) -> (rule3 % int2)) ((triple14) -> (rule5 % int3))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
((((((triple14) -> (rule5 % int4))) -> (rule3 % int3)) ((((triple12) -> (rule1 % int2))) -> (rule5 % int4))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is round.
("Gary" "is" "round" "+")
triple14
((triple12) -> (rule1 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
((((triple13) -> (rule4 % int2))) -> (rule2 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
((((((triple13) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is young.
("Gary" "is" "young" "+")
triple15
Fiona is blue.
("Fiona" "is" "blue" "+")
((triple9) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
((triple13) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple14) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((((triple12) -> (rule1 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
((((triple9) -> (rule5 % int2))) -> (rule3 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
((((((triple9) -> (rule5 % int3))) -> (rule3 % int2)) ((triple9) -> (rule5 % int3))) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3