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