Bob is furry. Bob is round. Bob is young. Charlie is furry. Charlie is kind. Charlie is nice. Charlie is rough. Charlie is young. Harry is furry. Harry is kind. Harry is quiet. Harry is young. Round people are furry. Furry, round people are kind. If someone is quiet and nice then they are round. Round people are furry. If someone is nice and kind then they are quiet. All rough people are furry.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is round.
("Bob" "is" "round" "+")
Bob is young.
("Bob" "is" "young" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is young.
("Harry" "is" "young" "+")
Round people are furry.
((("someone" "is" "round" "+")) -> ("someone" "is" "furry" "+"))
Furry, round people are kind.
((("someone" "is" "furry" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "kind" "+"))
If someone is quiet and nice then they are round.
((("someone" "is" "quiet" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "round" "+"))
Round people are furry.
((("someone" "is" "round" "+")) -> ("someone" "is" "furry" "+"))
If someone is nice and kind then they are quiet.
((("someone" "is" "nice" "+") ("someone" "is" "kind" "+")) -> ("someone" "is" "quiet" "+"))
All rough people are furry.
((("someone" "is" "rough" "+")) -> ("someone" "is" "furry" "+"))
Charlie is furry.
True
1
proof
[(triple4 OR ((triple7) -> rule6) OR ((((((triple6 triple5) -> rule5) triple6) -> rule3)) -> rule1) OR ((((((triple6 triple5) -> rule5) triple6) -> rule3)) -> rule4))]
("Charlie" "is" "furry" "+")
triple4
((triple7) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((((triple6 triple5) -> (rule5 % int3)) triple6) -> (rule3 % int2))) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
((((((triple6 triple5) -> (rule5 % int3)) triple6) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
Charlie is not nice.
False
1
inv-proof
[(triple6)]
("Charlie" "is" "nice" "-")
triple6
Harry is not round.
Unknown
inv-rconc
[@1: Harry is round.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Harry" "is" "round" "-")
Bob is nice.
Unknown
random
[@0: Bob is nice.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "nice" "+")
@0: Bob is furry.[(triple1 OR ((triple2) -> rule1) OR ((triple2) -> rule4))] Bob is round.[(triple2)] Bob is young.[(triple3)] Charlie is furry.[(triple4 OR ((triple7) -> rule6) OR ((((((triple6 triple5) -> rule5) triple6) -> rule3)) -> rule1) OR ((((((triple6 triple5) -> rule5) triple6) -> rule3)) -> rule4))] Charlie is kind.[(triple5)] Charlie is nice.[(triple6)] Charlie is rough.[(triple7)] Charlie is young.[(triple8)] Harry is furry.[(triple9)] Harry is kind.[(triple10)] Harry is quiet.[(triple11)] Harry is young.[(triple12)] @1: Bob is kind.[(((triple1 triple2) -> rule2) OR ((((triple2) -> rule1) triple2) -> rule2) OR ((((triple2) -> rule4) triple2) -> rule2))] Charlie is quiet.[(((triple6 triple5) -> rule5))] @2: Charlie is round.[(((((triple6 triple5) -> rule5) triple6) -> rule3))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
((triple2) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple2) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
triple2
Bob is young.
("Bob" "is" "young" "+")
triple3
Charlie is furry.
("Charlie" "is" "furry" "+")
triple4
((triple7) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((((triple6 triple5) -> (rule5 % int3)) triple6) -> (rule3 % int2))) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
((((((triple6 triple5) -> (rule5 % int3)) triple6) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
triple5
Charlie is nice.
("Charlie" "is" "nice" "+")
triple6
Charlie is rough.
("Charlie" "is" "rough" "+")
triple7
Charlie is young.
("Charlie" "is" "young" "+")
triple8
Harry is furry.
("Harry" "is" "furry" "+")
triple9
Harry is kind.
("Harry" "is" "kind" "+")
triple10
Harry is quiet.
("Harry" "is" "quiet" "+")
triple11
Harry is young.
("Harry" "is" "young" "+")
triple12
Bob is kind.
("Bob" "is" "kind" "+")
((triple1 triple2) -> (rule2 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple2) -> (rule1 % int2)) triple2) -> (rule2 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple2) -> (rule4 % int2)) triple2) -> (rule2 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
((triple6 triple5) -> (rule5 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
((((triple6 triple5) -> (rule5 % int2)) triple6) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2