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