Theorem:
(defthm xr-not-mem-and-get-prefixes (implies (and (not (equal fld :mem)) (not (equal fld :tlb)) (not (equal fld :fault))) (equal (xr fld index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr fld index x86))))
Theorem:
(defthm xr-ms-mv-nth-3-get-prefixes (equal (xr :ms index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :ms index x86)))
Theorem:
(defthm xr-env-mv-nth-3-get-prefixes (equal (xr :env index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :env index x86)))
Theorem:
(defthm xr-undef-mv-nth-3-get-prefixes (equal (xr :undef index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :undef index x86)))
Theorem:
(defthm xr-app-view-mv-nth-3-get-prefixes (equal (xr :app-view index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :app-view index x86)))
Theorem:
(defthm xr-marking-view-mv-nth-3-get-prefixes (equal (xr :marking-view index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :marking-view index x86)))
Theorem:
(defthm xr-enable-peripherals-mv-nth-3-get-prefixes (equal (xr :enable-peripherals index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :enable-peripherals index x86)))
Theorem:
(defthm xr-handle-exceptions-mv-nth-3-get-prefixes (equal (xr :handle-exceptions index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :handle-exceptions index x86)))
Theorem:
(defthm xr-os-info-mv-nth-3-get-prefixes (equal (xr :os-info index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :os-info index x86)))
Theorem:
(defthm xr-rgf-mv-nth-3-get-prefixes (equal (xr :rgf index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :rgf index x86)))
Theorem:
(defthm xr-rip-mv-nth-3-get-prefixes (equal (xr :rip index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :rip index x86)))
Theorem:
(defthm xr-rflags-mv-nth-3-get-prefixes (equal (xr :rflags index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :rflags index x86)))
Theorem:
(defthm xr-seg-visible-mv-nth-3-get-prefixes (equal (xr :seg-visible index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :seg-visible index x86)))
Theorem:
(defthm xr-seg-hidden-base-mv-nth-3-get-prefixes (equal (xr :seg-hidden-base index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :seg-hidden-base index x86)))
Theorem:
(defthm xr-seg-hidden-limit-mv-nth-3-get-prefixes (equal (xr :seg-hidden-limit index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :seg-hidden-limit index x86)))
Theorem:
(defthm xr-seg-hidden-attr-mv-nth-3-get-prefixes (equal (xr :seg-hidden-attr index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :seg-hidden-attr index x86)))
Theorem:
(defthm xr-str-mv-nth-3-get-prefixes (equal (xr :str index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :str index x86)))
Theorem:
(defthm xr-ssr-visible-mv-nth-3-get-prefixes (equal (xr :ssr-visible index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :ssr-visible index x86)))
Theorem:
(defthm xr-ssr-hidden-base-mv-nth-3-get-prefixes (equal (xr :ssr-hidden-base index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :ssr-hidden-base index x86)))
Theorem:
(defthm xr-ssr-hidden-limit-mv-nth-3-get-prefixes (equal (xr :ssr-hidden-limit index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :ssr-hidden-limit index x86)))
Theorem:
(defthm xr-ssr-hidden-attr-mv-nth-3-get-prefixes (equal (xr :ssr-hidden-attr index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :ssr-hidden-attr index x86)))
Theorem:
(defthm xr-ctr-mv-nth-3-get-prefixes (equal (xr :ctr index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :ctr index x86)))
Theorem:
(defthm xr-dbg-mv-nth-3-get-prefixes (equal (xr :dbg index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :dbg index x86)))
Theorem:
(defthm xr-fp-data-mv-nth-3-get-prefixes (equal (xr :fp-data index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-data index x86)))
Theorem:
(defthm xr-fp-ctrl-mv-nth-3-get-prefixes (equal (xr :fp-ctrl index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-ctrl index x86)))
Theorem:
(defthm xr-fp-status-mv-nth-3-get-prefixes (equal (xr :fp-status index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-status index x86)))
Theorem:
(defthm xr-fp-tag-mv-nth-3-get-prefixes (equal (xr :fp-tag index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-tag index x86)))
Theorem:
(defthm xr-fp-last-inst-mv-nth-3-get-prefixes (equal (xr :fp-last-inst index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-last-inst index x86)))
Theorem:
(defthm xr-fp-last-data-mv-nth-3-get-prefixes (equal (xr :fp-last-data index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-last-data index x86)))
Theorem:
(defthm xr-fp-opcode-mv-nth-3-get-prefixes (equal (xr :fp-opcode index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :fp-opcode index x86)))
Theorem:
(defthm xr-mxcsr-mv-nth-3-get-prefixes (equal (xr :mxcsr index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :mxcsr index x86)))
Theorem:
(defthm xr-opmsk-mv-nth-3-get-prefixes (equal (xr :opmsk index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :opmsk index x86)))
Theorem:
(defthm xr-zmm-mv-nth-3-get-prefixes (equal (xr :zmm index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :zmm index x86)))
Theorem:
(defthm xr-msr-mv-nth-3-get-prefixes (equal (xr :msr index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :msr index x86)))
Theorem:
(defthm xr-inhibit-interrupts-one-instruction-mv-nth-3-get-prefixes (equal (xr :inhibit-interrupts-one-instruction index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :inhibit-interrupts-one-instruction index x86)))
Theorem:
(defthm xr-time-stamp-counter-mv-nth-3-get-prefixes (equal (xr :time-stamp-counter index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :time-stamp-counter index x86)))
Theorem:
(defthm xr-last-clock-event-mv-nth-3-get-prefixes (equal (xr :last-clock-event index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :last-clock-event index x86)))
Theorem:
(defthm xr-implicit-supervisor-access-mv-nth-3-get-prefixes (equal (xr :implicit-supervisor-access index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :implicit-supervisor-access index x86)))
Theorem:
(defthm xr-tty-in-mv-nth-3-get-prefixes (equal (xr :tty-in index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :tty-in index x86)))
Theorem:
(defthm xr-tty-out-mv-nth-3-get-prefixes (equal (xr :tty-out index (mv-nth 3 (get-prefixes proc-mode start-rip prefixes rex-byte cnt x86))) (xr :tty-out index x86)))
Theorem:
(defthm xr-fault-and-get-prefixes (implies (and (canonical-address-p start-rip) (not (mv-nth 0 (las-to-pas cnt start-rip :x (double-rewrite x86))))) (equal (xr :fault index (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))) (xr :fault index x86))))
Theorem:
(defthm get-prefixes-xw-values-in-sys-view (implies (and (not (app-view x86)) (not (equal fld :mem)) (not (equal fld :rflags)) (not (equal fld :ctr)) (not (equal fld :seg-visible)) (not (equal fld :seg-hidden-base)) (not (equal fld :seg-hidden-limit)) (not (equal fld :seg-hidden-attr)) (not (equal fld :msr)) (not (equal fld :fault)) (not (equal fld :app-view)) (not (equal fld :marking-view)) (not (equal fld :tlb)) (not (equal fld :implicit-supervisor-access))) (and (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw fld index value x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw fld index value x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw fld index value x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm get-prefixes-xw-state-in-sys-view (implies (and (not (app-view x86)) (not (equal fld :mem)) (not (equal fld :rflags)) (not (equal fld :ctr)) (not (equal fld :seg-visible)) (not (equal fld :seg-hidden-base)) (not (equal fld :seg-hidden-limit)) (not (equal fld :seg-hidden-attr)) (not (equal fld :msr)) (not (equal fld :fault)) (not (equal fld :app-view)) (not (equal fld :marking-view)) (not (equal fld :tlb)) (not (equal fld :implicit-supervisor-access))) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw fld index value x86))) (xw fld index value (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-ms (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ms index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-env (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :env index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-undef (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :undef index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-enable-peripherals (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :enable-peripherals index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-handle-exceptions (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :handle-exceptions index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-os-info (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :os-info index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-rgf (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rgf index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-rip (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rip index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-str (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :str index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-ssr-visible (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-visible index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-ssr-hidden-base (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-base index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-ssr-hidden-limit (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-limit index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-ssr-hidden-attr (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-attr index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-dbg (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :dbg index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-data (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-data index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-ctrl (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-ctrl index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-status (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-status index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-tag (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-tag index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-last-inst (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-inst index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-last-data (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-data index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-fp-opcode (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-opcode index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-mxcsr (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :mxcsr index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-opmsk (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :opmsk index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-zmm (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :zmm index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-inhibit-interrupts-one-instruction (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :inhibit-interrupts-one-instruction index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-time-stamp-counter (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :time-stamp-counter index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-last-clock-event (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :last-clock-event index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-tty-in (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-in index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-0-get-prefixes-xw-tty-out (implies (not (app-view x86)) (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-out index val x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-ms (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ms index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-env (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :env index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-undef (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :undef index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-enable-peripherals (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :enable-peripherals index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-handle-exceptions (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :handle-exceptions index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-os-info (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :os-info index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-rgf (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rgf index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-rip (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rip index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-str (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :str index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-ssr-visible (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-visible index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-ssr-hidden-base (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-base index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-ssr-hidden-limit (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-limit index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-ssr-hidden-attr (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-attr index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-dbg (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :dbg index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-data (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-data index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-ctrl (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-ctrl index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-status (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-status index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-tag (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-tag index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-last-inst (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-inst index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-last-data (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-data index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-fp-opcode (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-opcode index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-mxcsr (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :mxcsr index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-opmsk (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :opmsk index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-zmm (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :zmm index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-inhibit-interrupts-one-instruction (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :inhibit-interrupts-one-instruction index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-time-stamp-counter (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :time-stamp-counter index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-last-clock-event (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :last-clock-event index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-tty-in (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-in index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-1-get-prefixes-xw-tty-out (implies (not (app-view x86)) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-out index val x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-ms (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ms index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-env (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :env index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-undef (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :undef index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-enable-peripherals (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :enable-peripherals index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-handle-exceptions (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :handle-exceptions index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-os-info (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :os-info index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-rgf (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rgf index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-rip (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rip index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-str (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :str index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-ssr-visible (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-visible index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-ssr-hidden-base (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-base index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-ssr-hidden-limit (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-limit index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-ssr-hidden-attr (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-attr index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-dbg (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :dbg index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-data (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-data index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-ctrl (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-ctrl index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-status (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-status index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-tag (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-tag index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-last-inst (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-inst index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-last-data (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-data index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-fp-opcode (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-opcode index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-mxcsr (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :mxcsr index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-opmsk (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :opmsk index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-zmm (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :zmm index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-inhibit-interrupts-one-instruction (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :inhibit-interrupts-one-instruction index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-time-stamp-counter (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :time-stamp-counter index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-last-clock-event (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :last-clock-event index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-tty-in (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-in index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-2-get-prefixes-xw-tty-out (implies (not (app-view x86)) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-out index val x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-ms (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ms index val x86))) (xw :ms index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-env (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :env index val x86))) (xw :env index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-undef (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :undef index val x86))) (xw :undef index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-enable-peripherals (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :enable-peripherals index val x86))) (xw :enable-peripherals index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-handle-exceptions (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :handle-exceptions index val x86))) (xw :handle-exceptions index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-os-info (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :os-info index val x86))) (xw :os-info index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-rgf (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rgf index val x86))) (xw :rgf index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-rip (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rip index val x86))) (xw :rip index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-str (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :str index val x86))) (xw :str index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-ssr-visible (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-visible index val x86))) (xw :ssr-visible index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-ssr-hidden-base (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-base index val x86))) (xw :ssr-hidden-base index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-ssr-hidden-limit (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-limit index val x86))) (xw :ssr-hidden-limit index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-ssr-hidden-attr (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :ssr-hidden-attr index val x86))) (xw :ssr-hidden-attr index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-dbg (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :dbg index val x86))) (xw :dbg index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-data (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-data index val x86))) (xw :fp-data index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-ctrl (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-ctrl index val x86))) (xw :fp-ctrl index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-status (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-status index val x86))) (xw :fp-status index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-tag (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-tag index val x86))) (xw :fp-tag index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-last-inst (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-inst index val x86))) (xw :fp-last-inst index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-last-data (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-last-data index val x86))) (xw :fp-last-data index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-fp-opcode (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :fp-opcode index val x86))) (xw :fp-opcode index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-mxcsr (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :mxcsr index val x86))) (xw :mxcsr index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-opmsk (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :opmsk index val x86))) (xw :opmsk index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-zmm (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :zmm index val x86))) (xw :zmm index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-inhibit-interrupts-one-instruction (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :inhibit-interrupts-one-instruction index val x86))) (xw :inhibit-interrupts-one-instruction index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-time-stamp-counter (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :time-stamp-counter index val x86))) (xw :time-stamp-counter index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-last-clock-event (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :last-clock-event index val x86))) (xw :last-clock-event index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-tty-in (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-in index val x86))) (xw :tty-in index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm mv-nth-3-get-prefixes-xw-tty-out (implies (not (app-view x86)) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :tty-out index val x86))) (xw :tty-out index val (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm get-prefixes-xw-rflags-not-ac-state-in-sys-view (implies (and (not (app-view x86)) (equal (rflagsbits->ac value) (rflagsbits->ac (rflags x86)))) (equal (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rflags nil value x86))) (xw :rflags nil value (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm get-prefixes-xw-rflags-not-ac-values-in-sys-view (implies (and (not (app-view x86)) (equal (rflagsbits->ac value) (rflagsbits->ac (rflags x86)))) (and (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rflags nil value x86))) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rflags nil value x86))) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt (xw :rflags nil value x86))) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86))))))
Theorem:
(defthm get-prefixes-opener-lemma-group-1-prefix-in-marking-view (b* (((mv flg byte new-x86) (rml08 start-rip :x (double-rewrite x86))) (prefix-byte-group-code (get-one-byte-prefix-array-code byte))) (implies (and (canonical-address-p (1+ start-rip)) (not (zp cnt)) (not flg) (equal prefix-byte-group-code 1) (not (app-view x86))) (equal (get-prefixes 0 start-rip prefixes rex-byte cnt x86) (get-prefixes 0 (+ 1 start-rip) (if (equal byte 240) (!prefixes->lck byte prefixes) (!prefixes->rep byte prefixes)) 0 (+ -1 cnt) new-x86)))))
Theorem:
(defthm get-prefixes-opener-lemma-group-2-prefix-in-marking-view (b* (((mv flg byte new-x86) (rml08 start-rip :x (double-rewrite x86))) (prefix-byte-group-code (get-one-byte-prefix-array-code byte))) (implies (and (canonical-address-p (1+ start-rip)) (not (zp cnt)) (not flg) (equal prefix-byte-group-code 2) (not (app-view x86))) (equal (get-prefixes 0 start-rip prefixes rex-byte cnt x86) (if (or (equal byte 100) (equal byte 101)) (get-prefixes 0 (1+ start-rip) (!prefixes->seg byte prefixes) 0 (1- cnt) new-x86) (get-prefixes 0 (1+ start-rip) prefixes 0 (1- cnt) new-x86))))))
Theorem:
(defthm get-prefixes-opener-lemma-group-3-prefix-in-marking-view (b* (((mv flg byte new-x86) (rml08 start-rip :x (double-rewrite x86))) (prefix-byte-group-code (get-one-byte-prefix-array-code byte))) (implies (and (canonical-address-p (1+ start-rip)) (not (zp cnt)) (not flg) (equal prefix-byte-group-code 3) (not (app-view x86))) (equal (get-prefixes 0 start-rip prefixes rex-byte cnt x86) (get-prefixes 0 (1+ start-rip) (!prefixes->opr byte prefixes) 0 (1- cnt) new-x86)))))
Theorem:
(defthm get-prefixes-opener-lemma-group-4-prefix-in-marking-view (b* (((mv flg byte new-x86) (rml08 start-rip :x (double-rewrite x86))) (prefix-byte-group-code (get-one-byte-prefix-array-code byte))) (implies (and (canonical-address-p (1+ start-rip)) (not (zp cnt)) (not flg) (equal prefix-byte-group-code 4) (not (app-view x86))) (equal (get-prefixes 0 start-rip prefixes rex-byte cnt x86) (get-prefixes 0 (1+ start-rip) (!prefixes->adr byte prefixes) 0 (1- cnt) new-x86)))))
Function:
(defun get-prefixes-two-x86-induct-hint (start-rip prefixes rex-byte cnt x86-1 x86-2) (declare (xargs :non-executable t)) (prog2$ (acl2::throw-nonexec-error 'get-prefixes-two-x86-induct-hint (list start-rip prefixes rex-byte cnt x86-1 x86-2)) (if (zp cnt) (mv nil prefixes x86-1 x86-2) (b* ((ctx 'get-prefixes-two-x86-induct-hint) ((mv flg-1 byte-1 x86-1) (rml08 start-rip :x x86-1)) ((mv flg-2 byte-2 x86-2) (rml08 start-rip :x x86-2)) ((when flg-1) (mv (cons ctx flg-1) byte-1 x86-1)) ((when flg-2) (mv (cons ctx flg-2) byte-2 x86-2)) ((when (not (equal byte-1 byte-2))) (mv nil prefixes x86-1 x86-2)) (byte byte-1) (prefix-byte-group-code (get-one-byte-prefix-array-code byte))) (case prefix-byte-group-code (0 (b* ((rex? (equal (the (unsigned-byte 4) (ash byte -4)) 4)) ((when rex?) (let ((next-rip (the (signed-byte 49) (1+ start-rip)))) (if (canonical-address-p next-rip) (get-prefixes-two-x86-induct-hint next-rip prefixes byte (the (integer 0 15) (1- cnt)) x86-1 x86-2) (mv (cons 'non-canonical-address next-rip) prefixes rex-byte x86-1 x86-2))))) (let ((prefixes (!prefixes->nxt byte prefixes))) (mv nil (!prefixes->num (- 15 cnt) prefixes) rex-byte x86-1 x86-2)))) (1 (b* ((next-rip (the (signed-byte 49) (1+ start-rip))) ((when (not (canonical-address-p next-rip))) (mv (cons 'non-canonical-address next-rip) prefixes rex-byte x86-1 x86-2)) (prefixes (if (equal byte 240) (!prefixes->lck byte prefixes) (!prefixes->rep byte prefixes)))) (get-prefixes-two-x86-induct-hint next-rip prefixes 0 (the (integer 0 15) (1- cnt)) x86-1 x86-2))) (2 (b* ((next-rip (the (signed-byte 49) (1+ start-rip))) ((when (not (canonical-address-p next-rip))) (mv (cons 'non-canonical-address next-rip) prefixes rex-byte x86-1 x86-2))) (if (or (equal byte 100) (equal byte 101)) (get-prefixes-two-x86-induct-hint next-rip (!prefixes->seg byte prefixes) 0 (the (integer 0 15) (1- cnt)) x86-1 x86-2) (get-prefixes-two-x86-induct-hint next-rip prefixes 0 (the (integer 0 15) (1- cnt)) x86-1 x86-2)))) (3 (b* ((next-rip (the (signed-byte 49) (1+ start-rip))) ((when (not (canonical-address-p next-rip))) (mv (cons 'non-canonical-address next-rip) prefixes rex-byte x86-1 x86-2))) (get-prefixes-two-x86-induct-hint next-rip (!prefixes->opr byte prefixes) 0 (the (integer 0 15) (1- cnt)) x86-1 x86-2))) (4 (b* ((next-rip (the (signed-byte 49) (1+ start-rip))) ((when (not (canonical-address-p next-rip))) (mv (cons 'non-canonical-address next-rip) prefixes rex-byte x86-1 x86-2))) (get-prefixes-two-x86-induct-hint next-rip (!prefixes->adr byte prefixes) 0 (the (integer 0 15) (1- cnt)) x86-1 x86-2))) (otherwise (mv t prefixes rex-byte x86-1 x86-2)))))))
Theorem:
(defthm paging-equiv-memory-and-two-get-prefixes-values (implies (and (bind-free (find-an-paging-equiv-x86 'paging-equiv-memory-and-two-get-prefixes-values x86-1 'x86-2 mfc state) (x86-2)) (syntaxp (not (equal x86-1 x86-2))) (paging-equiv-memory (double-rewrite x86-1) x86-2) (canonical-address-p start-rip) (not (mv-nth 0 (las-to-pas cnt start-rip :x (double-rewrite x86-1)))) (disjoint-p (mv-nth 1 (las-to-pas cnt start-rip :x (double-rewrite x86-2))) (open-qword-paddr-list (gather-all-paging-structure-qword-addresses (double-rewrite x86-2)))) (disjoint-p (mv-nth 1 (las-to-pas cnt start-rip :x (double-rewrite x86-1))) (open-qword-paddr-list (gather-all-paging-structure-qword-addresses (double-rewrite x86-1)))) (64-bit-modep (double-rewrite x86-1))) (and (equal (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-1)) (mv-nth 0 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-2))) (equal (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-1)) (mv-nth 1 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-2))) (equal (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-1)) (mv-nth 2 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-2))))))
Theorem:
(defthm paging-equiv-memory-and-mv-nth-3-get-prefixes (implies (and (not (app-view (double-rewrite x86))) (marking-view (double-rewrite x86)) (canonical-address-p start-rip) (not (mv-nth 0 (las-to-pas cnt start-rip :x (double-rewrite x86)))) (64-bit-modep (double-rewrite x86))) (paging-equiv-memory (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86)) (double-rewrite x86))))
Theorem:
(defthm paging-equiv-memory-and-two-mv-nth-3-get-prefixes (implies (and (paging-equiv-memory (double-rewrite x86-1) x86-2) (not (app-view x86-2)) (marking-view (double-rewrite x86-2)) (marking-view (double-rewrite x86-1)) (canonical-address-p start-rip) (not (mv-nth 0 (las-to-pas cnt start-rip :x (double-rewrite x86-2)))) (64-bit-modep x86-2)) (paging-equiv-memory (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-1)) (mv-nth 3 (get-prefixes 0 start-rip prefixes rex-byte cnt x86-2)))))