Multiplying constant N-bit signed * N-bit unsigned creates an N+N bit signed.
This is a more automatic lousy-signed-byte-p-of-mixed-* for reasoning about constant widths. The use of division here looks awful, but note the syntaxp hyp.
Theorem:
(defthm basic-signed-byte-p-of-mixed-* (implies (and (syntaxp (quotep n)) (natp n) (or (and (signed-byte-p (/ n 2) a) (unsigned-byte-p (/ n 2) b)) (and (unsigned-byte-p (/ n 2) a) (signed-byte-p (/ n 2) b)))) (signed-byte-p n (* a b))))