Bob is quiet. Bob is smart. Fiona is cold. Fiona is furry. Fiona is quiet. Fiona is rough. Fiona is young. All furry people are rough. All smart people are furry. If someone is rough and quiet then they are blue.
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is young.
("Fiona" "is" "young" "+")
All furry people are rough.
((("someone" "is" "furry" "+")) -> ("someone" "is" "rough" "+"))
All smart people are furry.
((("someone" "is" "smart" "+")) -> ("someone" "is" "furry" "+"))
If someone is rough and quiet then they are blue.
((("someone" "is" "rough" "+") ("someone" "is" "quiet" "+")) -> ("someone" "is" "blue" "+"))
Fiona is quiet.
True
1
proof
[(triple5)]
("Fiona" "is" "quiet" "+")
triple5
Fiona is not quiet.
False
1
inv-proof
[(triple5)]
("Fiona" "is" "quiet" "-")
triple5
Bob is furry.
True
2
proof
[(((triple2) -> rule2))]
("Bob" "is" "furry" "+")
((triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Fiona is not blue.
False
3
inv-proof
[(((triple6 triple5) -> rule3) OR ((((triple4) -> rule1) triple5) -> rule3))]
("Fiona" "is" "blue" "-")
((triple6 triple5) -> (rule3 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
((((triple4) -> (rule1 % int2)) triple5) -> (rule3 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Bob is rough.
True
3
proof
[(((((triple2) -> rule2)) -> rule1))]
("Bob" "is" "rough" "+")
((((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is not rough.
False
3
inv-proof
[(((((triple2) -> rule2)) -> rule1))]
("Bob" "is" "rough" "-")
((((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is blue.
True
5
proof
[(((((((triple2) -> rule2)) -> rule1) triple1) -> rule3))]
("Bob" "is" "blue" "+")
((((((triple2) -> (rule2 % int3))) -> (rule1 % int2)) triple1) -> (rule3 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is not blue.
False
5
inv-proof
[(((((((triple2) -> rule2)) -> rule1) triple1) -> rule3))]
("Bob" "is" "blue" "-")
((((((triple2) -> (rule2 % int3))) -> (rule1 % int2)) triple1) -> (rule3 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is not young.
Unknown
inv-random
[@0: Bob is young.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "young" "-")
Bob is cold.
Unknown
random
[@0: Bob is cold.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "cold" "+")
@0: Bob is quiet.[(triple1)] Bob is smart.[(triple2)] Fiona is cold.[(triple3)] Fiona is furry.[(triple4)] Fiona is quiet.[(triple5)] Fiona is rough.[(triple6 OR ((triple4) -> rule1))] Fiona is young.[(triple7)] @1: Bob is furry.[(((triple2) -> rule2))] Fiona is blue.[(((triple6 triple5) -> rule3) OR ((((triple4) -> rule1) triple5) -> rule3))] @2: Bob is rough.[(((((triple2) -> rule2)) -> rule1))] @3: Bob is blue.[(((((((triple2) -> rule2)) -> rule1) triple1) -> rule3))]
Bob is quiet.
("Bob" "is" "quiet" "+")
triple1
Bob is smart.
("Bob" "is" "smart" "+")
triple2
Fiona is cold.
("Fiona" "is" "cold" "+")
triple3
Fiona is furry.
("Fiona" "is" "furry" "+")
triple4
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple5
Fiona is rough.
("Fiona" "is" "rough" "+")
triple6
((triple4) -> (rule1 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
triple7
Bob is furry.
("Bob" "is" "furry" "+")
((triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
((triple6 triple5) -> (rule3 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
((((triple4) -> (rule1 % int2)) triple5) -> (rule3 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
((((((triple2) -> (rule2 % int3))) -> (rule1 % int2)) triple1) -> (rule3 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3