This is not a bug, but a proposed simplification.
These lines include the following parts:
- (stor[W]) . (hb & avvisinc) . avdv
- visdv . (hb & avvisinc) . (stor[R])
Where avdv = stor[AVDEVICE] and visdv = stor[VISDEVICE]
We know that "SC0+SC1 = R+W"
, and avvisinc = (rai[((SC0+SC1)->(AVDEVICE+VISDEVICE)) + ...]) - iden + ...
, and no (R+W)&(AVDEVICE+VISDEVICE) (so we don't fall in the '- iden' case)
So (stor[W]) . avdv in avvisinc, and visdv . (stor[R]) in avvisinc.
So I suggest replacing "(hb & avvisinc)" by "hb" in these two lines.
This in turn would allow us to remove (SC0+SC1)->(AVDEVICE+VISDEVICE) from avvisinc, since avvisinc no longer appears in a position where either end could be AVDEVICE or VISDEVICE.