Bob is nice. Bob is red. Dave is red. Fiona is quiet. Fiona is not young. Harry is not nice. Harry is not red. If Bob is cold and Bob is quiet then Bob is not young. If someone is quiet then they are furry. All nice people are furry. If someone is red then they are furry. All quiet people are rough. Furry people are quiet. If someone is nice and young then they are quiet. All rough, red people are cold. All quiet, young people are not red.
Bob is nice.
("Bob" "is" "nice" "+")
Bob is red.
("Bob" "is" "red" "+")
Dave is red.
("Dave" "is" "red" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is not young.
("Fiona" "is" "young" "-")
Harry is not nice.
("Harry" "is" "nice" "-")
Harry is not red.
("Harry" "is" "red" "-")
If Bob is cold and Bob is quiet then Bob is not young.
((("Bob" "is" "cold" "+") ("Bob" "is" "quiet" "+")) -> ("Bob" "is" "young" "-"))
If someone is quiet then they are furry.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "furry" "+"))
All nice people are furry.
((("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "+"))
If someone is red then they are furry.
((("someone" "is" "red" "+")) -> ("someone" "is" "furry" "+"))
All quiet people are rough.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "rough" "+"))
Furry people are quiet.
((("someone" "is" "furry" "+")) -> ("someone" "is" "quiet" "+"))
If someone is nice and young then they are quiet.
((("someone" "is" "nice" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "quiet" "+"))
All rough, red people are cold.
((("someone" "is" "rough" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "cold" "+"))
All quiet, young people are not red.
((("someone" "is" "quiet" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "red" "-"))
Bob is red.
True
1
proof
[(triple2)]
("Bob" "is" "red" "+")
triple2
Bob is not red.
False
1
inv-proof
[(triple2)]
("Bob" "is" "red" "-")
triple2
Bob is furry.
True
2
proof
[(((triple1) -> rule3) OR ((triple2) -> rule4))]
("Bob" "is" "furry" "+")
((triple1) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple2) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Fiona is not furry.
False
2
inv-proof
[(((triple4) -> rule2))]
("Fiona" "is" "furry" "-")
((triple4) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Bob is quiet.
True
3
proof
[(((((triple1) -> rule3)) -> rule6) OR ((((triple2) -> rule4)) -> rule6))]
("Bob" "is" "quiet" "+")
((((triple1) -> (rule3 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is not quiet.
False
3
inv-proof
[(((((triple1) -> rule3)) -> rule6) OR ((((triple2) -> rule4)) -> rule6))]
("Bob" "is" "quiet" "-")
((((triple1) -> (rule3 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is rough.
True
4
proof
[(((((((triple1) -> rule3)) -> rule6)) -> rule5) OR ((((((triple2) -> rule4)) -> rule6)) -> rule5))]
("Bob" "is" "rough" "+")
((((((triple1) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is not rough.
False
4
inv-proof
[(((((((triple1) -> rule3)) -> rule6)) -> rule5) OR ((((((triple2) -> rule4)) -> rule6)) -> rule5))]
("Bob" "is" "rough" "-")
((((((triple1) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is cold.
True
6
proof
[(((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) OR ((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8))]
("Bob" "is" "cold" "+")
((((((((triple1) -> (rule3 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple2) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((((triple2) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple2) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Bob is not cold.
False
6
inv-proof
[(((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) OR ((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8))]
("Bob" "is" "cold" "-")
((((((((triple1) -> (rule3 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple2) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((((triple2) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple2) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Bob is not young.
True
10
proof
[(((((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple1) -> rule3)) -> rule6)) -> rule1) OR ((((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple2) -> rule4)) -> rule6)) -> rule1) OR ((((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple1) -> rule3)) -> rule6)) -> rule1) OR ((((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple2) -> rule4)) -> rule6)) -> rule1))]
("Bob" "is" "young" "-")
((((((((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
Bob is young.
False
10
inv-proof
[(((((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple1) -> rule3)) -> rule6)) -> rule1) OR ((((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple2) -> rule4)) -> rule6)) -> rule1) OR ((((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple1) -> rule3)) -> rule6)) -> rule1) OR ((((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple2) -> rule4)) -> rule6)) -> rule1))]
("Bob" "is" "young" "+")
((((((((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
Harry is not quiet.
Unknown
inv-rconc
[@3: Harry is quiet.[CWA. Example of deepest failure = (rule6 <- rule2 <- rule7 <- FAIL)]]
("Harry" "is" "quiet" "-")
Fiona is cold.
Unknown
rconc
[@1: Fiona is cold.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Fiona" "is" "cold" "+")
Harry is not furry.
Unknown
inv-rconc
[@3: Harry is furry.[CWA. Example of deepest failure = (rule2 <- rule6 <- rule3 <- FAIL)]]
("Harry" "is" "furry" "-")
Harry is cold.
Unknown
rconc
[@1: Harry is cold.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Harry" "is" "cold" "+")
Harry is not rough.
Unknown
inv-rconc
[@4: Harry is rough.[CWA. Example of deepest failure = (rule5 <- rule6 <- rule2 <- rule7 <- FAIL)]]
("Harry" "is" "rough" "-")
Dave is young.
Unknown
random
[@0: Dave is young.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "young" "+")
Dave is not nice.
Unknown
inv-random
[@0: Dave is nice.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "nice" "-")
Fiona is red.
Unknown
random
[@0: Fiona is red.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "red" "+")
Fiona is not nice.
Unknown
inv-random
[@0: Fiona is nice.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "nice" "-")
Harry is young.
Unknown
random
[@0: Harry is young.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "young" "+")
@0: Bob is nice.[(triple1)] Bob is red.[(triple2)] Dave is red.[(triple3)] Fiona is not young.[(triple5)] Fiona is quiet.[(triple4)] Harry is not nice.[(triple6)] Harry is not red.[(triple7)] @1: Bob is furry.[(((triple1) -> rule3) OR ((triple2) -> rule4))] Dave is furry.[(((triple3) -> rule4))] Fiona is furry.[(((triple4) -> rule2))] Fiona is rough.[(((triple4) -> rule5))] @2: Bob is quiet.[(((((triple1) -> rule3)) -> rule6) OR ((((triple2) -> rule4)) -> rule6))] Dave is quiet.[(((((triple3) -> rule4)) -> rule6))] @3: Bob is rough.[(((((((triple1) -> rule3)) -> rule6)) -> rule5) OR ((((((triple2) -> rule4)) -> rule6)) -> rule5))] Dave is rough.[(((((((triple3) -> rule4)) -> rule6)) -> rule5))] @4: Bob is cold.[(((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) OR ((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8))] Dave is cold.[(((((((((triple3) -> rule4)) -> rule6)) -> rule5) triple3) -> rule8))] @5: Bob is not young.[(((((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple1) -> rule3)) -> rule6)) -> rule1) OR ((((((((((triple1) -> rule3)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple2) -> rule4)) -> rule6)) -> rule1) OR ((((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple1) -> rule3)) -> rule6)) -> rule1) OR ((((((((((triple2) -> rule4)) -> rule6)) -> rule5) triple2) -> rule8) ((((triple2) -> rule4)) -> rule6)) -> rule1))]
Bob is nice.
("Bob" "is" "nice" "+")
triple1
Bob is red.
("Bob" "is" "red" "+")
triple2
Dave is red.
("Dave" "is" "red" "+")
triple3
Fiona is not young.
("Fiona" "is" "young" "-")
triple5
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple4
Harry is not nice.
("Harry" "is" "nice" "-")
triple6
Harry is not red.
("Harry" "is" "red" "-")
triple7
Bob is furry.
("Bob" "is" "furry" "+")
((triple1) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple2) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
((triple3) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
((triple4) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
((triple4) -> (rule5 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
((((triple1) -> (rule3 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
((((triple3) -> (rule4 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((((((triple1) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
((((((triple3) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
Bob is cold.
("Bob" "is" "cold" "+")
((((((((triple1) -> (rule3 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple2) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((((triple2) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple2) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Dave is cold.
("Dave" "is" "cold" "+")
((((((((triple3) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2)) triple3) -> (rule8 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Bob is not young.
("Bob" "is" "young" "-")
((((((((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple1) -> (rule3 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5
((((((((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule5 % int3)) triple2) -> (rule8 % int2)) ((((triple2) -> (rule4 % int5))) -> (rule6 % int4))) -> (rule1 % int1))
Bob is not young.
("Bob" "is" "young" "-")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
int4
Bob is furry.
("Bob" "is" "furry" "+")
int5