The hash function used by
(hash x) → hash
This is just a wrapper around jenkins-hash. This function is defined to allow us to easily switch hash functions if needed. To hash objects (e.g., for use with heap<-with-hashes), users should call this function instead of jenkins-hash.
Function:
(defun hash$inline (x) (declare (xargs :type-prescription (natp (hash x)))) (declare (xargs :guard t)) (jenkins-hash x))
Theorem:
(defthm return-type-of-hash (b* ((hash (hash$inline x))) (unsigned-byte-p 32 hash)) :rule-classes :rewrite)