Bitwise complement
(int-not operand) → result
Function:
(defun int-not (operand) (declare (xargs :guard (int-valuep operand))) (b* ((x (int-value->int operand))) (int-value (logext 32 (lognot x)))))
Theorem:
(defthm int-valuep-of-int-not (b* ((result (int-not operand))) (int-valuep result)) :rule-classes :rewrite)
Theorem:
(defthm int-not-of-int-value-fix-operand (equal (int-not (int-value-fix operand)) (int-not operand)))
Theorem:
(defthm int-not-int-value-equiv-congruence-on-operand (implies (int-value-equiv operand operand-equiv) (equal (int-not operand) (int-not operand-equiv))) :rule-classes :congruence)