Theorems about reads of memory over writes of registers.
These theorems are all enabled by default because they always clearly simplify the term.
Theorem:
(defthm read-mem8-of-write-xreg (equal (read-mem8 addr (write-xreg reg val stat feat) feat) (read-mem8 addr stat feat)))
Theorem:
(defthm read-mem16-of-write-xreg (equal (read-mem16 addr (write-xreg reg val stat feat) feat) (read-mem16 addr stat feat)))
Theorem:
(defthm read-mem32-of-write-xreg (equal (read-mem32 addr (write-xreg reg val stat feat) feat) (read-mem32 addr stat feat)))
Theorem:
(defthm read-mem64-of-write-xreg (equal (read-mem64 addr (write-xreg reg val stat feat) feat) (read-mem64 addr stat feat)))
Theorem:
(defthm read-mem8-of-write-xreg-32 (equal (read-mem8 addr (write-xreg-32 reg val stat feat) feat) (read-mem8 addr stat feat)))
Theorem:
(defthm read-mem16-of-write-xreg-32 (equal (read-mem16 addr (write-xreg-32 reg val stat feat) feat) (read-mem16 addr stat feat)))
Theorem:
(defthm read-mem32-of-write-xreg-32 (equal (read-mem32 addr (write-xreg-32 reg val stat feat) feat) (read-mem32 addr stat feat)))
Theorem:
(defthm read-mem64-of-write-xreg-32 (equal (read-mem64 addr (write-xreg-32 reg val stat feat) feat) (read-mem64 addr stat feat)))