Bob is nice. Bob is quiet. Bob is rough. Bob is white. Bob is young. Dave is quiet. Dave is white. Harry is nice. Harry is quiet. Harry is red. Harry is rough. Harry is young. All rough, nice things are red. Nice, red things are furry. If something is young and rough then it is nice.
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is white.
("Bob" "is" "white" "+")
Bob is young.
("Bob" "is" "young" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Dave is white.
("Dave" "is" "white" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is young.
("Harry" "is" "young" "+")
All rough, nice things are red.
((("something" "is" "rough" "+") ("something" "is" "nice" "+")) -> ("something" "is" "red" "+"))
Nice, red things are furry.
((("something" "is" "nice" "+") ("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
If something is young and rough then it is nice.
((("something" "is" "young" "+") ("something" "is" "rough" "+")) -> ("something" "is" "nice" "+"))
Harry is quiet.
True
1
proof
[(triple9)]
("Harry" "is" "quiet" "+")
triple9
Bob is not young.
False
1
inv-proof
[(triple5)]
("Bob" "is" "young" "-")
triple5
Bob is red.
True
3
proof
[(((triple3 triple1) -> rule1) OR ((triple3 ((triple5 triple3) -> rule3)) -> rule1))]
("Bob" "is" "red" "+")
((triple3 triple1) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple3 ((triple5 triple3) -> (rule3 % int2))) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Harry is not furry.
False
3
inv-proof
[(((triple8 triple10) -> rule2) OR ((triple8 ((triple11 triple8) -> rule1)) -> rule2) OR ((((triple12 triple11) -> rule3) triple10) -> rule2) OR ((((triple12 triple11) -> rule3) ((triple11 triple8) -> rule1)) -> rule2) OR ((triple8 ((triple11 ((triple12 triple11) -> rule3)) -> rule1)) -> rule2) OR ((((triple12 triple11) -> rule3) ((triple11 ((triple12 triple11) -> rule3)) -> rule1)) -> rule2))]
("Harry" "is" "furry" "-")
((triple8 triple10) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple8 ((triple11 triple8) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
((((triple12 triple11) -> (rule3 % int2)) triple10) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple12 triple11) -> (rule3 % int3)) ((triple11 triple8) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple8 ((triple11 ((triple12 triple11) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((triple12 triple11) -> (rule3 % int3)) ((triple11 ((triple12 triple11) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Bob is furry.
True
5
proof
[(((triple1 ((triple3 triple1) -> rule1)) -> rule2) OR ((((triple5 triple3) -> rule3) ((triple3 triple1) -> rule1)) -> rule2) OR ((triple1 ((triple3 ((triple5 triple3) -> rule3)) -> rule1)) -> rule2) OR ((((triple5 triple3) -> rule3) ((triple3 ((triple5 triple3) -> rule3)) -> rule1)) -> rule2))]
("Bob" "is" "furry" "+")
((triple1 ((triple3 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple5 triple3) -> (rule3 % int3)) ((triple3 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple1 ((triple3 ((triple5 triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple5 triple3) -> (rule3 % int3)) ((triple3 ((triple5 triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is not furry.
False
5
inv-proof
[(((triple1 ((triple3 triple1) -> rule1)) -> rule2) OR ((((triple5 triple3) -> rule3) ((triple3 triple1) -> rule1)) -> rule2) OR ((triple1 ((triple3 ((triple5 triple3) -> rule3)) -> rule1)) -> rule2) OR ((((triple5 triple3) -> rule3) ((triple3 ((triple5 triple3) -> rule3)) -> rule1)) -> rule2))]
("Bob" "is" "furry" "-")
((triple1 ((triple3 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple5 triple3) -> (rule3 % int3)) ((triple3 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple1 ((triple3 ((triple5 triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple5 triple3) -> (rule3 % int3)) ((triple3 ((triple5 triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Dave is not furry.
Unknown
inv-rconc
[@2: Dave is furry.[CWA. Example of deepest failure = (rule2 <- rule3 <- FAIL)]]
("Dave" "is" "furry" "-")
Dave is nice.
Unknown
rconc
[@1: Dave is nice.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Dave" "is" "nice" "+")
Dave is not red.
Unknown
inv-rconc
[@1: Dave is red.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Dave" "is" "red" "-")
Harry is white.
Unknown
random
[@0: Harry is white.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "white" "+")
Dave is not young.
Unknown
inv-random
[@0: Dave is young.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "young" "-")
Dave is rough.
Unknown
random
[@0: Dave is rough.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "rough" "+")
@0: Bob is nice.[(triple1 OR ((triple5 triple3) -> rule3))] Bob is quiet.[(triple2)] Bob is rough.[(triple3)] Bob is white.[(triple4)] Bob is young.[(triple5)] Dave is quiet.[(triple6)] Dave is white.[(triple7)] Harry is nice.[(triple8 OR ((triple12 triple11) -> rule3))] Harry is quiet.[(triple9)] Harry is red.[(triple10 OR ((triple11 triple8) -> rule1) OR ((triple11 ((triple12 triple11) -> rule3)) -> rule1))] Harry is rough.[(triple11)] Harry is young.[(triple12)] @1: Bob is red.[(((triple3 triple1) -> rule1) OR ((triple3 ((triple5 triple3) -> rule3)) -> rule1))] Harry is furry.[(((triple8 triple10) -> rule2) OR ((triple8 ((triple11 triple8) -> rule1)) -> rule2) OR ((((triple12 triple11) -> rule3) triple10) -> rule2) OR ((((triple12 triple11) -> rule3) ((triple11 triple8) -> rule1)) -> rule2) OR ((triple8 ((triple11 ((triple12 triple11) -> rule3)) -> rule1)) -> rule2) OR ((((triple12 triple11) -> rule3) ((triple11 ((triple12 triple11) -> rule3)) -> rule1)) -> rule2))] @2: Bob is furry.[(((triple1 ((triple3 triple1) -> rule1)) -> rule2) OR ((((triple5 triple3) -> rule3) ((triple3 triple1) -> rule1)) -> rule2) OR ((triple1 ((triple3 ((triple5 triple3) -> rule3)) -> rule1)) -> rule2) OR ((((triple5 triple3) -> rule3) ((triple3 ((triple5 triple3) -> rule3)) -> rule1)) -> rule2))]
Bob is nice.
("Bob" "is" "nice" "+")
triple1
((triple5 triple3) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple2
Bob is rough.
("Bob" "is" "rough" "+")
triple3
Bob is white.
("Bob" "is" "white" "+")
triple4
Bob is young.
("Bob" "is" "young" "+")
triple5
Dave is quiet.
("Dave" "is" "quiet" "+")
triple6
Dave is white.
("Dave" "is" "white" "+")
triple7
Harry is nice.
("Harry" "is" "nice" "+")
triple8
((triple12 triple11) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
triple9
Harry is red.
("Harry" "is" "red" "+")
triple10
((triple11 triple8) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((triple11 ((triple12 triple11) -> (rule3 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
triple11
Harry is young.
("Harry" "is" "young" "+")
triple12
Bob is red.
("Bob" "is" "red" "+")
((triple3 triple1) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple3 ((triple5 triple3) -> (rule3 % int2))) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
((triple8 triple10) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple8 ((triple11 triple8) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
((((triple12 triple11) -> (rule3 % int2)) triple10) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple12 triple11) -> (rule3 % int3)) ((triple11 triple8) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple8 ((triple11 ((triple12 triple11) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((triple12 triple11) -> (rule3 % int3)) ((triple11 ((triple12 triple11) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
((triple1 ((triple3 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple5 triple3) -> (rule3 % int3)) ((triple3 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((triple1 ((triple3 ((triple5 triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple5 triple3) -> (rule3 % int3)) ((triple3 ((triple5 triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3