Solving non-linear Boolean equation systems by variable elimination