Bob is furry. Bob is kind. Bob is smart. Bob is white. Bob is young. Erin is round. Fiona is furry. Fiona is rough. Fiona is round. Gary is kind. Gary is rough. Gary is smart. All kind, rough things are furry. If Bob is furry and Bob is white then Bob is rough. If something is furry then it is round. Young things are round. If something is white and smart then it is round. Furry, round things are young. White, round things are rough. If something is young then it is kind.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Bob is white.
("Bob" "is" "white" "+")
Bob is young.
("Bob" "is" "young" "+")
Erin is round.
("Erin" "is" "round" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is smart.
("Gary" "is" "smart" "+")
All kind, rough things are furry.
((("something" "is" "kind" "+") ("something" "is" "rough" "+")) -> ("something" "is" "furry" "+"))
If Bob is furry and Bob is white then Bob is rough.
((("Bob" "is" "furry" "+") ("Bob" "is" "white" "+")) -> ("Bob" "is" "rough" "+"))
If something is furry then it is round.
((("something" "is" "furry" "+")) -> ("something" "is" "round" "+"))
Young things are round.
((("something" "is" "young" "+")) -> ("something" "is" "round" "+"))
If something is white and smart then it is round.
((("something" "is" "white" "+") ("something" "is" "smart" "+")) -> ("something" "is" "round" "+"))
Furry, round things are young.
((("something" "is" "furry" "+") ("something" "is" "round" "+")) -> ("something" "is" "young" "+"))
White, round things are rough.
((("something" "is" "white" "+") ("something" "is" "round" "+")) -> ("something" "is" "rough" "+"))
If something is young then it is kind.
((("something" "is" "young" "+")) -> ("something" "is" "kind" "+"))
Bob is furry.
True
1
proof
[(triple1 OR ((triple2 ((triple4 ((triple5) -> rule4)) -> rule7)) -> rule1) OR ((triple2 ((triple4 ((triple4 triple3) -> rule5)) -> rule7)) -> rule1) OR ((((triple5) -> rule8) ((triple4 ((triple5) -> rule4)) -> rule7)) -> rule1) OR ((((triple5) -> rule8) ((triple4 ((triple4 triple3) -> rule5)) -> rule7)) -> rule1))]
("Bob" "is" "furry" "+")
triple1
((triple2 ((triple4 ((triple5) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((triple2 ((triple4 ((triple4 triple3) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((triple5) -> (rule8 % int4)) ((triple4 ((triple5) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
((((triple5) -> (rule8 % int4)) ((triple4 ((triple4 triple3) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is not white.
False
1
inv-proof
[(triple4)]
("Bob" "is" "white" "-")
triple4
Gary is furry.
True
3
proof
[(((triple10 triple11) -> rule1))]
("Gary" "is" "furry" "+")
((triple10 triple11) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Bob is not round.
False
2
inv-proof
[(((triple1) -> rule3) OR ((triple5) -> rule4) OR ((triple4 triple3) -> rule5))]
("Bob" "is" "round" "-")
((triple1) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((triple5) -> (rule4 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((triple4 triple3) -> (rule5 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Fiona is kind.
True
4
proof
[(((((triple7 triple9) -> rule6)) -> rule8) OR ((((triple7 ((triple7) -> rule3)) -> rule6)) -> rule8))]
("Fiona" "is" "kind" "+")
((((triple7 triple9) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
((((triple7 ((triple7) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Fiona is not kind.
False
4
inv-proof
[(((((triple7 triple9) -> rule6)) -> rule8) OR ((((triple7 ((triple7) -> rule3)) -> rule6)) -> rule8))]
("Fiona" "is" "kind" "-")
((((triple7 triple9) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
((((triple7 ((triple7) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Gary is young.
True
8
proof
[(((((triple10 triple11) -> rule1) ((((triple10 triple11) -> rule1)) -> rule3)) -> rule6))]
("Gary" "is" "young" "+")
((((triple10 triple11) -> (rule1 % int3)) ((((triple10 triple11) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is furry.
("Gary" "is" "furry" "+")
int3
Gary is not young.
False
8
inv-proof
[(((((triple10 triple11) -> rule1) ((((triple10 triple11) -> rule1)) -> rule3)) -> rule6))]
("Gary" "is" "young" "-")
((((triple10 triple11) -> (rule1 % int3)) ((((triple10 triple11) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is furry.
("Gary" "is" "furry" "+")
int3
Erin is not kind.
Unknown
inv-rconc
[@3: Erin is kind.[CWA. Example of deepest failure = (rule8 <- rule6 <- rule1 <- FAIL)]]
("Erin" "is" "kind" "-")
Erin is rough.
Unknown
rconc
[@1: Erin is rough.[CWA. Example of deepest failure = (rule7 <- FAIL)]]
("Erin" "is" "rough" "+")
Erin is not furry.
Unknown
inv-rconc
[@2: Erin is furry.[CWA. Example of deepest failure = (rule1 <- rule7 <- FAIL)]]
("Erin" "is" "furry" "-")
Erin is young.
Unknown
rconc
[@3: Erin is young.[CWA. Example of deepest failure = (rule6 <- rule1 <- rule8 <- FAIL)]]
("Erin" "is" "young" "+")
Erin is not white.
Unknown
inv-random
[@0: Erin is white.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "white" "-")
Gary is white.
Unknown
random
[@0: Gary is white.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "white" "+")
Fiona is not smart.
Unknown
inv-random
[@0: Fiona is smart.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "smart" "-")
Fiona is white.
Unknown
random
[@0: Fiona is white.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "white" "+")
@0: Bob is furry.[(triple1 OR ((triple2 ((triple4 ((triple5) -> rule4)) -> rule7)) -> rule1) OR ((triple2 ((triple4 ((triple4 triple3) -> rule5)) -> rule7)) -> rule1) OR ((((triple5) -> rule8) ((triple4 ((triple5) -> rule4)) -> rule7)) -> rule1) OR ((((triple5) -> rule8) ((triple4 ((triple4 triple3) -> rule5)) -> rule7)) -> rule1))] Bob is kind.[(triple2 OR ((triple5) -> rule8) OR ((((triple1 ((triple1) -> rule3)) -> rule6)) -> rule8) OR ((((triple1 ((triple4 triple3) -> rule5)) -> rule6)) -> rule8))] Bob is smart.[(triple3)] Bob is white.[(triple4)] Bob is young.[(triple5 OR ((triple1 ((triple1) -> rule3)) -> rule6) OR ((triple1 ((triple4 triple3) -> rule5)) -> rule6) OR ((((triple2 ((triple4 ((triple4 triple3) -> rule5)) -> rule7)) -> rule1) ((triple1) -> rule3)) -> rule6) OR ((((triple2 ((triple4 ((triple4 triple3) -> rule5)) -> rule7)) -> rule1) ((triple4 triple3) -> rule5)) -> rule6))] Erin is round.[(triple6)] Fiona is furry.[(triple7)] Fiona is rough.[(triple8)] Fiona is round.[(triple9 OR ((triple7) -> rule3))] Gary is kind.[(triple10)] Gary is rough.[(triple11)] Gary is smart.[(triple12)] @1: Bob is rough.[(((triple1 triple4) -> rule2) OR ((triple4 ((triple1) -> rule3)) -> rule7) OR ((triple4 ((triple5) -> rule4)) -> rule7) OR ((triple4 ((triple4 triple3) -> rule5)) -> rule7))] Bob is round.[(((triple1) -> rule3) OR ((triple5) -> rule4) OR ((triple4 triple3) -> rule5))] Fiona is young.[(((triple7 triple9) -> rule6) OR ((triple7 ((triple7) -> rule3)) -> rule6))] Gary is furry.[(((triple10 triple11) -> rule1))] @2: Fiona is kind.[(((((triple7 triple9) -> rule6)) -> rule8) OR ((((triple7 ((triple7) -> rule3)) -> rule6)) -> rule8))] Gary is round.[(((((triple10 triple11) -> rule1)) -> rule3))] @3: Gary is young.[(((((triple10 triple11) -> rule1) ((((triple10 triple11) -> rule1)) -> rule3)) -> rule6))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
((triple2 ((triple4 ((triple5) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((triple2 ((triple4 ((triple4 triple3) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((triple5) -> (rule8 % int4)) ((triple4 ((triple5) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
((((triple5) -> (rule8 % int4)) ((triple4 ((triple4 triple3) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is kind.
("Bob" "is" "kind" "+")
triple2
((triple5) -> (rule8 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple1 ((triple1) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((triple1 ((triple4 triple3) -> (rule5 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is smart.
("Bob" "is" "smart" "+")
triple3
Bob is white.
("Bob" "is" "white" "+")
triple4
Bob is young.
("Bob" "is" "young" "+")
triple5
((triple1 ((triple1) -> (rule3 % int2))) -> (rule6 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((triple1 ((triple4 triple3) -> (rule5 % int2))) -> (rule6 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple2 ((triple4 ((triple4 triple3) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule1 % int2)) ((triple1) -> (rule3 % int4))) -> (rule6 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
((((triple2 ((triple4 ((triple4 triple3) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule1 % int2)) ((triple4 triple3) -> (rule5 % int4))) -> (rule6 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
Erin is round.
("Erin" "is" "round" "+")
triple6
Fiona is furry.
("Fiona" "is" "furry" "+")
triple7
Fiona is rough.
("Fiona" "is" "rough" "+")
triple8
Fiona is round.
("Fiona" "is" "round" "+")
triple9
((triple7) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
triple10
Gary is rough.
("Gary" "is" "rough" "+")
triple11
Gary is smart.
("Gary" "is" "smart" "+")
triple12
Bob is rough.
("Bob" "is" "rough" "+")
((triple1 triple4) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple4 ((triple1) -> (rule3 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((triple4 ((triple5) -> (rule4 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((triple4 ((triple4 triple3) -> (rule5 % int2))) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
((triple1) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((triple5) -> (rule4 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((triple4 triple3) -> (rule5 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
((triple7 triple9) -> (rule6 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((triple7 ((triple7) -> (rule3 % int2))) -> (rule6 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Gary is furry.
("Gary" "is" "furry" "+")
((triple10 triple11) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
((((triple7 triple9) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
((((triple7 ((triple7) -> (rule3 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Gary is round.
("Gary" "is" "round" "+")
((((triple10 triple11) -> (rule1 % int2))) -> (rule3 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is young.
("Gary" "is" "young" "+")
((((triple10 triple11) -> (rule1 % int3)) ((((triple10 triple11) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule6 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is furry.
("Gary" "is" "furry" "+")
int3