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