Surprisingly that question and problem appeared already in another question. It seems that you are reading (a => b | c) as an implication of a disjunction. However, it is the Shannon operator and mans if-then-else, i.e., (a=>b|c) is equivalent to (a->b) & (!a->c). It is not (a->b|c).