Bob is big. Bob is nice. Charlie is cold. Fiona is big. Fiona is cold. Fiona is furry. Fiona is nice. Fiona is red. Fiona is rough. Fiona is round. All big people are round. Rough people are red. If someone is nice and rough then they are cold. Cold people are big. Furry people are round. All big people are rough. If someone is big then they are nice. Furry, rough people are red.
Bob is big.
("Bob" "is" "big" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
All big people are round.
((("someone" "is" "big" "+")) -> ("someone" "is" "round" "+"))
Rough people are red.
((("someone" "is" "rough" "+")) -> ("someone" "is" "red" "+"))
If someone is nice and rough then they are cold.
((("someone" "is" "nice" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "cold" "+"))
Cold people are big.
((("someone" "is" "cold" "+")) -> ("someone" "is" "big" "+"))
Furry people are round.
((("someone" "is" "furry" "+")) -> ("someone" "is" "round" "+"))
All big people are rough.
((("someone" "is" "big" "+")) -> ("someone" "is" "rough" "+"))
If someone is big then they are nice.
((("someone" "is" "big" "+")) -> ("someone" "is" "nice" "+"))
Furry, rough people are red.
((("someone" "is" "furry" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "red" "+"))
Fiona is furry.
True
1
proof
[(triple6)]
("Fiona" "is" "furry" "+")
triple6
Fiona is not nice.
False
1
inv-proof
[(triple7 OR ((triple4) -> rule7) OR ((((triple5) -> rule4)) -> rule7))]
("Fiona" "is" "nice" "-")
triple7
((triple4) -> (rule7 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple5) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Charlie is big.
True
2
proof
[(((triple3) -> rule4))]
("Charlie" "is" "big" "+")
((triple3) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is not big.
False
2
inv-proof
[(((triple3) -> rule4))]
("Charlie" "is" "big" "-")
((triple3) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Bob is red.
True
3
proof
[(((((triple1) -> rule6)) -> rule2))]
("Bob" "is" "red" "+")
((((triple1) -> (rule6 % int2))) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Charlie is not round.
False
3
inv-proof
[(((((triple3) -> rule4)) -> rule1))]
("Charlie" "is" "round" "-")
((((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is not furry.
Unknown
inv-random
[@0: Charlie is furry.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "furry" "-")
Bob is furry.
Unknown
random
[@0: Bob is furry.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "furry" "+")
@0: Bob is big.[(triple1)] Bob is nice.[(triple2 OR ((triple1) -> rule7))] Charlie is cold.[(triple3)] Fiona is big.[(triple4 OR ((triple5) -> rule4) OR ((((triple7 triple9) -> rule3)) -> rule4))] Fiona is cold.[(triple5 OR ((triple7 triple9) -> rule3) OR ((triple7 ((triple4) -> rule6)) -> rule3) OR ((((triple4) -> rule7) triple9) -> rule3) OR ((((triple4) -> rule7) ((triple4) -> rule6)) -> rule3))] Fiona is furry.[(triple6)] Fiona is nice.[(triple7 OR ((triple4) -> rule7) OR ((((triple5) -> rule4)) -> rule7))] Fiona is red.[(triple8 OR ((triple9) -> rule2) OR ((triple6 triple9) -> rule8) OR ((((triple4) -> rule6)) -> rule2) OR ((triple6 ((triple4) -> rule6)) -> rule8) OR ((((((triple5) -> rule4)) -> rule6)) -> rule2) OR ((triple6 ((((triple5) -> rule4)) -> rule6)) -> rule8))] Fiona is rough.[(triple9 OR ((triple4) -> rule6) OR ((((triple5) -> rule4)) -> rule6))] Fiona is round.[(triple10 OR ((triple4) -> rule1) OR ((triple6) -> rule5) OR ((((triple5) -> rule4)) -> rule1) OR ((((((triple7 triple9) -> rule3)) -> rule4)) -> rule1))] @1: Bob is rough.[(((triple1) -> rule6))] Bob is round.[(((triple1) -> rule1))] Charlie is big.[(((triple3) -> rule4))] @2: Bob is cold.[(((triple2 ((triple1) -> rule6)) -> rule3) OR ((((triple1) -> rule7) ((triple1) -> rule6)) -> rule3))] Bob is red.[(((((triple1) -> rule6)) -> rule2))] Charlie is nice.[(((((triple3) -> rule4)) -> rule7))] Charlie is rough.[(((((triple3) -> rule4)) -> rule6))] Charlie is round.[(((((triple3) -> rule4)) -> rule1))] @3: Charlie is red.[(((((((triple3) -> rule4)) -> rule6)) -> rule2))]
Bob is big.
("Bob" "is" "big" "+")
triple1
Bob is nice.
("Bob" "is" "nice" "+")
triple2
((triple1) -> (rule7 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple3
Fiona is big.
("Fiona" "is" "big" "+")
triple4
((triple5) -> (rule4 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
((((triple7 triple9) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
triple5
((triple7 triple9) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((triple7 ((triple4) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple4) -> (rule7 % int2)) triple9) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
((((triple4) -> (rule7 % int3)) ((triple4) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
triple6
Fiona is nice.
("Fiona" "is" "nice" "+")
triple7
((triple4) -> (rule7 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple5) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
triple8
((triple9) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple6 triple9) -> (rule8 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple4) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((triple6 ((triple4) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((((triple5) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
((triple6 ((((triple5) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
triple9
((triple4) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((triple5) -> (rule4 % int2))) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
triple10
((triple4) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple6) -> (rule5 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple5) -> (rule4 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
((((((triple7 triple9) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
((triple1) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
((triple1) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
((triple3) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
((triple2 ((triple1) -> (rule6 % int2))) -> (rule3 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple1) -> (rule7 % int3)) ((triple1) -> (rule6 % int2))) -> (rule3 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is red.
("Bob" "is" "red" "+")
((((triple1) -> (rule6 % int2))) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
((((triple3) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
((((triple3) -> (rule4 % int2))) -> (rule6 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
((((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
((((((triple3) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule2 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3