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