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