Function:
(defun bitset-binary-union$inline (x y) (declare (type unsigned-byte x) (type unsigned-byte y)) (declare (xargs :guard (and (natp x) (natp y)))) (declare (xargs :split-types t)) (let ((__function__ 'bitset-binary-union)) (declare (ignorable __function__)) (the unsigned-byte (logior (the unsigned-byte (lnfix x)) (the unsigned-byte (lnfix y))))))
Theorem:
(defthm natp-of-bitset-binary-union (b* ((bitset (bitset-binary-union$inline x y))) (natp bitset)) :rule-classes :type-prescription)
Theorem:
(defthm bitset-union-when-not-natp-left (implies (not (natp x)) (equal (bitset-union x y) (nfix y))))
Theorem:
(defthm bitset-union-when-not-natp-right (implies (not (natp y)) (equal (bitset-union x y) (nfix x))))
Theorem:
(defthm bitset-union-of-nfix-left (equal (bitset-union (nfix x) y) (bitset-union x y)))
Theorem:
(defthm bitset-union-of-nfix-right (equal (bitset-union x (nfix y)) (bitset-union x y)))
Theorem:
(defthm bitset-members-of-bitset-union (equal (bitset-members (bitset-union x y)) (union (bitset-members x) (bitset-members y))))