Bob is furry. Bob is not rough. Bob is not smart. Bob is not white. Charlie is kind. Charlie is red. Charlie is white. Harry is green. Harry is kind. Harry is not red. Harry is rough. Harry is not white. Rough things are smart. If something is red and rough then it is smart. Smart things are furry. If something is smart and not green then it is kind. All white things are rough. If something is white and not red then it is rough.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is not rough.
("Bob" "is" "rough" "-")
Bob is not smart.
("Bob" "is" "smart" "-")
Bob is not white.
("Bob" "is" "white" "-")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is not red.
("Harry" "is" "red" "-")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is not white.
("Harry" "is" "white" "-")
Rough things are smart.
((("something" "is" "rough" "+")) -> ("something" "is" "smart" "+"))
If something is red and rough then it is smart.
((("something" "is" "red" "+") ("something" "is" "rough" "+")) -> ("something" "is" "smart" "+"))
Smart things are furry.
((("something" "is" "smart" "+")) -> ("something" "is" "furry" "+"))
If something is smart and not green then it is kind.
((("something" "is" "smart" "+") ("something" "is" "green" "~")) -> ("something" "is" "kind" "+"))
All white things are rough.
((("something" "is" "white" "+")) -> ("something" "is" "rough" "+"))
If something is white and not red then it is rough.
((("something" "is" "white" "+") ("something" "is" "red" "~")) -> ("something" "is" "rough" "+"))
Bob is not white.
True
1
proof
[(triple4)]
("Bob" "is" "white" "-")
triple4
Harry is white.
False
1
inv-proof
[(triple12)]
("Harry" "is" "white" "+")
triple12
Charlie is rough.
True
2
proof
[(((triple7) -> rule5))]
("Charlie" "is" "rough" "+")
((triple7) -> (rule5 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Harry is not smart.
False
2
inv-proof
[(((triple11) -> rule1))]
("Harry" "is" "smart" "-")
((triple11) -> (rule1 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Charlie is smart.
True
3
proof
[(((((triple7) -> rule5)) -> rule1) OR ((triple6 ((triple7) -> rule5)) -> rule2))]
("Charlie" "is" "smart" "+")
((((triple7) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((triple6 ((triple7) -> (rule5 % int2))) -> (rule2 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Harry is not furry.
False
3
inv-proof
[(((((triple11) -> rule1)) -> rule3))]
("Harry" "is" "furry" "-")
((((triple11) -> (rule1 % int2))) -> (rule3 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Charlie is furry.
True
4
proof
[(((((((triple7) -> rule5)) -> rule1)) -> rule3) OR ((((triple6 ((triple7) -> rule5)) -> rule2)) -> rule3))]
("Charlie" "is" "furry" "+")
((((((triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple6 ((triple7) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is not furry.
False
4
inv-proof
[(((((((triple7) -> rule5)) -> rule1)) -> rule3) OR ((((triple6 ((triple7) -> rule5)) -> rule2)) -> rule3))]
("Charlie" "is" "furry" "-")
((((((triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple6 ((triple7) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Bob is not kind.
Unknown
inv-rconc
[@1: Bob is kind.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Bob" "is" "kind" "-")
Bob is red.
Unknown
random
[@0: Bob is red.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "red" "+")
Charlie is not green.
Unknown
inv-random
[@0: Charlie is green.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "green" "-")
Bob is green.
Unknown
random
[@0: Bob is green.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "green" "+")
@0: Bob is furry.[(triple1)] Bob is not rough.[(triple2)] Bob is not smart.[(triple3)] Bob is not white.[(triple4)] Charlie is kind.[(triple5)] Charlie is red.[(triple6)] Charlie is white.[(triple7)] Harry is green.[(triple8)] Harry is kind.[(triple9)] Harry is not red.[(triple10)] Harry is not white.[(triple12)] Harry is rough.[(triple11)] @1: Charlie is rough.[(((triple7) -> rule5))] Harry is smart.[(((triple11) -> rule1))] @2: Charlie is smart.[(((((triple7) -> rule5)) -> rule1) OR ((triple6 ((triple7) -> rule5)) -> rule2))] Harry is furry.[(((((triple11) -> rule1)) -> rule3))] @3: Charlie is furry.[(((((((triple7) -> rule5)) -> rule1)) -> rule3) OR ((((triple6 ((triple7) -> rule5)) -> rule2)) -> rule3))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
Bob is not rough.
("Bob" "is" "rough" "-")
triple2
Bob is not smart.
("Bob" "is" "smart" "-")
triple3
Bob is not white.
("Bob" "is" "white" "-")
triple4
Charlie is kind.
("Charlie" "is" "kind" "+")
triple5
Charlie is red.
("Charlie" "is" "red" "+")
triple6
Charlie is white.
("Charlie" "is" "white" "+")
triple7
Harry is green.
("Harry" "is" "green" "+")
triple8
Harry is kind.
("Harry" "is" "kind" "+")
triple9
Harry is not red.
("Harry" "is" "red" "-")
triple10
Harry is not white.
("Harry" "is" "white" "-")
triple12
Harry is rough.
("Harry" "is" "rough" "+")
triple11
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple7) -> (rule5 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
((triple11) -> (rule1 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
((((triple7) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((triple6 ((triple7) -> (rule5 % int2))) -> (rule2 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
((((triple11) -> (rule1 % int2))) -> (rule3 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
((((((triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((triple6 ((triple7) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3