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