\documentstyle[makeidx]{article}
\makeindex
%\setlength{\oddsidemargin}{.5in}
%\setlength{\evensidemargin}{.5in}
%\setlength{\textwidth}{5.8in}
\begin{document}
%\setlength{\parindent}{0pt}
%\newcounter{bean}
%\begin{list}{\arabic{bean}.}{\usecounter{bean}\setlength{\leftmargin}{0pt}\setlength{\rightmargin}{0pt}\setlength{\listparindent}{20pt}\setlength{\parsep}{5pt}}
%\item[]

\begin{verbatim}#|
 Copyright (C) 1994 by Computational Logic, Inc.  All Rights Reserved.

 You may copy and distribute verbatim copies of this Nqthm-1992 event script as
 you receive it, in any medium, including embedding it verbatim in derivative
 works, provided that you conspicuously and appropriately publish on each copy
 a valid copyright notice "Copyright (C) 1994 by Computational Logic, Inc.  All
 Rights Reserved."

 NO WARRANTY

 Computational Logic, Inc. PROVIDES ABSOLUTELY NO WARRANTY.  THE EVENT SCRIPT
 IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
 INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND
 FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
 PERFORMANCE OF THE SCRIPT IS WITH YOU.  SHOULD THE SCRIPT PROVE DEFECTIVE, YOU
 ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

 IN NO EVENT WILL Computational Logic, Inc. BE LIABLE TO YOU FOR ANY DAMAGES,
 ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL
 DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THIS SCRIPT (INCLUDING BUT
 NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
 SUSTAINED BY THIRD PARTIES), EVEN IF YOU HAVE ADVISED US OF THE POSSIBILITY OF
 SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
|#

; FM9001 Piton 

; J Strother Moore
; October, 1991

; History 

; This file contains the complete script of the events establishing
; that Piton is correctly implemented on top of the FM9001.  The
; original correctness proof for Piton was done for the FM8502 and is
; reported accurately and completely in CLI Tech Report 22.  That
; report is still basically accurate.  FM9001 differs from FM8502
; primarily in that instructions are in a slightly different format
; and the instruction set is slightly different.  However, when Hunt
; and Brock developed FM9001 from FM8502 they explicitly considered
; Piton's use of the FM8502 instruction set.  For each FM8502
; instruction-instance used by the Piton compiler, they included an
; FM9001 instruction that could provide the same functionality.  Thus,
; to port the Piton implementation from FM8502 to FM9001 it was only
; necessary to change the code linkers, essentially from
; LINK-INSTR-WORD on down.

; However, porting the proof from FM8502 to FM9001 was harder than
; suggested by the instruction set changes alone.  FM9001 uses a
; different formal representation of memory -- a binary tree instead
; of a linear list -- and uses a different formalization of bit
; vectors -- lists of Booleans instead of the BITV shell.  But most
; dramatically, the FM8502 proof used an experimental version of NQTHM
; that was supposed to become the released version.  That experimental
; NQTHM, called XNQTHM, provided "books".  Indeed, it was the FM8502
; Piton effort that caused books to be invented in the first place.
; With books, the XNQTHM user could develop a large body of lemmas in
; one session and then, in the course of later sessions, extract
; selected results to build upon.  Thus, books were incremental as
; opposed to the monolithic "core dump" view of state saving provided
; by NQTHM's lib files.  The FM8502 Piton proofs used four different
; (major) books: one to handle the p->r diagram, one for r->i, one for
; i->m (where we also handled m=FM8502), and then one in which the
; main correctness result was derived by extracting the key theorems
; from the three preceding books.  In addition, the original
; development devoted a book each to the definitions of the various
; machines (p, r, i, and m) and to the implementation of the compiler
; and link-assembler so they could be loaded and run in isolation from
; the correctness proof.  (This was in fact necessary since, for
; example, both the p->r book and the r->i book both needed access to
; the definition of the r machine and the implementation.)  Finally, I
; redid the FM8502 correctness proof in book form so that Piton could
; build on the definition of FM8502 without the clutter of its
; correctness proof or gate-level implementation.

; In the summer of 1989, Boyer and I began the process of "blessing"
; XNQTHM in preparation for its release as the new NQTHM.  However,
; after several months of trying to combine macros and books, we
; decided to start afresh.  We thereby embarked on the NTHM Project,
; where books are central to the whole design.  That is another story.
; However, one impact of the decision not to release XNQTHM was the
; need to reproduce the Piton proofs in a publicly available NQTHM.  I
; decided to wait until FM9001 was done and then to do the new Piton
; in NQTHM (rather than XNQTHM).

; This has had a major detrimental effect on the readability of the
; proof script.  Books allowed a clean hierarchical decomposition of
; the various layers of the problem.  This was lost when I
; (essentially) just concatenated the event lists from all of the
; Piton books into one massive script.  Of course, I had to start this
; proof effort in the library file created for the FM9001 correctness
; proof, the only NQTHM file containing "the" correct definition of
; FM9001.  To achieve the effect of isolation provided by books, each
; major section is separated from the others by thousands of DISABLE
; events which effectively erase the rule base developed thus far.  In
; addition, some names had to be changed because of clashes which were
; allowed under the book mechanism.  In short, the "new" proof of
; Piton is, in many ways, a step backward from the original one.  This
; was particularly frustrating for me since NTHM's books (which are
; implemented and seem to work) provide even greater functionality
; than XNQTHM's books.  The ideal thing to have done would have been
; for everybody else to take ten years' vacation while Boyer and I
; perfected and released NTHM, and then to develop the new FM9001 stack
; in NTHM.

; I ported the first of Piton's 3 commutative diagrams to the FM9001
; in May, 1991.  At that time, the FM9001 correctness proof was not
; completed.  I "borrowed" a lib file from Bishop that contained the
; majority of the proof and did the bottom-most diagram in that lib.
; Actually, I introduced a fourth layer to Piton: the link from M to
; FM9001 (the corresponding level in the FM8502 proof was an equality)
; has become a full-fledged commutative diagram that handles the
; memory.  See M->FM9001, which is now the fourth application in LOAD,
; and ONE-WAY-CORRESPONDENCE-M-FM9001.  In one week in May, I
; successfully proved that the M machine was implemented on FM9001.  I
; then waited until my decks were clear (October, 1991) to port the
; rest of the proof.  It has taken roughly 2 weeks to do the rest.

; A major new proof burden was introduced by the new memory representation.
; See the events surrounding PLAUSIBLE-DATA-LINK-TABLEP.  The basic problem
; was that in order to display the FM9001 memory to recover the M memory (i.e.,
; to get the "up" arrow in the bottom-most diagram), it was necessary to know
; that no address exceeded the size the of FM9001 memory.  This in turn
; required showing that the size of the final memory was the same as that
; for the initial memory.  This in turn forced us to prove the analogous
; fact all the way up, i.e., for M, I, R, and P.  At the higher levels, of
; course, what we proved was that the machines preserved the "signatures"
; of the program and data segments.  While this work could have been
; rather naturally done at the time we were dealing with the respective
; machines in their component diagrams, we did not recognize the need for the
; theorems until we had redone all of the old diagrams and were trying to
; combine everything at the very end.  Thus, you will see at the end of this
; script some hideous lemmas about the r and p machines where we tediously
; enable things that were "naturally" enabled earlier in the script.

; The book structure of the original proof can be seen by searching
; for comments of the form "; Book:".

; November, 1991: After the first successful port to FM9001 a new
; patch was installed: The loader was changed to allow us to specify
; the location at which the Piton data segment was laid down in
; memory.  This was done so that part of the data segment could be
; memory mapped to allow us to do some output from Piton.  This was
; achieved by swapping the positions of the prog segment and the data
; segment (in the original Piton work, the prog segment was laid out
; first, followed by the data segment and then the system data).  Now
; the data segment is laid out first, then the program segment, and
; then the system data segment.  Furthermore, all of this is laid out
; starting at a given location, generally named the LOAD-ADDR, and the
; contents of memory below that point is specified by an oracle,
; generally named BOOT-LST.

; This change has had drastic effects rippling through the Piton
; proof.

; This takes roughly 8 hours on a Sparc 2 in AKCL and generates 30Mb
; of .proof output and a .lib file of about 20Mb.

\end{verbatim}
\noindent{\sc Event}:   Start with the library {\tt{"fm9001-replay"}} using the compiled version.

\addvspace{18pt}


\noindent{\sc Event}:   Set the status of all events.  The status of each event is to be set as follows.  Each `boot-strap' satellite is to be returned to the initial condition.  Each `add-shell' satellite is to be enabled.  enabled.  Anything not otherwise mentioned is to be disabled.   Name this event `close-data-base-1'.\index{close-data-base-1}

\addvspace{18pt}

\begin{verbatim}; Book:  Implementation.events

; We first define the implementation of Piton.  It is odd that we
; start there rather than with the semantics of the P machine.
; Logically and historically we started with the semantics.  But we
; are building the proof from the bottom up and in the beginning all
; we have is FM9001 and the implementation and we will build the m
; machine to explain the link part of the implementation, the i
; machine to build the code generator part, etc.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{incr} \\  
\=\+{\rm{incr}}\,({\it{c\/}}, {\it{x\/}})\index{incr} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{xor}}\,({\it{c\/}}, {\rm{car}}\,({\it{x\/}}))\index{xor}, {\rm{incr}}\,({\it{c\/}} $\wedge$ {\rm{car}}\,({\it{x\/}}), {\rm{cdr}}\,({\it{x\/}}))\index{incr})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bitn} \\  
\=\+{\rm{bitn}}\,({\it{x\/}}, {\it{n\/}})\index{bitn} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\it{n\/}} $=$ {\tt{1}}$\;\;${\bf then }{\rm{car}}\,({\it{x\/}}) \\ 
{\bf else }{\rm{bitn}}\,({\rm{cdr}}\,({\it{x\/}}), {\it{n\/}} $-\;1$)\index{bitn}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Add the shell {\it{p-state\/}}\index{p-state}, with recognizer function symbol {\it{p-statep\/}} and 9 accessors: {\it{p-pc\/}}, with type restriction (none-of) and default value zero; {\it{p-ctrl-stk\/}}, with type restriction (none-of) and default value zero; {\it{p-temp-stk\/}}, with type restriction (none-of) and default value zero; {\it{p-prog-segment\/}}, with type restriction (none-of) and default value zero; {\it{p-data-segment\/}}, with type restriction (none-of) and default value zero; {\it{p-max-ctrl-stk-size\/}}, with type restriction (none-of) and default value zero; {\it{p-max-temp-stk-size\/}}, with type restriction (none-of) and default value zero; {\it{p-word-size\/}}, with type restriction (none-of) and default value zero; {\it{p-psw\/}}, with type restriction (none-of) and default value zero.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{errorp} \\  
{\rm{errorp}}\,({\it{psw\/}})\index{errorp} $=$ (({\it{psw\/}} $\not=$ {\tt{'}}{\tt{run}}) $\wedge$ ({\it{psw\/}} $\not=$ {\tt{'}}{\tt{halt}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{definition}$\;\;$
{\rm{definition}}\,({\it{name\/}}, {\it{alist\/}})\index{definition} $=$ {\rm{assoc}}\,({\it{name\/}}, {\it{alist\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{strip-cdrs} \\  
\=\+{\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{cdar}}\,({\it{alist\/}}), {\rm{strip-cdrs}}\,({\rm{cdr}}\,({\it{alist\/}}))\index{strip-cdrs})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{name}$\;\;$
{\rm{name}}\,({\it{d\/}})\index{name} $=$ {\rm{car}}\,({\it{d\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{formal-vars}$\;\;$
{\rm{formal-vars}}\,({\it{d\/}})\index{formal-vars} $=$ {\rm{cadr}}\,({\it{d\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{temp-var-dcls}$\;\;$
{\rm{temp-var-dcls}}\,({\it{d\/}})\index{temp-var-dcls} $=$ {\rm{caddr}}\,({\it{d\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{program-body}$\;\;$
{\rm{program-body}}\,({\it{d\/}})\index{program-body} $=$ {\rm{cdddr}}\,({\it{d\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{local-vars} \\  
{\rm{local-vars}}\,({\it{d\/}})\index{local-vars} $=$ {\rm{append}}\,({\rm{formal-vars}}\,({\it{d\/}})\index{formal-vars}, {\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\it{d\/}})\index{temp-var-dcls}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{adp-name}$\;\;$
{\rm{adp-name}}\,({\it{adp\/}})\index{adp-name} $=$ {\rm{car}}\,({\it{adp\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{adp-offset}$\;\;$
{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $=$ {\rm{cdr}}\,({\it{adp\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{sub-adp} \\  
{\rm{sub-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{sub-adp} $=$ {\rm{cons}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $-$ {\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{get} \\  
\=\+{\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{car}}\,({\it{lst\/}}) \\ 
{\bf else }{\rm{get}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{lst\/}}))\index{get}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{tag}$\;\;$
{\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag} $=$ {\rm{list}}\,({\it{type\/}}, {\it{obj\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{type}$\;\;$
{\rm{type}}\,({\it{const\/}})\index{type} $=$ {\rm{car}}\,({\it{const\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{untag}$\;\;$
{\rm{untag}}\,({\it{const\/}})\index{untag} $=$ {\rm{cadr}}\,({\it{const\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{area-name}$\;\;$
{\rm{area-name}}\,({\it{x\/}})\index{area-name} $=$ {\rm{adp-name}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{adp-name}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{sub-addr} \\  
{\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr} $=$ {\rm{tag}}\,({\rm{type}}\,({\it{addr\/}})\index{type}, {\rm{sub-adp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{n\/}})\index{sub-adp})\index{tag}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{top}$\;\;$
{\rm{top}}\,({\it{stk\/}})\index{top} $=$ {\rm{car}}\,({\it{stk\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pop}$\;\;$
{\rm{pop}}\,({\it{stk\/}})\index{pop} $=$ {\rm{cdr}}\,({\it{stk\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{dl}$\;\;$
{\rm{dl}}\,({\it{lab\/}}, {\it{comment\/}}, {\it{ins\/}})\index{dl} $=$ {\rm{list}}\,({\tt{'}}{\tt{dl}}, {\it{lab\/}}, {\it{comment\/}}, {\it{ins\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{labelledp}$\;\;$
{\rm{labelledp}}\,({\it{x\/}})\index{labelledp} $=$ ({\rm{car}}\,({\it{x\/}}) $=$ {\tt{'}}{\tt{dl}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{unlabel} \\  
\=\+{\rm{unlabel}}\,({\it{x\/}})\index{unlabel} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{labelledp}}\,({\it{x\/}})\index{labelledp}$\;\;${\bf then }{\rm{cadddr}}\,({\it{x\/}}) \\ 
{\bf else }{\it{x\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{find-label} \\  
\=\+{\rm{find-label}}\,({\it{x\/}}, {\it{lst\/}})\index{find-label} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{labelledp}}\,({\rm{car}}\,({\it{lst\/}}))\index{labelledp} $\wedge$ ({\it{x\/}} $=$ {\rm{cadar}}\,({\it{lst\/}}))$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }$1\;+$ {\rm{find-label}}\,({\it{x\/}}, {\rm{cdr}}\,({\it{lst\/}}))\index{find-label}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pc} \\  
\=\+{\rm{pc}}\,({\it{lab\/}}, {\it{program\/}})\index{pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\rm{find-label}}\,({\it{lab\/}}, {\rm{program-body}}\,({\it{program\/}})\index{program-body})\index{find-label}))\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bindings}$\;\;$
{\rm{bindings}}\,({\it{frame\/}})\index{bindings} $=$ {\rm{car}}\,({\it{frame\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{ret-pc}$\;\;$
{\rm{ret-pc}}\,({\it{frame\/}})\index{ret-pc} $=$ {\rm{cadr}}\,({\it{frame\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-frame-size} \\  
{\rm{p-frame-size}}\,({\it{frame\/}})\index{p-frame-size} $=$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{bindings}}\,({\it{frame\/}})\index{bindings})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ctrl-stk-size} \\  
\=\+{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{ctrl-stk\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }\=\+{\rm{p-frame-size}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{p-frame-size} \\ 
$+$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\it{ctrl-stk\/}}))\index{p-ctrl-stk-size}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-call} \\  
\=\+{\rm{icode-call}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-call} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, $1\;+$ {\it{pcn\/}}))\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{'}}{\tt{(}}{\tt{prelude}}{\tt{)}}))\index{tag})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{generate-prelude1} \\  
\=\+{\rm{generate-prelude1}}\,({\it{temp-var-dcls\/}})\index{generate-prelude1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{temp-var-dcls\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{cadar}}\,({\it{temp-var-dcls\/}}), \\ 
{\rm{generate-prelude1}}\,({\rm{cdr}}\,({\it{temp-var-dcls\/}}))\index{generate-prelude1})\-)\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{generate-prelude2} \\  
\=\+{\rm{generate-prelude2}}\,({\it{formal-vars\/}})\index{generate-prelude2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{formal-vars\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}}, \\ 
{\rm{generate-prelude2}}\,({\rm{cdr}}\,({\it{formal-vars\/}}))\index{generate-prelude2})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{generate-prelude} \\  
\=\+{\rm{generate-prelude}}\,({\it{program\/}})\index{generate-prelude} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{dl}}\,(\=\+{\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\tt{'}}{\tt{(}}{\tt{prelude}}{\tt{)}}), \\ 
{\tt{'}}{\tt{(}}{\tt{prelude}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{cpush\_cfp}}{\tt{)}})\-\index{dl}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{)}}{\tt{)}})\-, \\ 
{\rm{append}}\,(\=\+{\rm{generate-prelude1}}\,({\rm{reverse}}\,({\rm{temp-var-dcls}}\,({\it{program\/}})\index{temp-var-dcls})\index{reverse})\index{generate-prelude1}, \\ 
{\rm{generate-prelude2}}\,({\rm{formal-vars}}\,({\it{program\/}})\index{formal-vars})\index{generate-prelude2})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{find-position-of-var} \\  
\=\+{\rm{find-position-of-var}}\,({\it{var\/}}, {\it{lst\/}})\index{find-position-of-var} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\it{var\/}} $=$ {\rm{car}}\,({\it{lst\/}})$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }$1\;+$ {\rm{find-position-of-var}}\,({\it{var\/}}, {\rm{cdr}}\,({\it{lst\/}}))\index{find-position-of-var}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{offset-from-csp} \\  
\=\+{\rm{offset-from-csp}}\,({\it{var\/}}, {\it{program\/}})\index{offset-from-csp} \\ 
$=$$\;\;\;\;${\rm{find-position-of-var}}\,({\it{var\/}}, {\rm{local-vars}}\,({\it{program\/}})\index{local-vars})\index{find-position-of-var}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{generate-postlude} \\  
\=\+{\rm{generate-postlude}}\,({\it{program\/}})\index{generate-postlude} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{dl}}\,(\=\+{\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\rm{length}}\,({\rm{program-body}}\,({\it{program\/}})\index{program-body})\index{length}), \\ 
{\tt{'}}{\tt{(}}{\tt{postlude}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{)}})\-\index{dl}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{cpop\_cfp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{cpop\_pc}}{\tt{)}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-ret} \\  
\=\+{\rm{icode-ret}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-ret} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\rm{length}}\,({\rm{program-body}}\,({\it{program\/}})\index{program-body})\index{length}))\index{tag})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-locn} \\  
\=\+{\rm{icode-locn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-locn} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{offset-from-csp})\index{tag}, \\ 
{\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}{\tt{)}}\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-push-constant} \\  
\=\+{\rm{icode-push-constant}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-push-constant} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_*}}{\tt{)}}, \\ 
\=\+{\bf if }{\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pc}}$\;\;${\bf then }{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, $1\;+$ {\it{pcn\/}}))\index{tag} \\ 
{\bf elseif }{\rm{cadr}}\,({\it{ins\/}}) $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc} \\ 
{\bf else }{\rm{cadr}}\,({\it{ins\/}})$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-push-local} \\  
\=\+{\rm{icode-push-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-push-local} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{offset-from-csp})\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}{\tt{)}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-push-global} \\  
\=\+{\rm{icode-push-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-push-global} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{)}}{\tt{)}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-push-ctrl-stk-free-size} \\  
\=\+{\rm{icode-push-ctrl-stk-free-size}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-push-ctrl-stk-free-size} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{move\_x\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{full-ctrl-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_csp}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-push-temp-stk-free-size} \\  
\=\+{\rm{icode-push-temp-stk-free-size}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-push-temp-stk-free-size} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{move\_x\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{full-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_tsp}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-push-temp-stk-index} \\  
\=\+{\rm{icode-push-temp-stk-index}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-push-temp-stk-index} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_tsp}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{empty-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_x}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, $1\;+$ {\rm{cadr}}\,({\it{ins\/}}))\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}{\tt{)}})\-)\-)\-)\-)\-)\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-jump-if-temp-stk-full} \\  
\=\+{\rm{icode-jump-if-temp-stk-full}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-jump-if-temp-stk-full} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_tsp}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{full-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_$<$y\{s\}$>$}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}})\-)\-)\-)\-)\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-jump-if-temp-stk-empty} \\  
\=\+{\rm{icode-jump-if-temp-stk-empty}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-jump-if-temp-stk-empty} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_tsp}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{empty-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}})\-)\-)\-)\-)\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pop}$\;\;$
{\rm{icode-pop}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pop} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pop*} \\  
\=\+{\rm{icode-pop*}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pop*} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{(}}{\tt{add\_tsp\_*\{n\}}}{\tt{)}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{cadr}}\,({\it{ins\/}}))\index{tag})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-popn} \\  
{\rm{icode-popn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-popn} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{add\_tsp\_x\{n\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pop-local} \\  
\=\+{\rm{icode-pop-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pop-local} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{offset-from-csp})\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}{\tt{)}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pop-global} \\  
\=\+{\rm{icode-pop-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pop-global} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{)}}{\tt{)}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pop-locn} \\  
\=\+{\rm{icode-pop-locn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pop-locn} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{offset-from-csp})\index{tag}, \\ 
{\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}{\tt{)}}\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pop-call} \\  
\=\+{\rm{icode-pop-call}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pop-call} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, $1\;+$ {\it{pcn\/}}))\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump\_x\{subr\}}}{\tt{)}}{\tt{)}})\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-fetch-temp-stk} \\  
\=\+{\rm{icode-fetch-temp-stk}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-fetch-temp-stk} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_y}}{\tt{)}} \\ 
{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{empty-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-deposit-temp-stk} \\  
\=\+{\rm{icode-deposit-temp-stk}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-deposit-temp-stk} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_y}}{\tt{)}} \\ 
{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{empty-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-jump} \\  
{\rm{icode-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-jump} $=$ {\rm{list}}\,({\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, {\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{jump\_*-lst} \\  
\=\+{\rm{jump\_*-lst}}\,({\it{lst\/}}, {\it{program\/}})\index{jump\_*-lst} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{pc}}\,({\rm{car}}\,({\it{lst\/}}), {\it{program\/}})\index{pc}, \\ 
{\rm{jump\_*-lst}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{program\/}})\index{jump\_*-lst})\-)\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-jump-case} \\  
\=\+{\rm{icode-jump-case}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-jump-case} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{add\_x\_x\{n\}}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{add\_pc\_x\{n\}}}{\tt{)}}{\tt{)}}, \\ 
{\rm{jump\_*-lst}}\,({\rm{cdr}}\,({\it{ins\/}}), {\it{program\/}})\index{jump\_*-lst})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-pushj} \\  
\=\+{\rm{icode-pushj}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-pushj} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_*}}{\tt{)}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, $1\;+$ {\it{pcn\/}}))\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-popj}$\;\;$
{\rm{icode-popj}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-popj} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_pc}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-set-local} \\  
\=\+{\rm{icode-set-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-set-local} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{program\/}})\index{offset-from-csp})\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{move\_$<$x\{s\}$>$\_$<$tsp$>$}}{\tt{)}}{\tt{)}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-set-global} \\  
\=\+{\rm{icode-set-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-set-global} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{move\_$<$x\{a\}$>$\_$<$tsp$>$}}{\tt{)}}{\tt{)}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-test-nat-and-jump} \\  
\=\+{\rm{icode-test-nat-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-test-nat-and-jump} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{zero}} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf else }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}{\tt{)}}))\-)\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-test-int-and-jump} \\  
\=\+{\rm{icode-test-int-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-test-int-and-jump} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\rm{cdr}}\,({\it{ins\/}})): \\ 
{\bf case = }{\it{zero\/}} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf case = }{\it{not-zero\/}} \\ 
{\bf $\;\;$then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf case = }{\it{neg\/}} \\ 
{\bf $\;\;$then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf case = }{\it{not-neg\/}} \\ 
{\bf $\;\;$then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-nn\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf case = }{\it{pos\/}} \\ 
{\bf $\;\;$then }{\rm{list}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, $1\;+$ {\it{pcn\/}}))\index{tag}, \\ 
{\tt{'}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc})\- \\ 
{\bf otherwise }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}})\-)\-)\-$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-test-bool-and-jump} \\  
\=\+{\rm{icode-test-bool-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-test-bool-and-jump} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{t}} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf else }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}}))\-)\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-test-bitv-and-jump} \\  
\=\+{\rm{icode-test-bitv-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-test-bitv-and-jump} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{all-zero}} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}{\tt{)}}))\-)\- \\ 
{\bf else }{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{cons}}\,({\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\it{program\/}})\index{pc}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}{\tt{)}}))\-)\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-no-op}$\;\;$
{\rm{icode-no-op}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-no-op} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{move\_x\_x}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add-addr} \\  
\=\+{\rm{icode-add-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add-addr} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{add\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub-addr} \\  
\=\+{\rm{icode-sub-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub-addr} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{sub\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-eq} \\  
\=\+{\rm{icode-eq}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-eq} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$z$>$\_$<$tsp$>$\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-z\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-lt-addr} \\  
\=\+{\rm{icode-lt-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-lt-addr} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-fetch} \\  
{\rm{icode-fetch}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-fetch} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-deposit} \\  
{\rm{icode-deposit}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-deposit} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add-int} \\  
\=\+{\rm{icode-add-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add-int} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{add\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add-int-with-carry} \\  
\=\+{\rm{icode-add-int-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add-int-with-carry} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_y}}{\tt{)}} \\ 
{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{addc\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add1-int} \\  
{\rm{icode-add1-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add1-int} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub-int} \\  
\=\+{\rm{icode-sub-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub-int} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{sub\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub-int-with-carry} \\  
\=\+{\rm{icode-sub-int-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub-int-with-carry} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_y}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{subb\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub1-int} \\  
{\rm{icode-sub1-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub1-int} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-neg-int} \\  
{\rm{icode-neg-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-neg-int} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-lt-int} \\  
\=\+{\rm{icode-lt-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-lt-int} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-n\_x\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-int-to-nat} \\  
{\rm{icode-int-to-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-int-to-nat} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{int-to-nat}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add-nat} \\  
\=\+{\rm{icode-add-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add-nat} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{add\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add-nat-with-carry} \\  
\=\+{\rm{icode-add-nat-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add-nat-with-carry} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_y}}{\tt{)}} \\ 
{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{addc\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-add1-nat} \\  
{\rm{icode-add1-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-add1-nat} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub-nat} \\  
\=\+{\rm{icode-sub-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub-nat} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub-nat-with-carry} \\  
\=\+{\rm{icode-sub-nat-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub-nat-with-carry} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_y}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{subb\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-sub1-nat} \\  
{\rm{icode-sub1-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-sub1-nat} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-lt-nat} \\  
\=\+{\rm{icode-lt-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-lt-nat} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-mult2-nat} \\  
{\rm{icode-mult2-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-mult2-nat} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-mult2-nat-with-carry-out} \\  
\=\+{\rm{icode-mult2-nat-with-carry-out}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-mult2-nat-with-carry-out} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_$<$c$>$\_x\_x\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-div2-nat} \\  
\=\+{\rm{icode-div2-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-div2-nat} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{tpop\_$<$c$>$\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{lsr\_$<$c$>$\_x\_x\{n\}}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}} \\ 
{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-or-bitv} \\  
{\rm{icode-or-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-or-bitv} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{or\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-and-bitv} \\  
\=\+{\rm{icode-and-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-and-bitv} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{and\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-not-bitv} \\  
{\rm{icode-not-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-not-bitv} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{not\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-xor-bitv} \\  
\=\+{\rm{icode-xor-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-xor-bitv} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{xor\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-rsh-bitv} \\  
{\rm{icode-rsh-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-rsh-bitv} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-lsh-bitv} \\  
{\rm{icode-lsh-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-lsh-bitv} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-or-bool} \\  
{\rm{icode-or-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-or-bool} $=$ {\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{or\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-and-bool} \\  
\=\+{\rm{icode-and-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-and-bool} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{and\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-not-bool} \\  
\=\+{\rm{icode-not-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode-not-bool} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_*\{b\}}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}{\tt{)}}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode1} \\  
\=\+{\rm{icode1}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode1} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{icode-call}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-call} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{icode-ret}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-ret} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-locn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-locn} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-constant}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-constant} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-local} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-global} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-ctrl-stk-free-size}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-ctrl-stk-free-size} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-temp-stk-free-size}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-temp-stk-free-size} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-temp-stk-index}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-temp-stk-index} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-if-temp-stk-full}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-if-temp-stk-full} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-if-temp-stk-empty}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-if-temp-stk-empty} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop*}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop*} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-popn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-popn} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-local} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-global} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-locn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-locn} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-call}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-call} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{icode-fetch-temp-stk}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-fetch-temp-stk} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{icode-deposit-temp-stk}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-deposit-temp-stk} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-case}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-case} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pushj}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pushj} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{icode-popj}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-popj} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-set-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-set-local} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-set-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-set-global} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-nat-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-nat-and-jump} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-int-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-int-and-jump} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-bool-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-bool-and-jump} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-bitv-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-bitv-and-jump} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{icode-no-op}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-no-op} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-addr} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-addr} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{icode-eq}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-eq} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-addr} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{icode-fetch}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-fetch} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{icode-deposit}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-deposit} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-int} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-int-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-int-with-carry} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add1-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add1-int} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-int} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-int-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-int-with-carry} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub1-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub1-int} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-neg-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-neg-int} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-int} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-int-to-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-int-to-nat} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-nat} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-nat-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-nat-with-carry} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add1-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add1-nat} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-nat} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-nat-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-nat-with-carry} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub1-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub1-nat} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-nat} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-mult2-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-mult2-nat} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{icode-mult2-nat-with-carry-out}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-mult2-nat-with-carry-out} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-div2-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-div2-nat} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-or-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-or-bitv} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-and-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-and-bitv} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-not-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-not-bitv} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-xor-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-xor-bitv} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-rsh-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-rsh-bitv} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lsh-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lsh-bitv} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-or-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-or-bool} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-and-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-and-bool} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-not-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-not-bool} \\ 
{\bf otherwise }{\tt{'}}{\tt{(}}{\tt{(}}{\tt{error}}{\tt{)}}{\tt{)}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{dl-block} \\  
{\rm{dl-block}}\,({\it{lab\/}}, {\it{comment\/}}, {\it{block\/}})\index{dl-block} $=$ {\rm{cons}}\,({\rm{dl}}\,({\it{lab\/}}, {\it{comment\/}}, {\rm{car}}\,({\it{block\/}}))\index{dl}, {\rm{cdr}}\,({\it{block\/}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode} \\  
\=\+{\rm{icode}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode} \\ 
$=$$\;\;\;\;${\rm{dl-block}}\,({\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\it{pcn\/}}), {\it{ins\/}}, {\rm{icode1}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{program\/}})\index{icode1})\index{dl-block}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icompile-program-body} \\  
\=\+{\rm{icompile-program-body}}\,({\it{lst\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{icode}}\,({\rm{car}}\,({\it{lst\/}}), {\it{pcn\/}}, {\it{program\/}})\index{icode}, \\ 
{\rm{icompile-program-body}}\,({\rm{cdr}}\,({\it{lst\/}}), $1\;+$ {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icompile-program} \\  
\=\+{\rm{icompile-program}}\,({\it{program\/}})\index{icompile-program} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{name}}\,({\it{program\/}})\index{name}, \\ 
{\rm{append}}\,(\=\+{\rm{generate-prelude}}\,({\it{program\/}})\index{generate-prelude}, \\ 
{\rm{append}}\,(\=\+{\rm{icompile-program-body}}\,(\=\+{\rm{program-body}}\,({\it{program\/}})\index{program-body}, \\ 
{\tt{0}}, \\ 
{\it{program\/}})\-\index{icompile-program-body}, \\ 
{\rm{generate-postlude}}\,({\it{program\/}})\index{generate-postlude})\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icompile} \\  
\=\+{\rm{icompile}}\,({\it{programs\/}})\index{icompile} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{programs\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{icompile-program}}\,({\rm{car}}\,({\it{programs\/}}))\index{icompile-program}, \\ 
{\rm{icompile}}\,({\rm{cdr}}\,({\it{programs\/}}))\index{icompile})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{segment-length} \\  
\=\+{\rm{segment-length}}\,({\it{segment\/}})\index{segment-length} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\rm{length}}\,({\rm{cdar}}\,({\it{segment\/}}))\index{length} $+$ {\rm{segment-length}}\,({\rm{cdr}}\,({\it{segment\/}}))\index{segment-length}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{total-p-system-size} \\  
\=\+{\rm{total-p-system-size}}\,({\it{p\/}}, {\it{load-addr\/}})\index{total-p-system-size} \\ 
$=$$\;\;\;\;$(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{icompile}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{icompile})\index{segment-length} \\ 
$+$$\;\;\;\;$($1\;+$ {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}) \\ 
$+$$\;\;\;\;$($1\;+$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}) \\ 
$+$$\;\;\;\;${\tt{3}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-loadablep} \\  
\=\+{\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$=$$\;\;\;\;$({\rm{total-p-system-size}}\,({\it{p\/}}, {\it{load-addr\/}})\index{total-p-system-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp})\-
\end{tabbing}


\noindent{\sc Event}:   Add the shell {\it{r-state\/}}\index{r-state}, with recognizer function symbol {\it{r-statep\/}} and 15 accessors: {\it{r-pc\/}}, with type restriction (none-of) and default value zero; {\it{r-cfp\/}}, with type restriction (none-of) and default value zero; {\it{r-csp\/}}, with type restriction (none-of) and default value zero; {\it{r-tsp\/}}, with type restriction (none-of) and default value zero; {\it{r-x\/}}, with type restriction (none-of) and default value zero; {\it{r-y\/}}, with type restriction (none-of) and default value zero; {\it{r-c-flg\/}}, with type restriction (none-of) and default value zero; {\it{r-v-flg\/}}, with type restriction (none-of) and default value zero; {\it{r-n-flg\/}}, with type restriction (none-of) and default value zero; {\it{r-z-flg\/}}, with type restriction (none-of) and default value zero; {\it{r-prog-segment\/}}, with type restriction (none-of) and default value zero; {\it{r-usr-data-segment\/}}, with type restriction (none-of) and default value zero; {\it{r-sys-data-segment\/}}, with type restriction (none-of) and default value zero; {\it{r-word-size\/}}, with type restriction (none-of) and default value zero; {\it{r-psw\/}}, with type restriction (none-of) and default value zero.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{nat-0s} \\  
\=\+{\rm{nat-0s}}\,({\it{n\/}})\index{nat-0s} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag}, {\rm{nat-0s}}\,({\it{n\/}} $-\;1$)\index{nat-0s})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_temp-stk} \\  
\=\+{\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_temp-stk} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{append}}\,(\=\+{\rm{nat-0s}}\,({\it{max-temp-stk-size\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length})\index{nat-0s}, \\ 
{\rm{append}}\,({\it{temp-stk\/}}, {\rm{list}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag})))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_csp} \\  
\=\+{\rm{p-$>$r\_csp}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_csp} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{max\/}} $-$ {\rm{p-ctrl-stk-size}}\,({\it{stk\/}})\index{p-ctrl-stk-size}))\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_cfp} \\  
{\rm{p-$>$r\_cfp}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_cfp} $=$ {\rm{sub-addr}}\,({\rm{p-$>$r\_csp}}\,({\rm{pop}}\,({\it{stk\/}})\index{pop}, {\it{max\/}})\index{p-$>$r\_csp}, {\tt{2}})\index{sub-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_p-frame} \\  
\=\+{\rm{p-$>$r\_p-frame}}\,({\it{pframe\/}}, {\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_p-frame} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{strip-cdrs}}\,({\rm{bindings}}\,({\it{pframe\/}})\index{bindings})\index{strip-cdrs}, \\ 
{\rm{list}}\,({\rm{p-$>$r\_cfp}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_cfp}, {\rm{ret-pc}}\,({\it{pframe\/}})\index{ret-pc}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_ctrl-stk1} \\  
\=\+{\rm{p-$>$r\_ctrl-stk1}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_ctrl-stk1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{stk\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{p-$>$r\_p-frame}}\,({\rm{top}}\,({\it{stk\/}})\index{top}, {\rm{pop}}\,({\it{stk\/}})\index{pop}, {\it{max\/}})\index{p-$>$r\_p-frame}, \\ 
{\rm{p-$>$r\_ctrl-stk1}}\,({\rm{pop}}\,({\it{stk\/}})\index{pop}, {\it{max\/}})\index{p-$>$r\_ctrl-stk1})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_ctrl-stk} \\  
\=\+{\rm{p-$>$r\_ctrl-stk}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{cstk}}, \\ 
{\rm{append}}\,(\=\+{\rm{nat-0s}}\,({\it{max\/}} $-$ {\rm{p-ctrl-stk-size}}\,({\it{stk\/}})\index{p-ctrl-stk-size})\index{nat-0s}, \\ 
{\rm{append}}\,({\rm{p-$>$r\_ctrl-stk1}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_ctrl-stk1}, {\rm{list}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag})))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_sys-data-segment} \\  
\=\+{\rm{p-$>$r\_sys-data-segment}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}}, {\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_sys-data-segment} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\rm{p-$>$r\_ctrl-stk}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk}, \\ 
{\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_temp-stk}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{full-ctrl-stk-addr}}, {\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{cstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag}), \\ 
{\rm{list}}\,({\tt{'}}{\tt{full-temp-stk-addr}}, {\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag}), \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{max-temp-stk-size\/}}))\index{tag})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r\_tsp} \\  
{\rm{p-$>$r\_tsp}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_tsp} $=$ {\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{max\/}} $-$ {\rm{length}}\,({\it{stk\/}})\index{length}))\index{tag}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-$>$r} \\  
\=\+{\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{p-pc}}\,({\it{p\/}})\index{p-pc}, \\ 
{\rm{p-$>$r\_cfp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_cfp}, \\ 
{\rm{p-$>$r\_csp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_csp}, \\ 
{\rm{p-$>$r\_tsp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\index{p-$>$r\_tsp}, \\ 
{\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{p\/}})\index{p-psw})\-\index{r-state}\-
\end{tabbing}


\noindent{\sc Event}:   Add the shell {\it{i-state\/}}\index{i-state}, with recognizer function symbol {\it{i-statep\/}} and 15 accessors: {\it{i-pc\/}}, with type restriction (none-of) and default value zero; {\it{i-cfp\/}}, with type restriction (none-of) and default value zero; {\it{i-csp\/}}, with type restriction (none-of) and default value zero; {\it{i-tsp\/}}, with type restriction (none-of) and default value zero; {\it{i-x\/}}, with type restriction (none-of) and default value zero; {\it{i-y\/}}, with type restriction (none-of) and default value zero; {\it{i-c-flg\/}}, with type restriction (none-of) and default value zero; {\it{i-v-flg\/}}, with type restriction (none-of) and default value zero; {\it{i-n-flg\/}}, with type restriction (none-of) and default value zero; {\it{i-z-flg\/}}, with type restriction (none-of) and default value zero; {\it{i-prog-segment\/}}, with type restriction (none-of) and default value zero; {\it{i-usr-data-segment\/}}, with type restriction (none-of) and default value zero; {\it{i-sys-data-segment\/}}, with type restriction (none-of) and default value zero; {\it{i-word-size\/}}, with type restriction (none-of) and default value zero; {\it{i-psw\/}}, with type restriction (none-of) and default value zero.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{r-$>$i\_pc} \\  
\=\+{\rm{r-$>$i\_pc}}\,({\it{pc\/}}, {\it{programs\/}})\index{r-$>$i\_pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{find-label}}\,(\=\+{\rm{untag}}\,({\it{pc\/}})\index{untag}, \\ 
{\rm{cdr}}\,({\rm{icompile-program}}\,({\rm{definition}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\it{programs\/}})\-\index{definition})\index{icompile-program}))\-\index{find-label})\-)\-\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-$>$i\_psw} \\  
\=\+{\rm{r-$>$i\_psw}}\,({\it{psw\/}})\index{r-$>$i\_psw} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{psw\/}} $=$ {\tt{'}}{\tt{halt}}$\;\;${\bf then }{\tt{'}}{\tt{run}} \\ 
{\bf else }{\it{psw\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-$>$i} \\  
\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\rm{r-$>$i\_psw}}\,({\rm{r-psw}}\,({\it{r\/}})\index{r-psw})\index{r-$>$i\_psw})\-\index{i-state}\-
\end{tabbing}


\noindent{\sc Event}:   Add the shell {\it{m-state\/}}\index{m-state}, with recognizer function symbol {\it{m-statep\/}} and 6 accessors: {\it{m-regs\/}}, with type restriction (none-of) and default value zero; {\it{m-c-flg\/}}, with type restriction (none-of) and default value zero; {\it{m-v-flg\/}}, with type restriction (none-of) and default value zero; {\it{m-n-flg\/}}, with type restriction (none-of) and default value zero; {\it{m-z-flg\/}}, with type restriction (none-of) and default value zero; {\it{m-mem\/}}, with type restriction (none-of) and default value zero.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{link-table-for-segment} \\  
\=\+{\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,({\rm{caar}}\,({\it{segment\/}}), {\it{addr0\/}}), \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{cdr}}\,({\it{segment\/}}), \\ 
{\it{addr0\/}} $+$ {\rm{length}}\,({\rm{cdar}}\,({\it{segment\/}}))\index{length})\-\index{link-table-for-segment})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-table-for-labels} \\  
\=\+{\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf elseif }{\rm{labelledp}}\,({\rm{car}}\,({\it{lst\/}}))\index{labelledp} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{cons}}\,({\rm{cadar}}\,({\it{lst\/}}), {\it{addr0\/}}), \\ 
{\rm{link-table-for-labels}}\,({\rm{cdr}}\,({\it{lst\/}}), $1\;+$ {\it{addr0\/}})\index{link-table-for-labels})\- \\ 
{\bf else }{\rm{link-table-for-labels}}\,({\rm{cdr}}\,({\it{lst\/}}), $1\;+$ {\it{addr0\/}})\index{link-table-for-labels}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-table-for-prog-labels} \\  
\=\+{\rm{link-table-for-prog-labels}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-prog-labels} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{caar}}\,({\it{segment\/}}), \\ 
{\rm{link-table-for-labels}}\,({\rm{cdar}}\,({\it{segment\/}}), {\it{addr0\/}})\index{link-table-for-labels})\-, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\rm{cdr}}\,({\it{segment\/}}), \\ 
{\it{addr0\/}} $+$ {\rm{length}}\,({\rm{cdar}}\,({\it{segment\/}}))\index{length})\-\index{link-table-for-prog-labels})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-link-tables} \\  
\=\+{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels}, \\ 
{\rm{link-table-for-segment}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{load-addr\/}})\index{link-table-for-segment}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length}\-)\-\index{link-table-for-segment})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{prog-links}$\;\;$
{\rm{prog-links}}\,({\it{link-tables\/}})\index{prog-links} $=$ {\rm{car}}\,({\it{link-tables\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{prog-label-tables}$\;\;$
{\rm{prog-label-tables}}\,({\it{link-tables\/}})\index{prog-label-tables} $=$ {\rm{cadr}}\,({\it{link-tables\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{usr-data-links}$\;\;$
{\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links} $=$ {\rm{caddr}}\,({\it{link-tables\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{sys-data-links}$\;\;$
{\rm{sys-data-links}}\,({\it{link-tables\/}})\index{sys-data-links} $=$ {\rm{cadddr}}\,({\it{link-tables\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{label-links} \\  
\=\+{\rm{label-links}}\,({\it{label\/}}, {\it{prog-label-tables\/}})\index{label-links} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{label\/}})\index{adp-name}, {\it{prog-label-tables\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{base-address} \\  
{\rm{base-address}}\,({\it{name\/}}, {\it{link-table\/}})\index{base-address} $=$ {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{link-table\/}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{find-containing-area-name} \\  
\=\+{\rm{find-containing-area-name}}\,({\it{n\/}}, {\it{link-table\/}})\index{find-containing-area-name} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{link-table\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{cdr}}\,({\it{link-table\/}}) $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{caar}}\,({\it{link-table\/}}) \\ 
{\bf elseif }({\it{n\/}} $\not<$ {\rm{cdar}}\,({\it{link-table\/}})) $\wedge$ ({\it{n\/}} $<$ {\rm{cdadr}}\,({\it{link-table\/}})) \\ 
{\bf then }{\rm{caar}}\,({\it{link-table\/}}) \\ 
{\bf else }{\rm{find-containing-area-name}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{link-table\/}}))\index{find-containing-area-name}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{invert-base-address} \\  
\=\+{\rm{invert-base-address}}\,({\it{n\/}}, {\it{link-table\/}})\index{invert-base-address} \\ 
$=$$\;\;\;\;${\rm{find-containing-area-name}}\,({\it{n\/}}, {\it{link-table\/}})\index{find-containing-area-name}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{label-address} \\  
\=\+{\rm{label-address}}\,({\it{label\/}}, {\it{prog-label-tables\/}})\index{label-address} \\ 
$=$$\;\;\;\;${\rm{base-address}}\,({\it{label\/}}, {\rm{label-links}}\,({\it{label\/}}, {\it{prog-label-tables\/}})\index{label-links})\index{base-address}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{assoc-cdrp} \\  
\=\+{\rm{assoc-cdrp}}\,({\it{n\/}}, {\it{alist\/}})\index{assoc-cdrp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\it{n\/}} $=$ {\rm{cdar}}\,({\it{alist\/}})$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{assoc-cdrp}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{alist\/}}))\index{assoc-cdrp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{find-containing-label-table} \\  
\=\+{\rm{find-containing-label-table}}\,({\it{n\/}}, {\it{label-tables\/}})\index{find-containing-label-table} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{label-tables\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{assoc-cdrp}}\,({\it{n\/}}, {\rm{cdar}}\,({\it{label-tables\/}}))\index{assoc-cdrp}$\;\;${\bf then }{\rm{cdar}}\,({\it{label-tables\/}}) \\ 
{\bf else }{\rm{find-containing-label-table}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{label-tables\/}}))\index{find-containing-label-table}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{invert-label-address} \\  
\=\+{\rm{invert-label-address}}\,({\it{n\/}}, {\it{prog-label-tables\/}})\index{invert-label-address} \\ 
$=$$\;\;\;\;${\rm{invert-base-address}}\,(\=\+{\it{n\/}}, \\ 
{\rm{find-containing-label-table}}\,({\it{n\/}}, {\it{prog-label-tables\/}})\index{find-containing-label-table})\-\index{invert-base-address}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{absolute-address} \\  
\=\+{\rm{absolute-address}}\,({\it{adp\/}}, {\it{link-table\/}})\index{absolute-address} \\ 
$=$$\;\;\;\;$({\rm{base-address}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{link-table\/}})\index{base-address} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{invert-absolute-address} \\  
\=\+{\rm{invert-absolute-address}}\,({\it{n\/}}, {\it{link-table\/}})\index{invert-absolute-address} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{find-containing-area-name}}\,({\it{n\/}}, {\it{link-table\/}})\index{find-containing-area-name}, \\ 
{\it{n\/}} $-$ {\rm{base-address}}\,(\=\+{\rm{find-containing-area-name}}\,({\it{n\/}}, {\it{link-table\/}})\index{find-containing-area-name}, \\ 
{\it{link-table\/}})\-\index{base-address})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bitv-to-v} \\  
\=\+{\rm{bitv-to-v}}\,({\it{lst\/}}, {\it{word-size\/}})\index{bitv-to-v} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{word-size\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{bitv-to-v}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{word-size\/}} $-\;1$)\index{bitv-to-v}, \\ 
{\rm{list}}\,(\=\+{\bf if }{\rm{car}}\,({\it{lst\/}}) $=$ {\tt{0}}$\;\;${\bf then }{\bf{f}} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-))\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{v-to-bitv} \\  
\=\+{\rm{v-to-bitv}}\,({\it{v\/}})\index{v-to-bitv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{v\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{v-to-bitv}}\,({\rm{cdr}}\,({\it{v\/}}))\index{v-to-bitv}, \\ 
{\rm{list}}\,(\=\+{\bf if }{\rm{car}}\,({\it{v\/}})$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-))\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bool-to-v} \\  
\=\+{\rm{bool-to-v}}\,({\it{b\/}}, {\it{word-size\/}})\index{bool-to-v} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{b\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{nat-to-v}}\,({\tt{0}}, {\it{word-size\/}})\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,({\tt{1}}, {\it{word-size\/}})\index{nat-to-v}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{v-to-bool} \\  
\=\+{\rm{v-to-bool}}\,({\it{v\/}})\index{v-to-bool} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{car}}\,({\it{v\/}})$\;\;${\bf then }{\tt{'}}{\tt{t}} \\ 
{\bf else }{\tt{'}}{\tt{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{addr-to-v} \\  
\=\+{\rm{addr-to-v}}\,({\it{adp\/}}, {\it{usr-data-links\/}}, {\it{word-size\/}})\index{addr-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{absolute-address}}\,({\it{adp\/}}, {\it{usr-data-links\/}})\index{absolute-address}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{v-to-addr} \\  
\=\+{\rm{v-to-addr}}\,({\it{v\/}}, {\it{usr-data-links\/}})\index{v-to-addr} \\ 
$=$$\;\;\;\;${\rm{invert-absolute-address}}\,({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat}, {\it{usr-data-links\/}})\index{invert-absolute-address}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{subr-to-v} \\  
\=\+{\rm{subr-to-v}}\,({\it{subr\/}}, {\it{prog-links\/}}, {\it{word-size\/}})\index{subr-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{base-address}}\,({\it{subr\/}}, {\it{prog-links\/}})\index{base-address}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{v-to-subr} \\  
{\rm{v-to-subr}}\,({\it{v\/}}, {\it{prog-links\/}})\index{v-to-subr} $=$ {\rm{invert-base-address}}\,({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat}, {\it{prog-links\/}})\index{invert-base-address}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{sys-addr-to-v} \\  
\=\+{\rm{sys-addr-to-v}}\,({\it{adp\/}}, {\it{sys-data-links\/}}, {\it{word-size\/}})\index{sys-addr-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{absolute-address}}\,({\it{adp\/}}, {\it{sys-data-links\/}})\index{absolute-address}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{v-to-sys-addr} \\  
\=\+{\rm{v-to-sys-addr}}\,({\it{v\/}}, {\it{sys-data-links\/}})\index{v-to-sys-addr} \\ 
$=$$\;\;\;\;${\rm{invert-absolute-address}}\,({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat}, {\it{sys-data-links\/}})\index{invert-absolute-address}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{label-to-v} \\  
\=\+{\rm{label-to-v}}\,({\it{ilab\/}}, {\it{prog-label-tables\/}}, {\it{word-size\/}})\index{label-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{label-address}}\,({\it{ilab\/}}, {\it{prog-label-tables\/}})\index{label-address}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{v-to-label} \\  
\=\+{\rm{v-to-label}}\,({\it{v\/}}, {\it{prog-label-tables\/}})\index{v-to-label} \\ 
$=$$\;\;\;\;${\rm{invert-label-address}}\,({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat}, {\it{prog-label-tables\/}})\index{invert-label-address}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{ipc-to-v} \\  
\=\+{\rm{ipc-to-v}}\,({\it{pcpp\/}}, {\it{prog-links\/}}, {\it{word-size\/}})\index{ipc-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{absolute-address}}\,({\it{pcpp\/}}, {\it{prog-links\/}})\index{absolute-address}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-data-word} \\  
\=\+{\rm{link-data-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-data-word} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{type}}\,({\it{x\/}})\index{type}: \\ 
{\bf case = }{\it{nat\/}} \\ 
{\bf then }{\rm{nat-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{nat-to-v} \\ 
{\bf case = }{\it{int\/}} \\ 
{\bf $\;\;$then }{\rm{int-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{int-to-v} \\ 
{\bf case = }{\it{bitv\/}} \\ 
{\bf $\;\;$then }{\rm{bitv-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{bitv-to-v} \\ 
{\bf case = }{\it{bool\/}} \\ 
{\bf $\;\;$then }{\rm{bool-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{bool-to-v} \\ 
{\bf case = }{\it{addr\/}} \\ 
{\bf $\;\;$then }{\rm{addr-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links}, {\it{word-size\/}})\index{addr-to-v} \\ 
{\bf case = }{\it{subr\/}} \\ 
{\bf $\;\;$then }{\rm{subr-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{prog-links}}\,({\it{link-tables\/}})\index{prog-links}, {\it{word-size\/}})\index{subr-to-v} \\ 
{\bf case = }{\it{sys-addr\/}} \\ 
{\bf $\;\;$then }{\rm{sys-addr-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{sys-data-links}}\,({\it{link-tables\/}})\index{sys-data-links}, {\it{word-size\/}})\index{sys-addr-to-v} \\ 
{\bf case = }{\it{pc\/}} \\ 
{\bf $\;\;$then }{\rm{label-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{prog-label-tables}}\,({\it{link-tables\/}})\index{prog-label-tables}, {\it{word-size\/}})\index{label-to-v} \\ 
{\bf case = }{\it{ipc\/}} \\ 
{\bf $\;\;$then }{\rm{ipc-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{prog-links}}\,({\it{link-tables\/}})\index{prog-links}, {\it{word-size\/}})\index{ipc-to-v} \\ 
{\bf otherwise }{\rm{nat-to-v}}\,({\tt{0}}, {\it{word-size\/}})\index{nat-to-v}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{unlink-data-word} \\  
\=\+{\rm{unlink-data-word}}\,({\it{type\/}}, {\it{v\/}}, {\it{link-tables\/}})\index{unlink-data-word} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\it{type\/}}: \\ 
{\bf case = }{\it{nat\/}} \\ 
{\bf then }{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat})\index{tag} \\ 
{\bf case = }{\it{int\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{int}}, {\rm{v-to-int}}\,({\it{v\/}})\index{v-to-int})\index{tag} \\ 
{\bf case = }{\it{bitv\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{bitv}}, {\rm{v-to-bitv}}\,({\it{v\/}})\index{v-to-bitv})\index{tag} \\ 
{\bf case = }{\it{bool\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{bool}}, {\rm{v-to-bool}}\,({\it{v\/}})\index{v-to-bool})\index{tag} \\ 
{\bf case = }{\it{addr\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{v-to-addr}}\,({\it{v\/}}, {\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links})\index{v-to-addr})\index{tag} \\ 
{\bf case = }{\it{subr\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{subr}}, {\rm{v-to-subr}}\,({\it{v\/}}, {\rm{prog-links}}\,({\it{link-tables\/}})\index{prog-links})\index{v-to-subr})\index{tag} \\ 
{\bf case = }{\it{sys-addr\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{v-to-sys-addr}}\,({\it{v\/}}, {\rm{sys-data-links}}\,({\it{link-tables\/}})\index{sys-data-links})\index{v-to-sys-addr})\index{tag} \\ 
{\bf case = }{\it{pc\/}} \\ 
{\bf $\;\;$then }{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{v-to-label}}\,({\it{v\/}}, {\rm{prog-label-tables}}\,({\it{link-tables\/}})\index{prog-label-tables})\index{v-to-label})\index{tag} \\ 
{\bf otherwise }{\tt{'}}{\tt{(}}{\tt{unrecognized}}{\tt{ }}{\tt{i-level}}{\tt{ }}{\tt{type}}{\tt{)}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-instruction-alist} \\  
\=\+{\sc{link-instruction-alist}}\index{link-instruction-alist} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{add\_$<$c$>$\_x\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_tsp\_*\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{tsp}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_tsp\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{tsp}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_pc\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_x\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{ }}{\tt{(}}{\tt{add}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{csp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{addc\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{ }}{\tt{(}}{\tt{addc}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{addc\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{ }}{\tt{(}}{\tt{addc}}{\tt{ }}{\tt{(}}{\tt{v}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{and\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{ }}{\tt{(}}{\tt{and}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{and\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{ }}{\tt{(}}{\tt{and}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{ }}{\tt{(}}{\tt{asr}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{cpop\_cfp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{cfp}}{\tt{ }}{\tt{(}}{\tt{csp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{cpop\_pc}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{(}}{\tt{csp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{cpush\_*}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{csp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{csp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{cpush\_cfp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{csp}}{\tt{)}}{\tt{ }}{\tt{cfp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{ }}{\tt{(}}{\tt{decr}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{ }}{\tt{(}}{\tt{decr}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{ }}{\tt{(}}{\tt{incr}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{ }}{\tt{(}}{\tt{incr}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{ }}{\tt{(}}{\tt{incr}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{int-to-nat}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{jump-n\_x}}{\tt{ }}{\tt{(}}{\tt{move-n}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{jump-nn\_x}}{\tt{ }}{\tt{(}}{\tt{move-nn}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{jump-nz\_x}}{\tt{ }}{\tt{(}}{\tt{move-nz}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{jump-z\_x}}{\tt{ }}{\tt{(}}{\tt{move-z}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{jump\_*}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{jump\_x\{subr\}}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{lsr\_$<$c$>$\_x\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{lsr}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{ }}{\tt{(}}{\tt{lsr}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{ }}{\tt{(}}{\tt{move-c}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{ }}{\tt{(}}{\tt{move-v}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-z\_$<$tsp$>$\_*}}{\tt{ }}{\tt{(}}{\tt{move-z}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-n\_x\_*}}{\tt{ }}{\tt{(}}{\tt{move-n}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_$<$tsp$>$\_*}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_$<$x\{a\}$>$\_$<$tsp$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_$<$x\{s\}$>$\_$<$tsp$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{cfp}}{\tt{ }}{\tt{csp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{csp}}{\tt{ }}{\tt{cfp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_*}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_tsp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_x\_x}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_y\_*}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_y\_$<$y\{s\}$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{y}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{move\_y\_tsp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{ }}{\tt{(}}{\tt{neg}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{not\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{ }}{\tt{(}}{\tt{not}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{or\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{ }}{\tt{(}}{\tt{or}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{or\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{ }}{\tt{(}}{\tt{or}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{(}}{\tt{n}}{\tt{ }}{\tt{v}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{ }}{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{(}}{\tt{z}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{subb\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{ }}{\tt{(}}{\tt{subb}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{subb\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{ }}{\tt{(}}{\tt{subb}}{\tt{ }}{\tt{(}}{\tt{v}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{y}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_$<$c$>$\_x}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{(}}{\tt{c}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_pc}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{pc}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_x}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{x}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\_y}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{(}}{\tt{z}}{\tt{)}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{(}}{\tt{z}}{\tt{)}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{(}}{\tt{z}}{\tt{ }}{\tt{n}}{\tt{)}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{(}}{\tt{z}}{\tt{)}}{\tt{ }}{\tt{y}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_*}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{x}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_csp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{csp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_tsp}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{tpush\_x}}{\tt{ }}{\tt{(}}{\tt{move}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{-1}}{\tt{ }}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{ }}{\tt{(}}{\tt{xor}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{ }}{\tt{(}}{\tt{xor}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_*\{b\}}}{\tt{ }}{\tt{(}}{\tt{xor}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{ }}{\tt{(}}{\tt{xor}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor\_$<$z$>$\_$<$tsp$>$\_x}}{\tt{ }}{\tt{(}}{\tt{xor}}{\tt{ }}{\tt{(}}{\tt{z}}{\tt{)}}{\tt{ }}{\tt{(}}{\tt{tsp}}{\tt{)}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pack-instruction} \\  
\=\+{\rm{pack-instruction}}\,({\it{op\/}}, {\it{move-bits\/}}, {\it{cvnz\/}}, {\it{mode-b\/}}, {\it{reg-b\/}}, {\it{mode-a\/}}, {\it{reg-a\/}}, {\it{word-size\/}})\index{pack-instruction} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,(\=\+\=\+({\it{op\/}} $*$ {\rm{exp}}\,({\tt{2}}, {\tt{24}})\index{exp}) \\ 
$+$$\;\;\;\;$({\it{move-bits\/}} $*$ {\rm{exp}}\,({\tt{2}}, {\tt{20}})\index{exp}) \\ 
$+$$\;\;\;\;$({\it{cvnz\/}} $*$ {\rm{exp}}\,({\tt{2}}, {\tt{16}})\index{exp}) \\ 
$+$$\;\;\;\;$({\it{mode-b\/}} $*$ {\rm{exp}}\,({\tt{2}}, {\tt{14}})\index{exp}) \\ 
$+$$\;\;\;\;$({\it{reg-b\/}} $*$ {\rm{exp}}\,({\tt{2}}, {\tt{10}})\index{exp}) \\ 
$+$$\;\;\;\;$({\it{mode-a\/}} $*$ {\rm{exp}}\,({\tt{2}}, {\tt{4}})\index{exp}) \\ 
$+$$\;\;\;\;${\it{reg-a\/}}\-, \\ 
{\it{word-size\/}})\-\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{extract-op} \\  
\=\+{\rm{extract-op}}\,({\it{opcode\/}})\index{extract-op} \\ 
$=$$\;\;\;\;${\rm{cadr}}\,({\rm{assoc}}\,(\=\+{\it{opcode\/}}, \\ 
{\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{incr}}{\tt{ }}{\tt{1}}{\tt{)}} \\ 
{\tt{(}}{\tt{addc}}{\tt{ }}{\tt{2}}{\tt{)}} \\ 
{\tt{(}}{\tt{add}}{\tt{ }}{\tt{3}}{\tt{)}} \\ 
{\tt{(}}{\tt{neg}}{\tt{ }}{\tt{4}}{\tt{)}} \\ 
{\tt{(}}{\tt{decr}}{\tt{ }}{\tt{5}}{\tt{)}} \\ 
{\tt{(}}{\tt{subb}}{\tt{ }}{\tt{6}}{\tt{)}} \\ 
{\tt{(}}{\tt{sub}}{\tt{ }}{\tt{7}}{\tt{)}} \\ 
{\tt{(}}{\tt{ror}}{\tt{ }}{\tt{8}}{\tt{)}} \\ 
{\tt{(}}{\tt{asr}}{\tt{ }}{\tt{9}}{\tt{)}} \\ 
{\tt{(}}{\tt{lsr}}{\tt{ }}{\tt{10}}{\tt{)}} \\ 
{\tt{(}}{\tt{xor}}{\tt{ }}{\tt{11}}{\tt{)}} \\ 
{\tt{(}}{\tt{or}}{\tt{ }}{\tt{12}}{\tt{)}} \\ 
{\tt{(}}{\tt{and}}{\tt{ }}{\tt{13}}{\tt{)}} \\ 
{\tt{(}}{\tt{not}}{\tt{ }}{\tt{14}}{\tt{)}} \\ 
{\tt{(}}{\tt{move}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-nc}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-c}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-nv}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-v}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-nz}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-z}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-nn}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{move-n}}{\tt{ }}{\tt{15}}{\tt{)}}{\tt{)}}\-)\-)\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{extract-move-bits} \\  
\=\+{\rm{extract-move-bits}}\,({\it{opcode\/}})\index{extract-move-bits} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\it{opcode\/}}: \\ 
{\bf case = }{\it{move\/}} \\ 
{\bf then }{\tt{14}} \\ 
{\bf case = }{\it{move-nc\/}} \\ 
{\bf $\;\;$then }{\tt{0}} \\ 
{\bf case = }{\it{move-c\/}} \\ 
{\bf $\;\;$then }{\tt{1}} \\ 
{\bf case = }{\it{move-nv\/}} \\ 
{\bf $\;\;$then }{\tt{2}} \\ 
{\bf case = }{\it{move-v\/}} \\ 
{\bf $\;\;$then }{\tt{3}} \\ 
{\bf case = }{\it{move-nz\/}} \\ 
{\bf $\;\;$then }{\tt{6}} \\ 
{\bf case = }{\it{move-z\/}} \\ 
{\bf $\;\;$then }{\tt{7}} \\ 
{\bf case = }{\it{move-nn\/}} \\ 
{\bf $\;\;$then }{\tt{4}} \\ 
{\bf case = }{\it{move-n\/}} \\ 
{\bf $\;\;$then }{\tt{5}} \\ 
{\bf otherwise }{\tt{14}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{extract-mode} \\  
\=\+{\rm{extract-mode}}\,({\it{reg-spec\/}})\index{extract-mode} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{litatom}}\,({\it{reg-spec\/}})$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{cdr}}\,({\it{reg-spec\/}}) $=$ {\bf{nil}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf elseif }{\rm{car}}\,({\it{reg-spec\/}}) $=$ {\tt{-1}}$\;\;${\bf then }{\tt{2}} \\ 
{\bf else }{\tt{3}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{extract-cvnz} \\  
\=\+{\rm{extract-cvnz}}\,({\it{flg-names\/}})\index{extract-cvnz} \\ 
$=$$\;\;\;\;$(\=\+(\=\+\=\+{\bf if }{\tt{'}}{\tt{c}} $\in$ {\it{flg-names\/}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
$*$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\tt{3}})\index{exp})\- \\ 
$+$$\;\;\;\;$(\=\+\=\+{\bf if }{\tt{'}}{\tt{v}} $\in$ {\it{flg-names\/}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
$*$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\tt{2}})\index{exp})\- \\ 
$+$$\;\;\;\;$(\=\+\=\+{\bf if }{\tt{'}}{\tt{n}} $\in$ {\it{flg-names\/}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
$*$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\tt{1}})\index{exp})\- \\ 
$+$$\;\;\;\;$(\=\+\=\+{\bf if }{\tt{'}}{\tt{z}} $\in$ {\it{flg-names\/}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
$*$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\tt{0}})\index{exp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{extract-reg1} \\  
\=\+{\rm{extract-reg1}}\,({\it{reg-spec\/}})\index{extract-reg1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{litatom}}\,({\it{reg-spec\/}})$\;\;${\bf then }{\it{reg-spec\/}} \\ 
{\bf elseif }{\rm{cdr}}\,({\it{reg-spec\/}}) $=$ {\bf{nil}}$\;\;${\bf then }{\rm{car}}\,({\it{reg-spec\/}}) \\ 
{\bf elseif }{\rm{car}}\,({\it{reg-spec\/}}) $=$ {\tt{-1}}$\;\;${\bf then }{\rm{cadr}}\,({\it{reg-spec\/}}) \\ 
{\bf else }{\rm{car}}\,({\it{reg-spec\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{extract-reg} \\  
\=\+{\rm{extract-reg}}\,({\it{reg-spec\/}})\index{extract-reg} \\ 
$=$$\;\;\;\;${\rm{cadr}}\,({\rm{assoc}}\,(\=\+{\rm{extract-reg1}}\,({\it{reg-spec\/}})\index{extract-reg1}, \\ 
{\tt{'}}{\tt{(}}\=\+{\tt{(}}{\tt{pc}}{\tt{ }}{\tt{15}}{\tt{)}} \\ 
{\tt{(}}{\tt{cfp}}{\tt{ }}{\tt{1}}{\tt{)}} \\ 
{\tt{(}}{\tt{csp}}{\tt{ }}{\tt{2}}{\tt{)}} \\ 
{\tt{(}}{\tt{tsp}}{\tt{ }}{\tt{3}}{\tt{)}} \\ 
{\tt{(}}{\tt{x}}{\tt{ }}{\tt{4}}{\tt{)}} \\ 
{\tt{(}}{\tt{y}}{\tt{ }}{\tt{5}}{\tt{)}}{\tt{)}}\-)\-)\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{mci} \\  
\=\+{\rm{mci}}\,({\it{ins\/}}, {\it{word-size\/}})\index{mci} \\ 
$=$$\;\;\;\;${\rm{pack-instruction}}\,(\=\+{\rm{extract-op}}\,({\rm{car}}\,({\it{ins\/}}))\index{extract-op}, \\ 
{\rm{extract-move-bits}}\,({\rm{car}}\,({\it{ins\/}}))\index{extract-move-bits}, \\ 
{\rm{extract-cvnz}}\,({\rm{cadr}}\,({\it{ins\/}}))\index{extract-cvnz}, \\ 
{\rm{extract-mode}}\,({\rm{caddr}}\,({\it{ins\/}}))\index{extract-mode}, \\ 
{\rm{extract-reg}}\,({\rm{caddr}}\,({\it{ins\/}}))\index{extract-reg}, \\ 
{\rm{extract-mode}}\,({\rm{cadddr}}\,({\it{ins\/}}))\index{extract-mode}, \\ 
{\rm{extract-reg}}\,({\rm{cadddr}}\,({\it{ins\/}}))\index{extract-reg}, \\ 
{\it{word-size\/}})\-\index{pack-instruction}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-instructionp}$\;\;$
{\rm{icode-instructionp}}\,({\it{ins\/}})\index{icode-instructionp} $=$ ({\rm{cdr}}\,({\it{ins\/}}) $=$ {\bf{nil}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-instr-word} \\  
\=\+{\rm{link-instr-word}}\,({\it{ins\/}}, {\it{word-size\/}})\index{link-instr-word} \\ 
$=$$\;\;\;\;${\rm{mci}}\,({\rm{cadr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{ins\/}}), {\sc{link-instruction-alist}}\index{link-instruction-alist})), {\it{word-size\/}})\index{mci}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-word} \\  
\=\+{\rm{link-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp}$\;\;${\bf then }{\rm{link-instr-word}}\,({\it{x\/}}, {\it{word-size\/}})\index{link-instr-word} \\ 
{\bf else }{\rm{link-data-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-data-word}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-area} \\  
\=\+{\rm{link-area}}\,({\it{lst\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-area} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\rm{car}}\,({\it{lst\/}}))\index{unlabel}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
{\rm{link-area}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{link-tables\/}}, {\it{word-size\/}})\index{link-area})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-segment} \\  
\=\+{\rm{link-segment}}\,({\it{segment\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-segment} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{link-area}}\,({\rm{cdar}}\,({\it{segment\/}}), {\it{link-tables\/}}, {\it{word-size\/}})\index{link-area}, \\ 
{\rm{link-segment}}\,({\rm{cdr}}\,({\it{segment\/}}), {\it{link-tables\/}}, {\it{word-size\/}})\index{link-segment})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{boot-code} \\  
\=\+{\rm{boot-code}}\,({\it{lst\/}}, {\it{n\/}}, {\it{word-size\/}})\index{boot-code} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{nat-to-v}}\,({\rm{car}}\,({\it{lst\/}}), {\it{word-size\/}})\index{nat-to-v}, \\ 
{\rm{boot-code}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{n\/}} $-\;1$, {\it{word-size\/}})\index{boot-code})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-mem} \\  
\=\+{\rm{link-mem}}\,(\=\+{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}}, \\ 
{\it{usr-data-segment\/}}, \\ 
{\it{prog-segment\/}}, \\ 
{\it{sys-data-segment\/}}, \\ 
{\it{link-tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-mem} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,({\it{usr-data-segment\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-segment}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,({\it{prog-segment\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-segment}, \\ 
{\rm{link-segment}}\,(\=\+{\it{sys-data-segment\/}}, \\ 
{\it{link-tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment})\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bool-to-logical} \\  
\=\+{\rm{bool-to-logical}}\,({\it{b\/}})\index{bool-to-logical} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{b\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\bf{f}} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-$>$m} \\  
\=\+{\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{tables\/}}{\bf $\;$ be$\;\;$}{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\it{w\/}}{\bf $\;$ be$\;\;$}{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}\- \\ 
{\bf in} \\ 
{\rm{m-state}}\,(\=\+{\rm{list}}\,(\=\+{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{tables\/}}, {\it{w\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, {\it{tables\/}}, {\it{w\/}})\index{link-word})\-, \\ 
{\rm{bool-to-logical}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-logical}, \\ 
{\rm{bool-to-logical}}\,({\rm{untag}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{untag})\index{bool-to-logical}, \\ 
{\rm{bool-to-logical}}\,({\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag})\index{bool-to-logical}, \\ 
{\rm{bool-to-logical}}\,({\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag})\index{bool-to-logical}, \\ 
{\rm{link-mem}}\,(\=\+{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\it{tables\/}}, \\ 
{\it{w\/}})\-\index{link-mem})\-\index{m-state}$\;${\bf  endlet}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  my-lessp-quotient \\ \index{my-lessp-quotient}
(({\it{size\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{size\/}} $\not=$ {\tt{0}})) $\rightarrow$ (({\it{size\/}} $\div$ {\tt{2}}) $<$ {\it{size\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{ram-tree} \\  
\=\+{\rm{ram-tree}}\,({\it{lst\/}}, {\it{size\/}})\index{ram-tree} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{size\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{stub}}\,({\rm{nat-to-v}}\,({\tt{0}}, {\tt{32}})\index{nat-to-v})\index{stub} \\ 
{\bf elseif }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{stub}}\,({\rm{nat-to-v}}\,({\tt{0}}, {\tt{32}})\index{nat-to-v})\index{stub} \\ 
{\bf elseif }{\it{size\/}} $=$ {\tt{1}}$\;\;${\bf then }{\rm{ram}}\,({\rm{car}}\,({\it{lst\/}}))\index{ram} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{ram-tree}}\,({\rm{firstn}}\,({\it{size\/}} $\div$ {\tt{2}}, {\it{lst\/}})\index{firstn}, {\it{size\/}} $\div$ {\tt{2}})\index{ram-tree}, \\ 
{\rm{ram-tree}}\,({\rm{restn}}\,({\it{size\/}} $\div$ {\tt{2}}, {\it{lst\/}})\index{restn}, {\it{size\/}} $\div$ {\tt{2}})\index{ram-tree})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fm-state} \\  
\=\+{\rm{fm-state}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}})\index{fm-state} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\rm{list}}\,({\rm{ram-tree}}\,({\it{regs\/}}, {\tt{16}})\index{ram-tree}, {\rm{list}}\,({\it{z\/}}, {\it{n\/}}, {\it{v\/}}, {\it{c\/}})), {\rm{ram-tree}}\,({\it{mem\/}}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{m-$>$fm9001} \\  
\=\+{\rm{m-$>$fm9001}}\,({\it{m\/}})\index{m-$>$fm9001} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{ram-tree}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs}, {\tt{16}})\index{ram-tree}, \\ 
{\rm{list}}\,({\rm{m-z-flg}}\,({\it{m\/}})\index{m-z-flg}, {\rm{m-n-flg}}\,({\it{m\/}})\index{m-n-flg}, {\rm{m-v-flg}}\,({\it{m\/}})\index{m-v-flg}, {\rm{m-c-flg}}\,({\it{m\/}})\index{m-c-flg}))\-, \\ 
{\rm{ram-tree}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{load} \\  
\=\+{\rm{load}}\,({\it{p\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{load} \\ 
$=$$\;\;\;\;${\rm{m-$>$fm9001}}\,({\rm{i-$>$m}}\,({\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-$>$i}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-$>$fm9001}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-tables} \\  
{\rm{link-tables}}\,({\it{p\/}}, {\it{load-addr\/}})\index{link-tables} $=$ {\rm{i-link-tables}}\,({\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-$>$i}, {\it{load-addr\/}})\index{i-link-tables}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{type-lst} \\  
\=\+{\rm{type-lst}}\,({\it{lst\/}})\index{type-lst} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{type}}\,({\rm{car}}\,({\it{lst\/}}))\index{type}, {\rm{type-lst}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{type-lst})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{area-type-specification} \\  
{\rm{area-type-specification}}\,({\it{area\/}})\index{area-type-specification} $=$ {\rm{cons}}\,({\rm{car}}\,({\it{area\/}}), {\rm{type-lst}}\,({\rm{cdr}}\,({\it{area\/}}))\index{type-lst})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{type-specification} \\  
\=\+{\rm{type-specification}}\,({\it{segment\/}})\index{type-specification} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{area-type-specification}}\,({\rm{car}}\,({\it{segment\/}}))\index{area-type-specification}, \\ 
{\rm{type-specification}}\,({\rm{cdr}}\,({\it{segment\/}}))\index{type-specification})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-fm9001-array} \\  
\=\+{\rm{display-fm9001-array}}\,({\it{type-lst\/}}, {\it{n\/}}, {\it{fm-mem\/}}, {\it{link-tables\/}})\index{display-fm9001-array} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{unlink-data-word}}\,(\=\+{\rm{car}}\,({\it{type-lst\/}}), \\ 
{\rm{read-mem}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\tt{32}})\index{nat-to-v}, {\it{fm-mem\/}})\index{read-mem}, \\ 
{\it{link-tables\/}})\-\index{unlink-data-word}, \\ 
{\rm{display-fm9001-array}}\,(\=\+{\rm{cdr}}\,({\it{type-lst\/}}), \\ 
$1\;+$ {\it{n\/}}, \\ 
{\it{fm-mem\/}}, \\ 
{\it{link-tables\/}})\-\index{display-fm9001-array})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-fm9001-data-area} \\  
\=\+{\rm{display-fm9001-data-area}}\,({\it{area-type-spec\/}}, {\it{fm-mem\/}}, {\it{link-tables\/}})\index{display-fm9001-data-area} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{car}}\,({\it{area-type-spec\/}}), \\ 
{\rm{display-fm9001-array}}\,(\=\+{\rm{cdr}}\,({\it{area-type-spec\/}}), \\ 
{\rm{base-address}}\,(\=\+{\rm{car}}\,({\it{area-type-spec\/}}), \\ 
{\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links})\-\index{base-address}, \\ 
{\it{fm-mem\/}}, \\ 
{\it{link-tables\/}})\-\index{display-fm9001-array})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-fm9001-data-segment1} \\  
\=\+{\rm{display-fm9001-data-segment1}}\,({\it{type-spec\/}}, {\it{fm-mem\/}}, {\it{link-tables\/}})\index{display-fm9001-data-segment1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-spec\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{display-fm9001-data-area}}\,(\=\+{\rm{car}}\,({\it{type-spec\/}}), \\ 
{\it{fm-mem\/}}, \\ 
{\it{link-tables\/}})\-\index{display-fm9001-data-area}, \\ 
{\rm{display-fm9001-data-segment1}}\,(\=\+{\rm{cdr}}\,({\it{type-spec\/}}), \\ 
{\it{fm-mem\/}}, \\ 
{\it{link-tables\/}})\-\index{display-fm9001-data-segment1})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-fm9001-data-segment} \\  
\=\+{\rm{display-fm9001-data-segment}}\,({\it{fm-state\/}}, {\it{type-spec\/}}, {\it{link-tables\/}})\index{display-fm9001-data-segment} \\ 
$=$$\;\;\;\;${\rm{display-fm9001-data-segment1}}\,({\it{type-spec\/}}, {\rm{cadr}}\,({\it{fm-state\/}}), {\it{link-tables\/}})\index{display-fm9001-data-segment1}\-
\end{tabbing}

\begin{verbatim}; Book:  m.events.  Now we define the m machine.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{v-nth1} \\  
\=\+{\rm{v-nth1}}\,({\it{v-n\/}}, {\it{lst\/}})\index{v-nth1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{v-to-nat}}\,({\it{v-n\/}})\index{v-to-nat} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}$\;\;${\bf then }{\rm{nth}}\,({\rm{v-to-nat}}\,({\it{v-n\/}})\index{v-to-nat}, {\it{lst\/}})\index{nth} \\ 
{\bf else }{\rm{nat-to-v}}\,({\tt{0}}, {\tt{32}})\index{nat-to-v}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{current-instruction} \\  
{\rm{current-instruction}}\,({\it{regs\/}}, {\it{mem\/}})\index{current-instruction} $=$ {\rm{v-nth1}}\,({\rm{v-nth1}}\,({\rm{nat-to-v}}\,({\tt{15}}, {\tt{4}})\index{nat-to-v}, {\it{regs\/}})\index{v-nth1}, {\it{mem\/}})\index{v-nth1}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{m-store-resultp} \\  
\=\+{\rm{m-store-resultp}}\,({\it{store-cc\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}})\index{m-store-resultp} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\it{store-cc\/}}: \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*false\/}}, {\it{*1*false\/}}, {\it{*1*false\/}}) \\ 
{\bf then }$\neg$ {\it{c\/}} \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*false\/}}, {\it{*1*false\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }{\it{c\/}} \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*true\/}}, {\it{*1*false\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }$\neg$ {\it{v\/}} \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*true\/}}, {\it{*1*false\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }{\it{v\/}} \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*false\/}}, {\it{*1*true\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }$\neg$ {\it{n\/}} \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*false\/}}, {\it{*1*true\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }{\it{n\/}} \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*true\/}}, {\it{*1*true\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }$\neg$ {\it{z\/}} \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*true\/}}, {\it{*1*true\/}}, {\it{*1*false\/}}) \\ 
{\bf $\;\;$then }{\it{z\/}} \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*false\/}}, {\it{*1*false\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }($\neg$ {\it{c\/}}) $\wedge$ ($\neg$ {\it{z\/}}) \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*false\/}}, {\it{*1*false\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }{\it{c\/}} $\vee$ {\it{z\/}} \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*true\/}}, {\it{*1*false\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }({\it{n\/}} $\wedge$ {\it{v\/}}) $\vee$ (($\neg$ {\it{n\/}}) $\wedge$ ($\neg$ {\it{v\/}})) \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*true\/}}, {\it{*1*false\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }({\it{n\/}} $\wedge$ ($\neg$ {\it{v\/}})) $\vee$ (($\neg$ {\it{n\/}}) $\wedge$ {\it{v\/}}) \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*false\/}}, {\it{*1*true\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }({\it{n\/}} $\wedge$ {\it{v\/}} $\wedge$ ($\neg$ {\it{z\/}})) $\vee$ (($\neg$ {\it{n\/}}) $\wedge$ ($\neg$ {\it{v\/}}) $\wedge$ ($\neg$ {\it{z\/}})) \\ 
{\bf case = }{\rm{*1*true}}\,({\it{*1*false\/}}, {\it{*1*true\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }{\it{z\/}} $\vee$ ({\it{n\/}} $\wedge$ ($\neg$ {\it{v\/}})) $\vee$ (($\neg$ {\it{n\/}}) $\wedge$ {\it{v\/}}) \\ 
{\bf case = }{\rm{*1*false}}\,({\it{*1*true\/}}, {\it{*1*true\/}}, {\it{*1*true\/}}) \\ 
{\bf $\;\;$then }{\bf{t}} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-store-resultp-is-store-resultp \\ \index{m-store-resultp-is-store-resultp}
{\rm{m-store-resultp}}\,({\it{store-cc\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}})\index{m-store-resultp} $=$ {\rm{store-resultp}}\,({\it{store-cc\/}}, {\rm{list}}\,({\it{z\/}}, {\it{n\/}}, {\it{v\/}}, {\it{c\/}}))\index{store-resultp}
\end{tabbing}


\noindent{\sc Event}:   Disable m-store-resultp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable store-resultp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{m-alu-operation} \\  
\=\+{\rm{m-alu-operation}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\it{b-address\/}})\index{m-alu-operation} \\ 
$=$$\;\;\;\;${\rm{m-state}}\,(\=\+\=\+{\bf if }\=\+{\rm{m-store-resultp}}\,({\rm{store-cc}}\,({\it{ins\/}})\index{store-cc}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}})\index{m-store-resultp} \\ 
$\wedge$$\;\;\;\;${\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p}\- \\ 
{\bf then }{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\rm{op-code}}\,({\it{ins\/}})\index{op-code})\index{v-alu})\index{bv})\-\index{update-v-nth} \\ 
{\bf else }{\it{regs\/}}$\;${\bf  endif}\-, \\ 
{\rm{b-if}}\,(\=\+{\rm{c-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{c-set}, \\ 
{\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\rm{op-code}}\,({\it{ins\/}})\index{op-code})\index{v-alu})\index{c}, \\ 
{\it{c\/}})\-\index{b-if}, \\ 
{\rm{b-if}}\,(\=\+{\rm{v-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{v-set}, \\ 
{\rm{v}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\rm{op-code}}\,({\it{ins\/}})\index{op-code})\index{v-alu})\index{v}, \\ 
{\it{v\/}})\-\index{b-if}, \\ 
{\rm{b-if}}\,(\=\+{\rm{n-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{n-set}, \\ 
{\rm{n}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\rm{op-code}}\,({\it{ins\/}})\index{op-code})\index{v-alu})\index{n}, \\ 
{\it{n\/}})\-\index{b-if}, \\ 
{\rm{b-if}}\,(\=\+{\rm{z-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{z-set}, \\ 
{\rm{zb}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\rm{op-code}}\,({\it{ins\/}})\index{op-code})\index{v-alu})\index{zb}, \\ 
{\it{z\/}})\-\index{b-if}, \\ 
\=\+{\bf if }\=\+{\rm{m-store-resultp}}\,({\rm{store-cc}}\,({\it{ins\/}})\index{store-cc}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}})\index{m-store-resultp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p})\- \\ 
{\bf then }{\rm{update-v-nth}}\,(\=\+{\it{b-address\/}}, \\ 
{\it{mem\/}}, \\ 
{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{operand-a\/}}, {\it{operand-b\/}}, {\rm{op-code}}\,({\it{ins\/}})\index{op-code})\index{v-alu})\index{bv})\-\index{update-v-nth} \\ 
{\bf else }{\it{mem\/}}$\;${\bf  endif}\-)\-\index{m-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{read-mem1-ram-tree-hint} \\  
\=\+{\rm{read-mem1-ram-tree-hint}}\,({\it{raddr\/}}, {\it{lst\/}})\index{read-mem1-ram-tree-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{raddr\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{car}}\,({\it{raddr\/}}) \\ 
{\bf then }{\rm{read-mem1-ram-tree-hint}}\,(\=\+{\rm{cdr}}\,({\it{raddr\/}}), \\ 
{\rm{restn}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\rm{cdr}}\,({\it{raddr\/}}))\index{length})\index{exp}, {\it{lst\/}})\index{restn})\-\index{read-mem1-ram-tree-hint} \\ 
{\bf else }{\rm{read-mem1-ram-tree-hint}}\,(\=\+{\rm{cdr}}\,({\it{raddr\/}}), \\ 
{\rm{firstn}}\,(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\rm{cdr}}\,({\it{raddr\/}}))\index{length})\index{exp}, \\ 
{\it{lst\/}})\-\index{firstn})\-\index{read-mem1-ram-tree-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{rev} \\  
\=\+{\rm{rev}}\,({\it{x\/}})\index{rev} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,({\rm{rev}}\,({\rm{cdr}}\,({\it{x\/}}))\index{rev}, {\rm{list}}\,({\rm{car}}\,({\it{x\/}})))$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  rev1-is-rev \\ \index{rev1-is-rev}
{\rm{rev1}}\,({\it{x\/}}, {\it{a\/}})\index{rev1} $=$ {\rm{append}}\,({\rm{rev}}\,({\it{x\/}})\index{rev}, {\it{a\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  append-nil \\ \index{append-nil}
{\rm{properp}}\,({\it{x\/}})\index{properp} $\rightarrow$ ({\rm{append}}\,({\it{x\/}}, {\bf{nil}}) $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-rev \\ \index{properp-rev}
{\rm{properp}}\,({\rm{rev}}\,({\it{x\/}})\index{rev})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  read-mem1-rev-ram-tree-lemma1 \\ \index{read-mem1-rev-ram-tree-lemma1}
{\rm{stubp}}\,({\rm{ram-tree}}\,({\it{lst\/}}, {\it{n\/}})\index{ram-tree})\index{stubp} $\rightarrow$ ({\rm{stub-guts}}\,({\rm{ram-tree}}\,({\it{lst\/}}, {\it{n\/}})\index{ram-tree})\index{stub-guts} $=$ {\rm{nat-to-v}}\,({\tt{0}}, {\tt{32}})\index{nat-to-v})
\end{tabbing}


\noindent{\sc Event}:   Enable plus-0.

\addvspace{18pt}

\noindent{\sc Event}:   Enable plus-add1-sub1.

\addvspace{18pt}

\noindent{\sc Event}:   Enable plus-add1.

\addvspace{18pt}

\noindent{\sc Event}:   Enable associativity-of-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable commutativity-of-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-commutes.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-add1-again.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-1.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-distributes-over-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable associativity-of-times.

\addvspace{18pt}


\begin{tabbing}{\sc Theorem}:  my-v-to-nat-append \\ \index{my-v-to-nat-append}
\=\+{\rm{v-to-nat}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{v-to-nat} \\ 
$=$$\;\;\;\;$({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ ({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp} $*$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}))\-
\end{tabbing}


\noindent{\sc Event}:   Enable plus.

\addvspace{18pt}


\noindent{\sc Event}:   Enable difference.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  difference-add1-add1-x-2 \\ \index{difference-add1-add1-x-2}
(($1\;+$ ($1\;+$ {\it{x\/}})) $-$ {\tt{2}}) $=$ {\rm{fix}}\,({\it{x\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable quotient-plus-x-x-2.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-firstn.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-restn.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  my-lessp-v-to-nat-exp \\ \index{my-lessp-v-to-nat-exp}
({\it{n\/}} $=$ {\rm{length}}\,({\it{v\/}})\index{length}) $\rightarrow$ ({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat} $<$ {\rm{exp}}\,({\tt{2}}, {\it{n\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-rev \\ \index{length-rev}
{\rm{length}}\,({\rm{rev}}\,({\it{x\/}})\index{rev})\index{length} $=$ {\rm{length}}\,({\it{x\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  nth-firstn \\ \index{nth-firstn}
({\it{i\/}} $<$ {\it{n\/}}) $\rightarrow$ ({\rm{nth}}\,({\it{i\/}}, {\rm{firstn}}\,({\it{n\/}}, {\it{lst\/}})\index{firstn})\index{nth} $=$ {\rm{nth}}\,({\it{i\/}}, {\it{lst\/}})\index{nth})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-difference \\ \index{lessp-difference}
\=\+({\it{v\/}} $<$ ({\it{l\/}} $-$ {\it{e\/}})) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{e\/}} $<$ {\it{l\/}}$\;\;${\bf then }({\it{e\/}} $+$ {\it{v\/}}) $<$ {\it{l\/}} \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  nth-restn-plus \\ \index{nth-restn-plus}
({\it{i\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\rightarrow$ ({\rm{nth}}\,({\it{n\/}}, {\rm{restn}}\,({\it{i\/}}, {\it{lst\/}})\index{restn})\index{nth} $=$ {\rm{nth}}\,({\it{i\/}} $+$ {\it{n\/}}, {\it{lst\/}})\index{nth})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  read-mem1-rev-ram-tree \\ \index{read-mem1-rev-ram-tree}
\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{raddr\/}})\index{length})\index{exp} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-nth1}}\,({\rm{rev}}\,({\it{raddr\/}})\index{rev}, {\it{lst\/}})\index{v-nth1} \\ 
$=$$\;\;\;\;${\rm{read-mem1}}\,({\it{raddr\/}}, {\rm{ram-tree}}\,({\it{lst\/}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{raddr\/}})\index{length})\index{exp})\index{ram-tree})\index{read-mem1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rev-append \\ \index{rev-append}
{\rm{rev}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{rev} $=$ {\rm{append}}\,({\rm{rev}}\,({\it{b\/}})\index{rev}, {\rm{rev}}\,({\it{a\/}})\index{rev})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-nat-rev-rev \\ \index{v-to-nat-rev-rev}
{\rm{v-to-nat}}\,({\rm{rev}}\,({\rm{rev}}\,({\it{addr\/}})\index{rev})\index{rev})\index{v-to-nat} $=$ {\rm{v-to-nat}}\,({\it{addr\/}})\index{v-to-nat}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  read-mem-ram-tree \\ \index{read-mem-ram-tree}
\=\+(({\it{e\/}} $=$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{addr\/}})\index{length})\index{exp}) $\wedge$ ({\it{e\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-nth1}}\,({\it{addr\/}}, {\it{lst\/}})\index{v-nth1} $=$ {\rm{read-mem}}\,({\it{addr\/}}, {\rm{ram-tree}}\,({\it{lst\/}}, {\it{e\/}})\index{ram-tree})\index{read-mem})\-
\end{tabbing}


\noindent{\sc Event}:   Disable v-nth1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable read-mem.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  restn-update-nth-plus \\ \index{restn-update-nth-plus}
{\rm{restn}}\,({\it{e\/}}, {\rm{update-nth}}\,({\it{v\/}} $+$ {\it{e\/}}, {\it{l\/}}, {\it{val\/}})\index{update-nth})\index{restn} $=$ {\rm{update-nth}}\,({\it{v\/}}, {\rm{restn}}\,({\it{e\/}}, {\it{l\/}})\index{restn}, {\it{val\/}})\index{update-nth}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-update-nth-plus \\ \index{firstn-update-nth-plus}
{\rm{firstn}}\,({\it{e\/}}, {\rm{update-nth}}\,({\it{v\/}} $+$ {\it{e\/}}, {\it{l\/}}, {\it{val\/}})\index{update-nth})\index{firstn} $=$ {\rm{firstn}}\,({\it{e\/}}, {\it{l\/}})\index{firstn}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  restn-update-nth \\ \index{restn-update-nth}
({\it{v\/}} $<$ {\it{e\/}}) $\rightarrow$ ({\rm{restn}}\,({\it{e\/}}, {\rm{update-nth}}\,({\it{v\/}}, {\it{l\/}}, {\it{val\/}})\index{update-nth})\index{restn} $=$ {\rm{restn}}\,({\it{e\/}}, {\it{l\/}})\index{restn})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-update-nth \\ \index{firstn-update-nth}
\=\+({\it{v\/}} $<$ {\it{e\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{firstn}}\,({\it{e\/}}, {\rm{update-nth}}\,({\it{v\/}}, {\it{l\/}}, {\it{val\/}})\index{update-nth})\index{firstn} $=$ {\rm{update-nth}}\,({\it{v\/}}, {\rm{firstn}}\,({\it{e\/}}, {\it{l\/}})\index{firstn}, {\it{val\/}})\index{update-nth})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  write-mem1-rev-ram-tree \\ \index{write-mem1-rev-ram-tree}
\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{raddr\/}})\index{length})\index{exp} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{ram-tree}}\,({\rm{update-v-nth}}\,({\rm{rev}}\,({\it{raddr\/}})\index{rev}, {\it{lst\/}}, {\it{val\/}})\index{update-v-nth}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{raddr\/}})\index{length})\index{exp})\index{ram-tree} \\ 
$=$$\;\;\;\;${\rm{write-mem1}}\,({\it{raddr\/}}, {\rm{ram-tree}}\,({\it{lst\/}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{raddr\/}})\index{length})\index{exp})\index{ram-tree}, {\it{val\/}})\index{write-mem1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  write-mem-ram-tree \\ \index{write-mem-ram-tree}
\=\+(({\it{e\/}} $=$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{addr\/}})\index{length})\index{exp}) $\wedge$ ({\it{e\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{ram-tree}}\,({\rm{update-v-nth}}\,({\it{addr\/}}, {\it{lst\/}}, {\it{val\/}})\index{update-v-nth}, {\it{e\/}})\index{ram-tree} \\ 
$=$$\;\;\;\;${\rm{write-mem}}\,({\it{addr\/}}, {\rm{ram-tree}}\,({\it{lst\/}}, {\it{e\/}})\index{ram-tree}, {\it{val\/}})\index{write-mem})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable update-v-nth.

\addvspace{18pt}

\noindent{\sc Event}:   Disable write-mem.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-rn-b \\ \index{length-rn-b}
{\rm{length}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b})\index{length} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-alu-operation-is-fm9001-alu-operation \\ \index{m-alu-operation-is-fm9001-alu-ope!ration}
\=\+(\=\+({\rm{length}}\,({\it{b-address\/}})\index{length} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{regs\/}})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-$>$fm9001}}\,({\rm{m-alu-operation}}\,(\=\+{\it{regs\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\it{b-address\/}})\-\index{m-alu-operation})\index{m-$>$fm9001} \\ 
$=$$\;\;\;\;${\rm{fm9001-alu-operation}}\,(\=\+{\rm{ram-tree}}\,({\it{regs\/}}, {\tt{16}})\index{ram-tree}, \\ 
{\rm{list}}\,({\it{z\/}}, {\it{n\/}}, {\it{v\/}}, {\it{c\/}}), \\ 
{\rm{ram-tree}}\,({\it{mem\/}}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\it{b-address\/}})\-\index{fm9001-alu-operation})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bvp-listp} \\  
\=\+{\rm{bvp-listp}}\,({\it{lst\/}})\index{bvp-listp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{bvp}}\,({\rm{car}}\,({\it{lst\/}}))\index{bvp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{car}}\,({\it{lst\/}}))\index{length} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{bvp-listp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-m-statep} \\  
\=\+{\rm{proper-m-statep}}\,({\it{m\/}})\index{proper-m-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{m-statep}}\,({\it{m\/}})\index{m-statep} \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-nth \\ \index{length-nth}
\=\+({\rm{bvp-listp}}\,({\it{lst\/}})\index{bvp-listp} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bvp}}\,({\rm{nth}}\,({\it{n\/}}, {\it{lst\/}})\index{nth})\index{bvp} $\wedge$ ({\rm{length}}\,({\rm{nth}}\,({\it{n\/}}, {\it{lst\/}})\index{nth})\index{length} $=$ {\tt{32}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-v-nth1 \\ \index{length-v-nth1}
\=\+{\rm{bvp-listp}}\,({\it{lst\/}})\index{bvp-listp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{bvp}}\,({\rm{v-nth1}}\,({\it{addr\/}}, {\it{lst\/}})\index{v-nth1})\index{bvp} $\wedge$ ({\rm{length}}\,({\rm{v-nth1}}\,({\it{addr\/}}, {\it{lst\/}})\index{v-nth1})\index{length} $=$ {\tt{32}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-read-mem \\ \index{length-read-mem}
\=\+({\rm{bvp-listp}}\,({\it{lst\/}})\index{bvp-listp} $\wedge$ ({\it{k\/}} $=$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{addr\/}})\index{length})\index{exp}) $\wedge$ ({\it{k\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bvp}}\,({\rm{read-mem}}\,({\it{addr\/}}, {\rm{ram-tree}}\,({\it{lst\/}}, {\it{k\/}})\index{ram-tree})\index{read-mem})\index{bvp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{read-mem}}\,({\it{addr\/}}, {\rm{ram-tree}}\,({\it{lst\/}}, {\it{k\/}})\index{ram-tree})\index{read-mem})\index{length} $=$ {\tt{32}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-listp-update-nth \\ \index{bvp-listp-update-nth}
\=\+({\rm{bvp}}\,({\it{val\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\tt{32}}) $\wedge$ {\rm{bvp-listp}}\,({\it{lst\/}})\index{bvp-listp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{bvp-listp}}\,({\rm{update-nth}}\,({\it{n\/}}, {\it{lst\/}}, {\it{val\/}})\index{update-nth})\index{bvp-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-listp-update-v-nth \\ \index{bvp-listp-update-v-nth}
\=\+({\rm{bvp}}\,({\it{val\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\tt{32}}) $\wedge$ {\rm{bvp-listp}}\,({\it{lst\/}})\index{bvp-listp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{bvp-listp}}\,({\rm{update-v-nth}}\,({\it{addr\/}}, {\it{lst\/}}, {\it{val\/}})\index{update-v-nth})\index{bvp-listp}\-
\end{tabbing}


\noindent{\sc Event}:   Enable bvp-bv-v-alu.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-bv-v-alu \\ \index{length-bv-v-alu}
\=\+(({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{listp}}\,({\it{a\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\it{op\/}})\index{v-alu})\index{bv})\index{length} $=$ {\rm{length}}\,({\it{a\/}})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-update-nth \\ \index{length-update-nth}
{\rm{length}}\,({\rm{update-nth}}\,({\it{i\/}}, {\it{lst\/}}, {\it{val\/}})\index{update-nth})\index{length} $=$ {\rm{length}}\,({\it{lst\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-update-v-nth \\ \index{length-update-v-nth}
{\rm{length}}\,({\rm{update-v-nth}}\,({\it{v\/}}, {\it{lst\/}}, {\it{val\/}})\index{update-v-nth})\index{length} $=$ {\rm{length}}\,({\it{lst\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-alu-operation-preserves-hyps \\ \index{m-alu-operation-preserves-hyps}
\=\+(\=\+{\rm{bvp-listp}}\,({\it{mem\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\it{regs\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{operand-a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{operand-a\/}})\index{length} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{operand-b\/}})\index{length} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{operand-a\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{b-address\/}})\index{length} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{regs\/}})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-m-statep}}\,({\rm{m-alu-operation}}\,(\=\+{\it{regs\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\it{b-address\/}})\-\index{m-alu-operation})\index{proper-m-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-alu-operation.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fm9001-alu-operation.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{m-operand-b} \\  
\=\+{\rm{m-operand-b}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}}, {\it{operand-a\/}})\index{m-operand-b} \\ 
$=$$\;\;\;\;${\rm{m-alu-operation}}\,(\=\+\=\+{\bf if }{\rm{pre-dec-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{pre-dec-p} \\ 
{\bf then }{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\index{v-dec})\-\index{update-v-nth} \\ 
{\bf elseif }{\rm{post-inc-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{post-inc-p} \\ 
{\bf then }{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\index{v-inc})\-\index{update-v-nth} \\ 
{\bf else }{\it{regs\/}}$\;${\bf  endif}\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
\=\+{\bf if }{\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p} \\ 
{\bf then }{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1} \\ 
{\bf else }{\rm{v-nth1}}\,(\=\+\=\+{\bf if }{\rm{pre-dec-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{pre-dec-p} \\ 
{\bf then }{\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\index{v-dec} \\ 
{\bf else }{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}$\;${\bf  endif}\-, \\ 
{\it{mem\/}})\-\index{v-nth1}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{pre-dec-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{pre-dec-p} \\ 
{\bf then }{\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\index{v-dec} \\ 
{\bf else }{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}$\;${\bf  endif}\-)\-\index{m-alu-operation}\-
\end{tabbing}


\noindent{\sc Event}:   Enable length-v-not.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-v-adder \\ \index{length-v-adder}
{\rm{length}}\,({\rm{v-adder}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}})\index{v-adder})\index{length} $=$ ($1\;+$ {\rm{length}}\,({\it{a\/}})\index{length})
\end{tabbing}


\noindent{\sc Event}:   Enable length-nat-to-v.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-v-dec \\ \index{length-v-dec}
{\rm{length}}\,({\rm{v-dec}}\,({\it{v\/}})\index{v-dec})\index{length} $=$ {\rm{length}}\,({\it{v\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-operand-b-is-fm9001-operand-b \\ \index{m-operand-b-is-fm9001-operand-b}
\=\+({\rm{bvp-listp}}\,({\it{regs\/}})\index{bvp-listp} $\wedge$ ({\rm{length}}\,({\it{regs\/}})\index{length} $=$ {\tt{16}}) $\wedge$ ({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-$>$fm9001}}\,({\rm{m-operand-b}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}}, {\it{operand-a\/}})\index{m-operand-b})\index{m-$>$fm9001} \\ 
$=$$\;\;\;\;${\rm{fm9001-operand-b}}\,(\=\+{\rm{ram-tree}}\,({\it{regs\/}}, {\tt{16}})\index{ram-tree}, \\ 
{\rm{list}}\,({\it{z\/}}, {\it{n\/}}, {\it{v\/}}, {\it{c\/}}), \\ 
{\rm{ram-tree}}\,({\it{mem\/}}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}})\-\index{fm9001-operand-b})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-v-inc \\ \index{length-v-inc}
{\rm{length}}\,({\rm{v-inc}}\,({\it{v\/}})\index{v-inc})\index{length} $=$ {\rm{length}}\,({\it{v\/}})\index{length}
\end{tabbing}
  
\begin{tabbing}{\sc Theorem}:  bvp-firstn-v-adder \\ \index{bvp-firstn-v-adder}
({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ {\rm{bvp}}\,({\rm{firstn}}\,({\it{n\/}}, {\rm{v-adder}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}})\index{v-adder})\index{firstn})\index{bvp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-v-dec \\ \index{bvp-v-dec}
{\rm{bvp}}\,({\rm{v-dec}}\,({\it{v\/}})\index{v-dec})\index{bvp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-v-inc \\ \index{bvp-v-inc}
{\rm{bvp}}\,({\rm{v-inc}}\,({\it{v\/}})\index{v-inc})\index{bvp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-listp-if \\ \index{bvp-listp-if}
\=\+({\rm{bvp-listp}}\,({\it{b\/}})\index{bvp-listp} $\wedge$ {\rm{bvp-listp}}\,({\it{c\/}})\index{bvp-listp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{bvp-listp}}\,(\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-)\index{bvp-listp}\-
\end{tabbing}


\noindent{\sc Event}:   Enable length-if.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  listp-operand-a \\ \index{listp-operand-a}
({\rm{length}}\,({\it{operand-a\/}})\index{length} $=$ {\tt{32}}) $\rightarrow$ {\rm{listp}}\,({\it{operand-a\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-operand-b-preserves-hyps \\ \index{m-operand-b-preserves-hyps}
\=\+(\=\+{\rm{bvp-listp}}\,({\it{regs\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\it{mem\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{operand-a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{operand-a\/}})\index{length} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{regs\/}})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-m-statep}}\,({\rm{m-operand-b}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}}, {\it{operand-a\/}})\index{m-operand-b})\index{proper-m-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-operand-b.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fm9001-operand-b.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{m-operand-a} \\  
\=\+{\rm{m-operand-a}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}})\index{m-operand-a} \\ 
$=$$\;\;\;\;${\rm{m-operand-b}}\,(\=\+\=\+{\bf if }{\rm{a-immediate-p}}\,({\it{ins\/}})\index{a-immediate-p}$\;\;${\bf then }{\it{regs\/}} \\ 
{\bf elseif }{\rm{pre-dec-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{pre-dec-p} \\ 
{\bf then }{\rm{update-v-nth}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1})\index{v-dec})\-\index{update-v-nth} \\ 
{\bf elseif }{\rm{post-inc-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{post-inc-p} \\ 
{\bf then }{\rm{update-v-nth}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1})\index{v-inc})\-\index{update-v-nth} \\ 
{\bf else }{\it{regs\/}}$\;${\bf  endif}\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
\=\+{\bf if }{\rm{a-immediate-p}}\,({\it{ins\/}})\index{a-immediate-p} \\ 
{\bf then }{\rm{sign-extend}}\,({\rm{a-immediate}}\,({\it{ins\/}})\index{a-immediate}, {\tt{32}})\index{sign-extend} \\ 
{\bf elseif }{\rm{reg-direct-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{reg-direct-p} \\ 
{\bf then }{\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1} \\ 
{\bf elseif }{\rm{pre-dec-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{pre-dec-p} \\ 
{\bf then }{\rm{v-nth1}}\,({\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1})\index{v-dec}, {\it{mem\/}})\index{v-nth1} \\ 
{\bf else }{\rm{v-nth1}}\,({\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1}, {\it{mem\/}})\index{v-nth1}$\;${\bf  endif}\-)\-\index{m-operand-b}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-rn-a \\ \index{length-rn-a}
{\rm{length}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a})\index{length} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-operand-a-is-fm9001-operand-a \\ \index{m-operand-a-is-fm9001-operand-a}
\=\+({\rm{bvp-listp}}\,({\it{regs\/}})\index{bvp-listp} $\wedge$ ({\rm{length}}\,({\it{regs\/}})\index{length} $=$ {\tt{16}}) $\wedge$ ({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-$>$fm9001}}\,({\rm{m-operand-a}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}})\index{m-operand-a})\index{m-$>$fm9001} \\ 
$=$$\;\;\;\;${\rm{fm9001-operand-a}}\,(\=\+{\rm{ram-tree}}\,({\it{regs\/}}, {\tt{16}})\index{ram-tree}, \\ 
{\rm{list}}\,({\it{z\/}}, {\it{n\/}}, {\it{v\/}}, {\it{c\/}}), \\ 
{\rm{ram-tree}}\,({\it{mem\/}}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree}, \\ 
{\it{ins\/}})\-\index{fm9001-operand-a})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-operand-a-preserves-hyps \\ \index{m-operand-a-preserves-hyps}
\=\+(\=\+{\rm{bvp-listp}}\,({\it{regs\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\it{mem\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{regs\/}})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-m-statep}}\,({\rm{m-operand-a}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}})\index{m-operand-a})\index{proper-m-statep}\-
\end{tabbing}



\noindent{\sc Event}:   Disable m-operand-a.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fm9001-operand-a.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{m-step1} \\  
\=\+{\rm{m-step1}}\,({\it{current-instruction\/}}, {\it{m\/}})\index{m-step1} \\ 
$=$$\;\;\;\;${\rm{m-operand-a}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{nat-to-v}}\,({\tt{15}}, {\tt{4}})\index{nat-to-v}, \\ 
{\rm{m-regs}}\,({\it{m\/}})\index{m-regs}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,({\rm{nat-to-v}}\,({\tt{15}}, {\tt{4}})\index{nat-to-v}, {\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{v-nth1})\index{v-inc})\-\index{update-v-nth}, \\ 
{\rm{m-c-flg}}\,({\it{m\/}})\index{m-c-flg}, \\ 
{\rm{m-v-flg}}\,({\it{m\/}})\index{m-v-flg}, \\ 
{\rm{m-n-flg}}\,({\it{m\/}})\index{m-n-flg}, \\ 
{\rm{m-z-flg}}\,({\it{m\/}})\index{m-z-flg}, \\ 
{\rm{m-mem}}\,({\it{m\/}})\index{m-mem}, \\ 
{\it{current-instruction\/}})\-\index{m-operand-a}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{m-step} \\  
{\rm{m-step}}\,({\it{m\/}})\index{m-step} $=$ {\rm{m-step1}}\,({\rm{current-instruction}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs}, {\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{current-instruction}, {\it{m\/}})\index{m-step1}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-step-is-fm9001-step \\ \index{m-step-is-fm9001-step}
\=\+(\=\+{\rm{bvp-listp}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{m-$>$fm9001}}\,({\rm{m-step}}\,({\it{m\/}})\index{m-step})\index{m-$>$fm9001} $=$ {\rm{fm9001-step}}\,({\rm{m-$>$fm9001}}\,({\it{m\/}})\index{m-$>$fm9001}, {\rm{nat-to-v}}\,({\tt{15}}, {\tt{4}})\index{nat-to-v})\index{fm9001-step})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  m-step-preserves-hyps \\ \index{m-step-preserves-hyps}
\=\+(\=\+{\rm{bvp-listp}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp-listp}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{length} $=$ {\tt{16}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-m-statep}}\,({\rm{m-step}}\,({\it{m\/}})\index{m-step})\index{proper-m-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable m-$>$fm9001.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fm9001-step.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{m} \\  
\=\+{\rm{m}}\,({\it{m\/}}, {\it{n\/}})\index{m} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{m\/}} \\ 
{\bf else }{\rm{m}}\,({\rm{m-step}}\,({\it{m\/}})\index{m-step}, {\it{n\/}} $-\;1$)\index{m}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  one-way-correspondence-m-fm9001 \\ \index{one-way-correspondence-m-fm9001}
{\rm{proper-m-statep}}\,({\it{m\/}})\index{proper-m-statep} $\rightarrow$ ({\rm{m-$>$fm9001}}\,({\rm{m}}\,({\it{m\/}}, {\it{n\/}})\index{m})\index{m-$>$fm9001} $=$ {\rm{fm9001}}\,({\rm{m-$>$fm9001}}\,({\it{m\/}})\index{m-$>$fm9001}, {\it{n\/}})\index{fm9001})
\end{tabbing}

\begin{verbatim}; Book:  i.events.  Now we move up to the i machine.

\end{verbatim}
\noindent{\sc Event}:   Set the status of all events.  The status of each event is to be set as follows.  Each `boot-strap' satellite is to be returned to the initial condition.  Each `add-shell' satellite is to be enabled.  enabled.  Anything not otherwise mentioned is to be disabled.   Name this event `close-data-base-2'.\index{close-data-base-2}

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{put-assoc} \\  
\=\+{\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{alist\/}} \\ 
{\bf elseif }{\it{name\/}} $=$ {\rm{caar}}\,({\it{alist\/}})$\;\;${\bf then }{\rm{cons}}\,({\rm{cons}}\,({\it{name\/}}, {\it{val\/}}), {\rm{cdr}}\,({\it{alist\/}})) \\ 
{\bf else }{\rm{cons}}\,({\rm{car}}\,({\it{alist\/}}), {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\rm{cdr}}\,({\it{alist\/}}))\index{put-assoc})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{definedp} \\  
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{alist\/}})\index{definedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\it{name\/}} $=$ {\rm{caar}}\,({\it{alist\/}})$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{definedp}}\,({\it{name\/}}, {\rm{cdr}}\,({\it{alist\/}}))\index{definedp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; DEFINIENS, below, used to be named VALUE but that name is now used
; in FM9001.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{definiens}$\;\;$
{\rm{definiens}}\,({\it{name\/}}, {\it{alist\/}})\index{definiens} $=$ {\rm{cdr}}\,({\rm{definition}}\,({\it{name\/}}, {\it{alist\/}})\index{definition})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{put-value} \\  
{\rm{put-value}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-value} $=$ {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{adpp} \\  
\=\+{\rm{adpp}}\,({\it{x\/}}, {\it{segment\/}})\index{adpp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{definiens}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{segment\/}})\index{definiens})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add-adp} \\  
{\rm{add-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{add-adp} $=$ {\rm{cons}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $+$ {\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-adp}$\;\;$
{\rm{add1-adp}}\,({\it{adp\/}})\index{add1-adp} $=$ {\rm{add-adp}}\,({\it{adp\/}}, {\tt{1}})\index{add-adp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{sub1-adp}$\;\;$
{\rm{sub1-adp}}\,({\it{adp\/}})\index{sub1-adp} $=$ {\rm{sub-adp}}\,({\it{adp\/}}, {\tt{1}})\index{sub-adp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{put} \\  
\=\+{\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$ \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{lst\/}})$\;\;${\bf then }{\rm{cons}}\,({\it{val\/}}, {\rm{cdr}}\,({\it{lst\/}})) \\ 
{\bf else }{\rm{list}}\,({\it{val\/}})$\;${\bf  endif}\- \\ 
{\bf else }{\rm{cons}}\,({\rm{car}}\,({\it{lst\/}}), {\rm{put}}\,({\it{val\/}}, {\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{lst\/}}))\index{put})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fetch-adp} \\  
\=\+{\rm{fetch-adp}}\,({\it{adp\/}}, {\it{segment\/}})\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, {\rm{definiens}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definiens})\index{get}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{deposit-adp} \\  
\=\+{\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp} \\ 
$=$$\;\;\;\;${\rm{put-value}}\,(\=\+{\rm{put}}\,({\it{val\/}}, {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, {\rm{definiens}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definiens})\index{put}, \\ 
{\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-\index{put-value}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{addressp}$\;\;$
{\rm{addressp}}\,({\it{x\/}}, {\it{segment\/}})\index{addressp} $=$ {\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{segment\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{offset}$\;\;$
{\rm{offset}}\,({\it{x\/}})\index{offset} $=$ {\rm{adp-offset}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{adp-offset}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add-addr} \\  
{\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr} $=$ {\rm{tag}}\,({\rm{type}}\,({\it{addr\/}})\index{type}, {\rm{add-adp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{n\/}})\index{add-adp})\index{tag}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-addr}$\;\;$
{\rm{add1-addr}}\,({\it{addr\/}})\index{add1-addr} $=$ {\rm{add-addr}}\,({\it{addr\/}}, {\tt{1}})\index{add-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{sub1-addr}$\;\;$
{\rm{sub1-addr}}\,({\it{addr\/}})\index{sub1-addr} $=$ {\rm{sub-addr}}\,({\it{addr\/}}, {\tt{1}})\index{sub-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fetch} \\  
{\rm{fetch}}\,({\it{addr\/}}, {\it{segment\/}})\index{fetch} $=$ {\rm{fetch-adp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{segment\/}})\index{fetch-adp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{deposit} \\  
{\rm{deposit}}\,({\it{val\/}}, {\it{addr\/}}, {\it{segment\/}})\index{deposit} $=$ {\rm{deposit-adp}}\,({\it{val\/}}, {\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{segment\/}})\index{deposit-adp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{booleanp}$\;\;$
{\rm{booleanp}}\,({\it{x\/}})\index{booleanp} $=$ (({\it{x\/}} $=$ {\tt{'}}{\tt{t}}) $\vee$ ({\it{x\/}} $=$ {\tt{'}}{\tt{f}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bool} \\  
\=\+{\rm{bool}}\,({\it{x\/}})\index{bool} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
\=\+{\bf if }{\it{x\/}}$\;\;${\bf then }{\tt{'}}{\tt{t}} \\ 
{\bf else }{\tt{'}}{\tt{f}}$\;${\bf  endif}\-)\-\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{or-bool} \\  
\=\+{\rm{or-bool}}\,({\it{x\/}}, {\it{y\/}})\index{or-bool} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\it{y\/}} \\ 
{\bf else }{\tt{'}}{\tt{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{and-bool} \\  
\=\+{\rm{and-bool}}\,({\it{x\/}}, {\it{y\/}})\index{and-bool} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\tt{'}}{\tt{f}} \\ 
{\bf else }{\it{y\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{xor-bool} \\  
\=\+{\rm{xor-bool}}\,({\it{x\/}}, {\it{y\/}})\index{xor-bool} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\it{y\/}} \\ 
{\bf elseif }{\it{y\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\tt{'}}{\tt{t}} \\ 
{\bf else }{\tt{'}}{\tt{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{small-naturalp} \\  
{\rm{small-naturalp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-naturalp} $=$ (({\it{i\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{i\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bool-to-nat} \\  
\=\+{\rm{bool-to-nat}}\,({\it{flg\/}})\index{bool-to-nat} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flg\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fix-small-natural} \\  
{\rm{fix-small-natural}}\,({\it{n\/}}, {\it{word-size\/}})\index{fix-small-natural} $=$ ({\it{n\/}} ${}${\bf{mod}}${}$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{small-integerp} \\  
\=\+{\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{integerp}}\,({\it{i\/}})\index{integerp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{ilessp}}\,({\it{i\/}}, $-$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp})\index{ilessp}) \\ 
$\wedge$$\;\;\;\;${\rm{ilessp}}\,({\it{i\/}}, {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp})\index{ilessp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{inegate} \\  
\=\+{\rm{inegate}}\,({\it{i\/}})\index{inegate} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{negativep}}\,({\it{i\/}})$\;\;${\bf then }{\rm{negative-guts}}\,({\it{i\/}}) \\ 
{\bf elseif }{\it{i\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }$-$ {\it{i\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fix-small-integer} \\  
\=\+{\rm{fix-small-integer}}\,({\it{i\/}}, {\it{word-size\/}})\index{fix-small-integer} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp}$\;\;${\bf then }{\it{i\/}} \\ 
{\bf elseif }{\rm{negativep}}\,({\it{i\/}})$\;\;${\bf then }{\rm{iplus}}\,({\it{i\/}}, {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})\index{iplus} \\ 
{\bf else }{\rm{iplus}}\,({\it{i\/}}, $-$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})\index{iplus}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bitp}$\;\;$
{\rm{bitp}}\,({\it{x\/}})\index{bitp} $=$ (({\it{x\/}} $=$ {\tt{0}}) $\vee$ ({\it{x\/}} $=$ {\tt{1}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{bit-vectorp} \\  
\=\+{\rm{bit-vectorp}}\,({\it{x\/}}, {\it{n\/}})\index{bit-vectorp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }({\it{x\/}} $=$ {\bf{nil}}) $\wedge$ ({\it{n\/}} $\simeq {\tt{0}}$) \\ 
{\bf else }({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{bitp}}\,({\rm{car}}\,({\it{x\/}}))\index{bitp} $\wedge$ {\rm{bit-vectorp}}\,({\rm{cdr}}\,({\it{x\/}}), {\it{n\/}} $-\;1$)\index{bit-vectorp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{or-bit} \\  
\=\+{\rm{or-bit}}\,({\it{bit1\/}}, {\it{bit2\/}})\index{or-bit} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{bit1\/}} $=$ {\tt{0}} \\ 
{\bf then }\=\+{\bf if }{\it{bit2\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\- \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{not-bit} \\  
\=\+{\rm{not-bit}}\,({\it{bit\/}})\index{not-bit} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{bit\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{and-bit} \\  
\=\+{\rm{and-bit}}\,({\it{bit1\/}}, {\it{bit2\/}})\index{and-bit} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{bit1\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\it{bit2\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{xor-bit} \\  
\=\+{\rm{xor-bit}}\,({\it{bit1\/}}, {\it{bit2\/}})\index{xor-bit} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{bit1\/}} $=$ {\tt{0}} \\ 
{\bf then }\=\+{\bf if }{\it{bit2\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\it{bit2\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{or-bitv} \\  
\=\+{\rm{or-bitv}}\,({\it{a\/}}, {\it{b\/}})\index{or-bitv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{or-bit}}\,({\rm{car}}\,({\it{a\/}}), {\rm{car}}\,({\it{b\/}}))\index{or-bit}, {\rm{or-bitv}}\,({\rm{cdr}}\,({\it{a\/}}), {\rm{cdr}}\,({\it{b\/}}))\index{or-bitv})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{not-bitv} \\  
\=\+{\rm{not-bitv}}\,({\it{a\/}})\index{not-bitv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{not-bit}}\,({\rm{car}}\,({\it{a\/}}))\index{not-bit}, {\rm{not-bitv}}\,({\rm{cdr}}\,({\it{a\/}}))\index{not-bitv})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{and-bitv} \\  
\=\+{\rm{and-bitv}}\,({\it{a\/}}, {\it{b\/}})\index{and-bitv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{and-bit}}\,({\rm{car}}\,({\it{a\/}}), {\rm{car}}\,({\it{b\/}}))\index{and-bit}, {\rm{and-bitv}}\,({\rm{cdr}}\,({\it{a\/}}), {\rm{cdr}}\,({\it{b\/}}))\index{and-bitv})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{xor-bitv} \\  
\=\+{\rm{xor-bitv}}\,({\it{a\/}}, {\it{b\/}})\index{xor-bitv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{xor-bit}}\,({\rm{car}}\,({\it{a\/}}), {\rm{car}}\,({\it{b\/}}))\index{xor-bit}, {\rm{xor-bitv}}\,({\rm{cdr}}\,({\it{a\/}}), {\rm{cdr}}\,({\it{b\/}}))\index{xor-bitv})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-but-last} \\  
\=\+{\rm{all-but-last}}\,({\it{a\/}})\index{all-but-last} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf elseif }{\rm{cdr}}\,({\it{a\/}}) $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{car}}\,({\it{a\/}}), {\rm{all-but-last}}\,({\rm{cdr}}\,({\it{a\/}}))\index{all-but-last})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{rsh-bitv}$\;\;$
{\rm{rsh-bitv}}\,({\it{a\/}})\index{rsh-bitv} $=$ {\rm{cons}}\,({\tt{0}}, {\rm{all-but-last}}\,({\it{a\/}})\index{all-but-last})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lsh-bitv}$\;\;$
{\rm{lsh-bitv}}\,({\it{a\/}})\index{lsh-bitv} $=$ {\rm{append}}\,({\rm{cdr}}\,({\it{a\/}}), {\tt{'}}{\tt{(}}{\tt{0}}{\tt{)}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-zero-bitvp} \\  
\=\+{\rm{all-zero-bitvp}}\,({\it{a\/}})\index{all-zero-bitvp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{a\/}})$\;\;${\bf then }({\rm{car}}\,({\it{a\/}}) $=$ {\tt{0}}) $\wedge$ {\rm{all-zero-bitvp}}\,({\rm{cdr}}\,({\it{a\/}}))\index{all-zero-bitvp} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{find-labelp} \\  
\=\+{\rm{find-labelp}}\,({\it{x\/}}, {\it{lst\/}})\index{find-labelp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{labelledp}}\,({\rm{car}}\,({\it{lst\/}}))\index{labelledp} $\wedge$ ({\it{x\/}} $=$ {\rm{cadar}}\,({\it{lst\/}}))$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{find-labelp}}\,({\it{x\/}}, {\rm{cdr}}\,({\it{lst\/}}))\index{find-labelp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{x-y-error-msg} \\  
\=\+{\rm{x-y-error-msg}}\,({\it{x\/}}, {\it{y\/}})\index{x-y-error-msg} \\ 
$=$$\;\;\;\;${\rm{pack}}\,({\rm{append}}\,(\=\+{\rm{unpack}}\,({\tt{'}}{\tt{illegal-}}), \\ 
{\rm{append}}\,({\rm{unpack}}\,({\it{y\/}}), {\rm{cdr}}\,({\rm{unpack}}\,({\tt{'}}{\tt{g-instruction}}))))\-)\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{cstkp} \\  
\=\+{\rm{cstkp}}\,({\it{x\/}}, {\it{segment\/}})\index{cstkp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,({\it{x\/}}, {\it{segment\/}})\index{addressp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{x\/}})\index{area-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{tstkp} \\  
\=\+{\rm{tstkp}}\,({\it{x\/}}, {\it{segment\/}})\index{tstkp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,({\it{x\/}}, {\it{segment\/}})\index{addressp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{x\/}})\index{area-name} $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{push-stk}$\;\;$
{\rm{push-stk}}\,({\it{sys-addr\/}})\index{push-stk} $=$ {\rm{sub1-addr}}\,({\it{sys-addr\/}})\index{sub1-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pop-stk}$\;\;$
{\rm{pop-stk}}\,({\it{sys-addr\/}})\index{pop-stk} $=$ {\rm{add1-addr}}\,({\it{sys-addr\/}})\index{add1-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{stk-length} \\  
\=\+{\rm{stk-length}}\,({\it{addr\/}}, {\it{segment\/}})\index{stk-length} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\rm{definiens}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{segment\/}})\index{definiens})\index{length} $-$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) $-\;1$)\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{empty-stkp} \\  
{\rm{empty-stkp}}\,({\it{addr\/}}, {\it{segment\/}})\index{empty-stkp} $=$ ({\rm{stk-length}}\,({\it{addr\/}}, {\it{segment\/}})\index{stk-length} $\simeq {\tt{0}}$)
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{free-stk-size}$\;\;$
{\rm{free-stk-size}}\,({\it{addr\/}})\index{free-stk-size} $=$ {\rm{offset}}\,({\it{addr\/}})\index{offset}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode-labelp} \\  
\=\+{\rm{icode-labelp}}\,({\it{lab\/}}, {\it{segment\/}})\index{icode-labelp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,({\it{lab\/}}, {\rm{definiens}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})\index{definiens})\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-objectp} \\  
\=\+{\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{type}}\,({\it{x\/}})\index{type}: \\ 
{\bf case = }{\it{nat\/}} \\ 
{\bf then }{\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-naturalp} \\ 
{\bf case = }{\it{int\/}} \\ 
{\bf $\;\;$then }{\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-integerp} \\ 
{\bf case = }{\it{bitv\/}} \\ 
{\bf $\;\;$then }{\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{bit-vectorp} \\ 
{\bf case = }{\it{bool\/}} \\ 
{\bf $\;\;$then }{\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp} \\ 
{\bf case = }{\it{addr\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp} \\ 
{\bf case = }{\it{pc\/}} \\ 
{\bf $\;\;$then }{\rm{icode-labelp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp} \\ 
{\bf case = }{\it{subr\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{cons}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
{\bf case = }{\it{sys-addr\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp} \\ 
{\bf case = }{\it{ipc\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-objectp-type} \\  
{\rm{i-objectp-type}}\,({\it{type\/}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} $=$ (({\it{type\/}} $=$ {\rm{type}}\,({\it{x\/}})\index{type}) $\wedge$ {\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-usr-data-typep} \\  
\=\+{\rm{i-usr-data-typep}}\,({\it{type\/}})\index{i-usr-data-typep} \\ 
$=$$\;\;\;\;$({\it{type\/}} $\in$ {\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{int}}{\tt{ }}{\tt{bitv}}{\tt{ }}{\tt{bool}}{\tt{ }}{\tt{addr}}{\tt{ }}{\tt{subr}}{\tt{ }}{\tt{pc}}{\tt{)}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-usr-data-objectp} \\  
{\rm{i-usr-data-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-usr-data-objectp} $=$ ({\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} $\wedge$ {\rm{i-usr-data-typep}}\,({\rm{type}}\,({\it{x\/}})\index{type})\index{i-usr-data-typep})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{total-i-system-size} \\  
\=\+{\rm{total-i-system-size}}\,({\it{i\/}}, {\it{load-addr\/}})\index{total-i-system-size} \\ 
$=$$\;\;\;\;$(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-loadablep} \\  
\=\+{\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep} \\ 
$=$$\;\;\;\;$({\rm{total-i-system-size}}\,({\it{i\/}}, {\it{load-addr\/}})\index{total-i-system-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-state-okp} \\  
\=\+{\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{i-statep}}\,({\it{i\/}})\index{i-statep} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{ipc}}, {\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{tstkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{tstkp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-i-usr-data-objectps} \\  
\=\+{\rm{all-i-usr-data-objectps}}\,({\it{lst\/}}, {\it{i\/}})\index{all-i-usr-data-objectps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{i-usr-data-objectp}}\,({\rm{car}}\,({\it{lst\/}}), {\it{i\/}})\index{i-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{all-i-usr-data-objectps}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{i\/}})\index{all-i-usr-data-objectps}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-i-usr-data-area} \\  
\=\+{\rm{proper-i-usr-data-area}}\,({\it{area\/}}, {\it{i\/}})\index{proper-i-usr-data-area} \\ 
$=$$\;\;\;\;$(\=\+{\rm{litatom}}\,({\rm{car}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{all-i-usr-data-objectps}}\,({\rm{cdr}}\,({\it{area\/}}), {\it{i\/}})\index{all-i-usr-data-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-i-usr-data-segmentp} \\  
\=\+{\rm{proper-i-usr-data-segmentp}}\,({\it{data-segment\/}}, {\it{i\/}})\index{proper-i-usr-data-segmentp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{data-segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{data-segment\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{proper-i-usr-data-area}}\,({\rm{car}}\,({\it{data-segment\/}}), {\it{i\/}})\index{proper-i-usr-data-area} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\rm{caar}}\,({\it{data-segment\/}}), {\rm{cdr}}\,({\it{data-segment\/}}))\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\rm{cdr}}\,({\it{data-segment\/}}), {\it{i\/}})\index{proper-i-usr-data-segmentp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-i-pc}$\;\;$
{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc} $=$ {\rm{add1-addr}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{add1-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-i-pcp} \\  
{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $=$ {\rm{addressp}}\,({\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{addressp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add2-i-pc}$\;\;$
{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc} $=$ {\rm{add1-addr}}\,({\rm{add1-addr}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{add1-addr})\index{add1-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add2-i-pcp} \\  
{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} $=$ {\rm{addressp}}\,({\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{addressp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-current-instruction} \\  
{\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\rm{unlabel}}\,({\rm{fetch}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{fetch})\index{unlabel}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-nextword} \\  
{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword} $=$ {\rm{unlabel}}\,({\rm{fetch}}\,({\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{fetch})\index{unlabel}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{ipc} \\  
\=\+{\rm{ipc}}\,({\it{lab\/}}, {\it{program\/}})\index{ipc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{ipc}}, {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\rm{find-label}}\,({\it{lab\/}}, {\rm{cdr}}\,({\it{program\/}}))\index{find-label}))\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-halt} \\  
\=\+{\rm{i-halt}}\,({\it{i\/}}, {\it{psw\/}})\index{i-halt} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\it{psw\/}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{xor-xxx} \\  
\=\+{\rm{xor-xxx}}\,({\it{obj1\/}}, {\it{obj2\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{xor-xxx} \\ 
$=$$\;\;\;\;${\rm{xor-bitv}}\,(\=\+{\rm{v-to-bitv}}\,({\rm{link-data-word}}\,(\=\+{\it{obj1\/}}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{link-data-word})\index{v-to-bitv}, \\ 
{\rm{v-to-bitv}}\,({\rm{link-data-word}}\,(\=\+{\it{obj2\/}}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{link-data-word})\index{v-to-bitv})\-\index{xor-bitv}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$c$>$\_x\_x\{n\}-okp} \\  
\=\+{\rm{i-add\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-okp} \\ 
$=$$\;\;\;\;$({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ {\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$c$>$\_x\_x\{n\}-step} \\  
\=\+{\rm{i-add\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,({\tt{2}} $*$ {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,({\tt{2}} $*$ {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-naturalp})\index{bool}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\  
\=\+{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\  
\=\+{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{lsh-bitv}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\index{lsh-bitv})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\  
\=\+{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\  
\=\+{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\  
\=\+{\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{add-addr}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step} \\  
\=\+{\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{add-addr}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_tsp\_*\{n\}-okp} \\  
\=\+{\rm{i-add\_tsp\_*\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,(\=\+{\rm{add-addr}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{untag}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword})\index{untag})\index{add-addr}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{addressp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_tsp\_*\{n\}-step} \\  
\=\+{\rm{i-add\_tsp\_*\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{add-addr}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{untag}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword})\index{untag})\index{add-addr}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_tsp\_x\{n\}-okp} \\  
\=\+{\rm{i-add\_tsp\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,(\=\+{\rm{add-addr}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{add-addr}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{addressp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_tsp\_x\{n\}-step} \\  
\=\+{\rm{i-add\_tsp\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{add-addr}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{add-addr}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\  
\=\+{\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{iplus}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step} \\  
\=\+{\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{iplus})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\  
\=\+{\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step} \\  
\=\+{\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-)\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_pc\_x\{n\}-okp} \\  
\=\+{\rm{i-add\_pc\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,(\=\+{\rm{add-addr}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, $1\;+$ {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{add-addr}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-\index{addressp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_pc\_x\{n\}-step} \\  
\=\+{\rm{i-add\_pc\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add-addr}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, $1\;+$ {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{add-addr}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_x\_x\{n\}-okp} \\  
\=\+{\rm{i-add\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,({\tt{2}} $*$ {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_x\_x\{n\}-step} \\  
\=\+{\rm{i-add\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{2}} $*$ {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_x\{n\}\_csp-okp} \\  
\=\+{\rm{i-add\_x\{n\}\_csp-okp}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,(\=\+{\rm{add-addr}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{add-addr}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{addressp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-add\_x\{n\}\_csp-step} \\  
\=\+{\rm{i-add\_x\{n\}\_csp-step}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{add-addr}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{add-addr}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\  
\=\+{\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step} \\  
\=\+{\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\  
\=\+{\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step} \\  
\=\+{\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,({\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag}, {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\index{iplus})\-\index{iplus}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\  
\=\+{\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step} \\  
\=\+{\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{and-bitv}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{and-bitv})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\  
\=\+{\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step} \\  
\=\+{\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{and-bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{and-bool})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp} \\  
\=\+{\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-okp}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step} \\  
\=\+{\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{tag}}\,({\tt{'}}{\tt{bool}}, {\tt{'}}{\tt{f}})\index{tag}, {\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpop\_cfp-okp} \\  
\=\+{\rm{i-cpop\_cfp-okp}}\,({\it{i\/}})\index{i-cpop\_cfp-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,(\=\+{\rm{fetch}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{cstkp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpop\_cfp-step} \\  
\=\+{\rm{i-cpop\_cfp-step}}\,({\it{i\/}})\index{i-cpop\_cfp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{fetch}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{pop-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{pop-stk}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpop\_pc-okp} \\  
\=\+{\rm{i-cpop\_pc-okp}}\,({\it{i\/}})\index{i-cpop\_pc-okp} \\ 
$=$$\;\;\;\;$(\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{fetch}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpop\_pc-step} \\  
\=\+{\rm{i-cpop\_pc-step}}\,({\it{i\/}})\index{i-cpop\_pc-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{definition}}\,(\=\+{\rm{area-name}}\,({\rm{fetch}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{area-name}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-\index{definition})\-\index{ipc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{pop-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{pop-stk}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpush\_*-okp} \\  
\=\+{\rm{i-cpush\_*-okp}}\,({\it{i\/}})\index{i-cpush\_*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpush\_*-step} \\  
\=\+{\rm{i-cpush\_*-step}}\,({\it{i\/}})\index{i-cpush\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{push-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{push-stk}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{push-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{push-stk}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpush\_$<$tsp$>$+-okp} \\  
\=\+{\rm{i-cpush\_$<$tsp$>$+-okp}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpush\_$<$tsp$>$+-step} \\  
\=\+{\rm{i-cpush\_$<$tsp$>$+-step}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{push-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{push-stk}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{push-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{push-stk}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpush\_cfp-okp} \\  
{\rm{i-cpush\_cfp-okp}}\,({\it{i\/}})\index{i-cpush\_cfp-okp} $=$ ({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ ({\rm{free-stk-size}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{free-stk-size} $\not\simeq {\tt{0}}$))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-cpush\_cfp-step} \\  
\=\+{\rm{i-cpush\_cfp-step}}\,({\it{i\/}})\index{i-cpush\_cfp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{push-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{push-stk}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, {\rm{push-stk}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{push-stk}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\  
\=\+{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\tt{1}})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\  
\=\+{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\tt{1}})\-\index{idifference})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\  
\=\+{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\  
\=\+{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} $-\;1$)\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\  
\=\+{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\tt{1}})\-\index{iplus}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\  
\=\+{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\tt{1}})\-\index{iplus})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\  
\=\+{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\  
\=\+{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-incr\_y\_y\{n\}-okp} \\  
\=\+{\rm{i-incr\_y\_y\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,($1\;+$ {\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-incr\_y\_y\{n\}-step} \\  
\=\+{\rm{i-incr\_y\_y\{n\}-step}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, $1\;+$ {\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag})\index{tag}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-int-to-nat-okp} \\  
\=\+{\rm{i-int-to-nat-okp}}\,({\it{i\/}})\index{i-int-to-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-int-to-nat-step} \\  
\=\+{\rm{i-int-to-nat-step}}\,({\it{i\/}})\index{i-int-to-nat-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-n\_x-okp} \\  
\=\+{\rm{i-jump-n\_x-okp}}\,({\it{i\/}})\index{i-jump-n\_x-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
{\bf else }{\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-n\_x-step} \\  
\=\+{\rm{i-jump-n\_x-step}}\,({\it{i\/}})\index{i-jump-n\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+\=\+{\bf if }{\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc} \\ 
{\bf else }{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definition})\-\index{ipc}$\;${\bf  endif}\-, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-nn\_x-okp} \\  
\=\+{\rm{i-jump-nn\_x-okp}}\,({\it{i\/}})\index{i-jump-nn\_x-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
{\bf else }{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-nn\_x-step} \\  
\=\+{\rm{i-jump-nn\_x-step}}\,({\it{i\/}})\index{i-jump-nn\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+\=\+{\bf if }{\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag} $=$ {\tt{'}}{\tt{f}} \\ 
{\bf then }{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definition})\-\index{ipc} \\ 
{\bf else }{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}$\;${\bf  endif}\-, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-nz\_x-okp} \\  
\=\+{\rm{i-jump-nz\_x-okp}}\,({\it{i\/}})\index{i-jump-nz\_x-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
{\bf else }{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-nz\_x-step} \\  
\=\+{\rm{i-jump-nz\_x-step}}\,({\it{i\/}})\index{i-jump-nz\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+\=\+{\bf if }{\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag} $=$ {\tt{'}}{\tt{f}} \\ 
{\bf then }{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definition})\-\index{ipc} \\ 
{\bf else }{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}$\;${\bf  endif}\-, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-z\_x-okp} \\  
\=\+{\rm{i-jump-z\_x-okp}}\,({\it{i\/}})\index{i-jump-z\_x-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
{\bf else }{\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump-z\_x-step} \\  
\=\+{\rm{i-jump-z\_x-step}}\,({\it{i\/}})\index{i-jump-z\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+\=\+{\bf if }{\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc} \\ 
{\bf else }{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definition})\-\index{ipc}$\;${\bf  endif}\-, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump\_*-okp} \\  
\=\+{\rm{i-jump\_*-okp}}\,({\it{i\/}})\index{i-jump\_*-okp} \\ 
$=$$\;\;\;\;$({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ {\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp-type})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump\_*-step} \\  
\=\+{\rm{i-jump\_*-step}}\,({\it{i\/}})\index{i-jump\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword})\index{untag}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword})\index{area-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definition})\-\index{ipc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump\_x\{subr\}-okp} \\  
{\rm{i-jump\_x\{subr\}-okp}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-okp} $=$ {\rm{i-objectp-type}}\,({\tt{'}}{\tt{subr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-jump\_x\{subr\}-step} \\  
\=\+{\rm{i-jump\_x\{subr\}-step}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{ipc}}, {\rm{cons}}\,({\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, {\tt{0}}))\index{tag}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp} \\  
\=\+{\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp} \\ 
$=$$\;\;\;\;$({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ {\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step} \\  
\=\+{\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} $\div$ {\tt{2}})\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{bool}}\,(({\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{1}})\index{bool}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\  
\=\+{\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\  
\=\+{\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{rsh-bitv}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\index{rsh-bitv})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-c\_$<$tsp$>$\_*-okp} \\  
\=\+{\rm{i-move-c\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-c\_$<$tsp$>$\_*-step} \\  
\=\+{\rm{i-move-c\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
\=\+{\bf if }{\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment} \\ 
{\bf else }{\rm{deposit}}\,(\=\+{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}$\;${\bf  endif}\-, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-v\_$<$tsp$>$\_*-okp} \\  
\=\+{\rm{i-move-v\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-v\_$<$tsp$>$\_*-step} \\  
\=\+{\rm{i-move-v\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
\=\+{\bf if }{\rm{untag}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment} \\ 
{\bf else }{\rm{deposit}}\,(\=\+{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}$\;${\bf  endif}\-, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-z\_$<$tsp$>$\_*-okp} \\  
\=\+{\rm{i-move-z\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-z\_$<$tsp$>$\_*-step} \\  
\=\+{\rm{i-move-z\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
\=\+{\bf if }{\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment} \\ 
{\bf else }{\rm{deposit}}\,(\=\+{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}$\;${\bf  endif}\-, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-n\_x\_*-okp} \\  
{\rm{i-move-n\_x\_*-okp}}\,({\it{i\/}})\index{i-move-n\_x\_*-okp} $=$ ({\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} $\wedge$ {\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move-n\_x\_*-step} \\  
\=\+{\rm{i-move-n\_x\_*-step}}\,({\it{i\/}})\index{i-move-n\_x\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
\=\+{\bf if }{\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\rm{i-x}}\,({\it{i\/}})\index{i-x} \\ 
{\bf else }{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}$\;${\bf  endif}\-, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_$<$tsp$>$\_*-okp} \\  
\=\+{\rm{i-move\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_$<$tsp$>$\_*-step} \\  
\=\+{\rm{i-move\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp} \\  
\=\+{\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step} \\  
\=\+{\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\-\index{deposit}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp} \\  
\=\+{\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step} \\  
\=\+{\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_cfp\_csp-okp}$\;\;$
{\rm{i-move\_cfp\_csp-okp}}\,({\it{i\/}})\index{i-move\_cfp\_csp-okp} $=$ {\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_cfp\_csp-step} \\  
\=\+{\rm{i-move\_cfp\_csp-step}}\,({\it{i\/}})\index{i-move\_cfp\_csp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_csp\_cfp-okp}$\;\;$
{\rm{i-move\_csp\_cfp-okp}}\,({\it{i\/}})\index{i-move\_csp\_cfp-okp} $=$ {\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_csp\_cfp-step} \\  
\=\+{\rm{i-move\_csp\_cfp-step}}\,({\it{i\/}})\index{i-move\_csp\_cfp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_*-okp}$\;\;$
{\rm{i-move\_x\_*-okp}}\,({\it{i\/}})\index{i-move\_x\_*-okp} $=$ {\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_*-step} \\  
\=\+{\rm{i-move\_x\_*-step}}\,({\it{i\/}})\index{i-move\_x\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_$<$x\{s\}$>$-okp} \\  
\=\+{\rm{i-move\_x\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{fetch}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_$<$x\{s\}$>$-step} \\  
\=\+{\rm{i-move\_x\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{fetch}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_tsp-okp}$\;\;$
{\rm{i-move\_x\_tsp-okp}}\,({\it{i\/}})\index{i-move\_x\_tsp-okp} $=$ {\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_tsp-step} \\  
\=\+{\rm{i-move\_x\_tsp-step}}\,({\it{i\/}})\index{i-move\_x\_tsp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_x-okp}$\;\;$
{\rm{i-move\_x\_x-okp}}\,({\it{i\/}})\index{i-move\_x\_x-okp} $=$ {\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_x\_x-step} \\  
\=\+{\rm{i-move\_x\_x-step}}\,({\it{i\/}})\index{i-move\_x\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_y\_*-okp}$\;\;$
{\rm{i-move\_y\_*-okp}}\,({\it{i\/}})\index{i-move\_y\_*-okp} $=$ {\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_y\_*-step} \\  
\=\+{\rm{i-move\_y\_*-step}}\,({\it{i\/}})\index{i-move\_y\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_y\_$<$y\{s\}$>$-okp} \\  
\=\+{\rm{i-move\_y\_$<$y\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{fetch}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_y\_$<$y\{s\}$>$-step} \\  
\=\+{\rm{i-move\_y\_$<$y\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{fetch}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_y\_tsp-okp}$\;\;$
{\rm{i-move\_y\_tsp-okp}}\,({\it{i\/}})\index{i-move\_y\_tsp-okp} $=$ {\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-move\_y\_tsp-step} \\  
\=\+{\rm{i-move\_y\_tsp-step}}\,({\it{i\/}})\index{i-move\_y\_tsp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\  
\=\+{\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{inegate}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\index{inegate}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\  
\=\+{\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{inegate}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\index{inegate})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\  
\=\+{\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\  
\=\+{\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{not-bitv}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\index{not-bitv})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp} \\  
\=\+{\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step} \\  
\=\+{\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{or-bitv}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{or-bitv})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp} \\  
\=\+{\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step} \\  
\=\+{\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{or-bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{or-bool})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp} \\  
\=\+{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{area-name}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{area-name} \\ 
$=$$\;\;\;\;${\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step} \\  
\=\+{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{bool}}\,(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;${\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset}\-)\index{bool}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\bf if }\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;${\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset}\- \\ 
{\bf then }\=\+{\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset} \\ 
$-$$\;\;\;\;${\rm{offset}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{offset})\-\- \\ 
{\bf else }\=\+{\rm{offset}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{offset} \\ 
$-$$\;\;\;\;${\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset}\-$\;${\bf  endif}\-)\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp} \\  
\=\+{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step} \\  
\=\+{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-)\index{bool}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\bf if }\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\- \\ 
{\bf then }\=\+{\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\-\- \\ 
{\bf else }\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-$\;${\bf  endif}\-)\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp} \\  
\=\+{\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step} \\  
\=\+{\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{bool}}\,({\rm{negativep}}\,({\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{fix-small-integer}))\index{bool}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{offset} \\ 
$\not<$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{sub-addr}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{sub-addr}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_x\{s\}\_y\{n\}-okp} \\  
\=\+{\rm{i-sub\_x\{s\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset} $\not<$ {\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_x\{s\}\_y\{n\}-step} \\  
\=\+{\rm{i-sub\_x\{s\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{sub-addr}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag})\index{sub-addr}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{idifference})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} \\ 
$\not<$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}\-)\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{area-name}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{area-name} \\ 
$=$$\;\;\;\;${\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{offset} \\ 
$\not<$$\;\;\;\;${\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step} \\  
\=\+{\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{offset} \\ 
$-$$\;\;\;\;${\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset}\-)\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp} \\  
\=\+{\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{area-name} $=$ {\rm{area-name}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset} $\not<$ {\rm{offset}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{offset}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step} \\  
\=\+{\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset} $-$ {\rm{offset}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{offset})\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{bool}}\,({\rm{offset}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{offset} $=$ {\rm{offset}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{offset})\index{bool}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\  
\=\+{\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step} \\  
\=\+{\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\bf if }\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat})\-\- \\ 
{\bf then }\=\+{\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+(\=\+{\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat})\- \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\- \\ 
{\bf else }\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} \\ 
$-$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat})\-\-$\;${\bf  endif}\-)\-\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} \\ 
$<$$\;\;\;\;$({\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag} $+$ {\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat})\-)\index{bool}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\  
\=\+{\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{i-y}}\,({\it{i\/}})\index{i-y}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step} \\  
\=\+{\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag}, \\ 
{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{i-y}}\,({\it{i\/}})\index{i-y})\index{untag}, \\ 
{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{bool-to-nat})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_$<$c$>$\_x-okp} \\  
\=\+{\rm{i-tpop\_$<$c$>$\_x-okp}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_$<$c$>$\_x-step} \\  
\=\+{\rm{i-tpop\_$<$c$>$\_x-step}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{bool}}, {\tt{'}}{\tt{f}})\index{tag}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_$<$x\{a\}$>$-okp} \\  
\=\+{\rm{i-tpop\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_$<$x\{a\}$>$-step} \\  
\=\+{\rm{i-tpop\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\-\index{deposit}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_$<$x\{s\}$>$-okp} \\  
\=\+{\rm{i-tpop\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_$<$x\{s\}$>$-step} \\  
\=\+{\rm{i-tpop\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_pc-okp} \\  
\=\+{\rm{i-tpop\_pc-okp}}\,({\it{i\/}})\index{i-tpop\_pc-okp} \\ 
$=$$\;\;\;\;$(\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_pc-step} \\  
\=\+{\rm{i-tpop\_pc-step}}\,({\it{i\/}})\index{i-tpop\_pc-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{ipc}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{definition}}\,(\=\+{\rm{area-name}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{area-name}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-\index{definition})\-\index{ipc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_x-okp} \\  
\=\+{\rm{i-tpop\_x-okp}}\,({\it{i\/}})\index{i-tpop\_x-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_x-step} \\  
\=\+{\rm{i-tpop\_x-step}}\,({\it{i\/}})\index{i-tpop\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_y-okp} \\  
\=\+{\rm{i-tpop\_y-okp}}\,({\it{i\/}})\index{i-tpop\_y-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\_y-step} \\  
\=\+{\rm{i-tpop\_y-step}}\,({\it{i\/}})\index{i-tpop\_y-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{v\}\_$<$z$>$\_y-okp} \\  
\=\+{\rm{i-tpop\{v\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{v\}\_$<$z$>$\_y-step} \\  
\=\+{\rm{i-tpop\{v\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{bool}}\,({\rm{all-zero-bitvp}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag})\index{all-zero-bitvp})\index{bool}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{b\}\_$<$z$>$\_y-okp} \\  
\=\+{\rm{i-tpop\{b\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{b\}\_$<$z$>$\_y-step} \\  
\=\+{\rm{i-tpop\{b\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{bool}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} $=$ {\tt{'}}{\tt{f}})\index{bool}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{i\}\_$<$zn$>$\_y-okp} \\  
\=\+{\rm{i-tpop\{i\}\_$<$zn$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{i\}\_$<$zn$>$\_y-step} \\  
\=\+{\rm{i-tpop\{i\}\_$<$zn$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{bool}}\,({\rm{negativep}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag}))\index{bool}, \\ 
{\rm{bool}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} $=$ {\tt{0}})\index{bool}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{n\}\_$<$z$>$\_y-okp} \\  
\=\+{\rm{i-tpop\{n\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpop\{n\}\_$<$z$>$\_y-step} \\  
\=\+{\rm{i-tpop\{n\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{pop-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{pop-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{bool}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{untag} $=$ {\tt{0}})\index{bool}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_*-okp} \\  
\=\+{\rm{i-tpush\_*-okp}}\,({\it{i\/}})\index{i-tpush\_*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_*-step} \\  
\=\+{\rm{i-tpush\_*-step}}\,({\it{i\/}})\index{i-tpush\_*-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_$<$x\{a\}$>$-okp} \\  
\=\+{\rm{i-tpush\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{fetch}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{fetch}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_$<$x\{a\}$>$-step} \\  
\=\+{\rm{i-tpush\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{fetch}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_$<$x\{s\}$>$-okp} \\  
\=\+{\rm{i-tpush\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_$<$x\{s\}$>$-step} \\  
\=\+{\rm{i-tpush\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_csp-okp} \\  
{\rm{i-tpush\_csp-okp}}\,({\it{i\/}})\index{i-tpush\_csp-okp} $=$ ({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ ({\rm{free-stk-size}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_csp-step} \\  
\=\+{\rm{i-tpush\_csp-step}}\,({\it{i\/}})\index{i-tpush\_csp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, {\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_tsp-okp} \\  
{\rm{i-tpush\_tsp-okp}}\,({\it{i\/}})\index{i-tpush\_tsp-okp} $=$ ({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ ({\rm{free-stk-size}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_tsp-step} \\  
\=\+{\rm{i-tpush\_tsp-step}}\,({\it{i\/}})\index{i-tpush\_tsp-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_x-okp} \\  
\=\+{\rm{i-tpush\_x-okp}}\,({\it{i\/}})\index{i-tpush\_x-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-tpush\_x-step} \\  
\=\+{\rm{i-tpush\_x-step}}\,({\it{i\/}})\index{i-tpush\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\rm{push-stk}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{push-stk}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp} \\ 
$=$$\;\;\;\;$({\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} $\wedge$ ($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}))\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{tag}}\,({\tt{'}}{\tt{bool}}, {\tt{'}}{\tt{f}})\index{tag}, {\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{xor-bitv}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{xor-bitv})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add2-i-pcp}}\,({\it{i\/}})\index{add2-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add2-i-pc}}\,({\it{i\/}})\index{add2-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{xor-bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-nextword}}\,({\it{i\/}})\index{i-nextword})\index{untag})\-\index{xor-bool})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\it{i\/}})\-\index{i-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step} \\  
\=\+{\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{xor-bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\-\index{xor-bool})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp} \\  
\=\+{\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp}}\,({\it{i\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-i-pcp}}\,({\it{i\/}})\index{add1-i-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{i-usr-data-objectp}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x}, {\it{i\/}})\index{i-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{i-usr-data-objectp}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, {\it{i\/}})\index{i-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{type} $=$ {\rm{type}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch})\index{type}))\-\-
\end{tabbing}

\begin{verbatim}; Note: This step function is different from all the others in that it
; takes a second argument!  The problem is that to xor any two
; addresses we must know where they are loaded to compute the
; resultant bit vector.  In the days before we added load-addr, the
; address 0 was built into this definition and this stepper was like
; all the others.  But now we have to supply it.  We could have made
; it part of the I state, but that would have required changing all
; the steppers to construct the new sized state and might have
; required other changes (e.g., in proving that it is unchanged?).  So
; we have just added it to this one stepper, which will be handled
; specially in by i-ins-step.  Of course, we have to add load-addr as
; an argument to the I machine itself.  Sigh.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step} \\  
\=\+{\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{add1-i-pc}}\,({\it{i\/}})\index{add1-i-pc}, \\ 
{\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}, \\ 
{\rm{i-csp}}\,({\it{i\/}})\index{i-csp}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\rm{i-y}}\,({\it{i\/}})\index{i-y}, \\ 
{\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}, \\ 
{\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}, \\ 
{\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}, \\ 
{\rm{bool}}\,({\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch} $=$ {\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{bool}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{xor-xxx}}\,(\=\+{\rm{fetch}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{fetch}, \\ 
{\rm{i-x}}\,({\it{i\/}})\index{i-x}, \\ 
{\it{i\/}}, \\ 
{\it{load-addr\/}})\-\index{xor-xxx})\-\index{tag}, \\ 
{\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}, \\ 
{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\-\index{deposit}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-ins-okp} \\  
\=\+{\rm{i-ins-okp}}\,({\it{ins\/}}, {\it{i\/}})\index{i-ins-okp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cdr}}\,({\it{ins\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{add\_$<$c$>$\_x\_x\{n\}\/}} \\ 
{\bf then }{\rm{i-add\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-okp} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\_$<$tsp$>$\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\_$<$tsp$>$\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\{a\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
{\bf case = }{\it{add\_tsp\_*\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_tsp\_*\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-okp} \\ 
{\bf case = }{\it{add\_tsp\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_tsp\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-okp} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\{i\}\_x\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\{n\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
{\bf case = }{\it{add\_pc\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_pc\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-okp} \\ 
{\bf case = }{\it{add\_x\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-okp} \\ 
{\bf case = }{\it{add\_x\{n\}\_csp\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_x\{n\}\_csp-okp}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-okp} \\ 
{\bf case = }{\it{addc\_$<$c$>$\_x\{n\}\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
{\bf case = }{\it{addc\_$<$v$>$\_x\{i\}\_y\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
{\bf case = }{\it{and\_$<$tsp$>$\{v\}\_x\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
{\bf case = }{\it{and\_$<$tsp$>$\{b\}\_x\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
{\bf case = }{\it{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-okp}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp} \\ 
{\bf case = }{\it{cpop\_cfp\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpop\_cfp-okp}}\,({\it{i\/}})\index{i-cpop\_cfp-okp} \\ 
{\bf case = }{\it{cpop\_pc\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpop\_pc-okp}}\,({\it{i\/}})\index{i-cpop\_pc-okp} \\ 
{\bf case = }{\it{cpush\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpush\_*-okp}}\,({\it{i\/}})\index{i-cpush\_*-okp} \\ 
{\bf case = }{\it{cpush\_$<$tsp$>$+\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpush\_$<$tsp$>$+-okp}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-okp} \\ 
{\bf case = }{\it{cpush\_cfp\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpush\_cfp-okp}}\,({\it{i\/}})\index{i-cpush\_cfp-okp} \\ 
{\bf case = }{\it{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
{\bf case = }{\it{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
{\bf case = }{\it{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
{\bf case = }{\it{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
{\bf case = }{\it{incr\_y\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-incr\_y\_y\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-okp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{i-int-to-nat-okp}}\,({\it{i\/}})\index{i-int-to-nat-okp} \\ 
{\bf case = }{\it{jump-n\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-n\_x-okp}}\,({\it{i\/}})\index{i-jump-n\_x-okp} \\ 
{\bf case = }{\it{jump-nn\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-nn\_x-okp}}\,({\it{i\/}})\index{i-jump-nn\_x-okp} \\ 
{\bf case = }{\it{jump-nz\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-nz\_x-okp}}\,({\it{i\/}})\index{i-jump-nz\_x-okp} \\ 
{\bf case = }{\it{jump-z\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-z\_x-okp}}\,({\it{i\/}})\index{i-jump-z\_x-okp} \\ 
{\bf case = }{\it{jump\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump\_*-okp}}\,({\it{i\/}})\index{i-jump\_*-okp} \\ 
{\bf case = }{\it{jump\_x\{subr\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump\_x\{subr\}-okp}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-okp} \\ 
{\bf case = }{\it{lsr\_$<$c$>$\_x\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp} \\ 
{\bf case = }{\it{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
{\bf case = }{\it{move-c\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-c\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-okp} \\ 
{\bf case = }{\it{move-v\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-v\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-okp} \\ 
{\bf case = }{\it{move-z\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-z\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-okp} \\ 
{\bf case = }{\it{move-n\_x\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-n\_x\_*-okp}}\,({\it{i\/}})\index{i-move-n\_x\_*-okp} \\ 
{\bf case = }{\it{move\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-okp} \\ 
{\bf case = }{\it{move\_$<$x\{a\}$>$\_$<$tsp$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp} \\ 
{\bf case = }{\it{move\_$<$x\{s\}$>$\_$<$tsp$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp} \\ 
{\bf case = }{\it{move\_cfp\_csp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_cfp\_csp-okp}}\,({\it{i\/}})\index{i-move\_cfp\_csp-okp} \\ 
{\bf case = }{\it{move\_csp\_cfp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_csp\_cfp-okp}}\,({\it{i\/}})\index{i-move\_csp\_cfp-okp} \\ 
{\bf case = }{\it{move\_x\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_*-okp}}\,({\it{i\/}})\index{i-move\_x\_*-okp} \\ 
{\bf case = }{\it{move\_x\_$<$x\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-okp} \\ 
{\bf case = }{\it{move\_x\_tsp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_tsp-okp}}\,({\it{i\/}})\index{i-move\_x\_tsp-okp} \\ 
{\bf case = }{\it{move\_x\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_x-okp}}\,({\it{i\/}})\index{i-move\_x\_x-okp} \\ 
{\bf case = }{\it{move\_y\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_y\_*-okp}}\,({\it{i\/}})\index{i-move\_y\_*-okp} \\ 
{\bf case = }{\it{move\_y\_$<$y\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_y\_$<$y\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-okp} \\ 
{\bf case = }{\it{move\_y\_tsp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_y\_tsp-okp}}\,({\it{i\/}})\index{i-move\_y\_tsp-okp} \\ 
{\bf case = }{\it{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
{\bf case = }{\it{not\_$<$tsp$>$\_$<$tsp$>$\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
{\bf case = }{\it{or\_$<$tsp$>$\{v\}\_x\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp} \\ 
{\bf case = }{\it{or\_$<$tsp$>$\{b\}\_x\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp} \\ 
{\bf case = }{\it{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp} \\ 
{\bf case = }{\it{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp} \\ 
{\bf case = }{\it{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{a\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
{\bf case = }{\it{sub\_x\{s\}\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_x\{s\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-okp} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{i\}\_x\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{n\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{s\}\_x\{s\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp} \\ 
{\bf case = }{\it{sub\_$<$z$>$\_x\{s\}\_y\{s\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp} \\ 
{\bf case = }{\it{subb\_$<$c$>$\_x\{n\}\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
{\bf case = }{\it{subb\_$<$v$>$\_x\{i\}\_y\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
{\bf case = }{\it{tpop\_$<$c$>$\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_$<$c$>$\_x-okp}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-okp} \\ 
{\bf case = }{\it{tpop\_$<$x\{a\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-okp} \\ 
{\bf case = }{\it{tpop\_$<$x\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-okp} \\ 
{\bf case = }{\it{tpop\_pc\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_pc-okp}}\,({\it{i\/}})\index{i-tpop\_pc-okp} \\ 
{\bf case = }{\it{tpop\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_x-okp}}\,({\it{i\/}})\index{i-tpop\_x-okp} \\ 
{\bf case = }{\it{tpop\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_y-okp}}\,({\it{i\/}})\index{i-tpop\_y-okp} \\ 
{\bf case = }{\it{tpop\{v\}\_$<$z$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{v\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-okp} \\ 
{\bf case = }{\it{tpop\{b\}\_$<$z$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{b\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-okp} \\ 
{\bf case = }{\it{tpop\{i\}\_$<$zn$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{i\}\_$<$zn$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-okp} \\ 
{\bf case = }{\it{tpop\{n\}\_$<$z$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{n\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-okp} \\ 
{\bf case = }{\it{tpush\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_*-okp}}\,({\it{i\/}})\index{i-tpush\_*-okp} \\ 
{\bf case = }{\it{tpush\_$<$x\{a\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-okp} \\ 
{\bf case = }{\it{tpush\_$<$x\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-okp} \\ 
{\bf case = }{\it{tpush\_csp\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_csp-okp}}\,({\it{i\/}})\index{i-tpush\_csp-okp} \\ 
{\bf case = }{\it{tpush\_tsp\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_tsp-okp}}\,({\it{i\/}})\index{i-tpush\_tsp-okp} \\ 
{\bf case = }{\it{tpush\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_x-okp}}\,({\it{i\/}})\index{i-tpush\_x-okp} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\_$<$tsp$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\{v\}\_x\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\{b\}\_*\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\{b\}\_x\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
{\bf case = }{\it{xor\_$<$z$>$\_$<$tsp$>$\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp}}\,({\it{i\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-ins-step} \\  
\=\+{\rm{i-ins-step}}\,({\it{ins\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{add\_$<$c$>$\_x\_x\{n\}\/}} \\ 
{\bf then }{\rm{i-add\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-step} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\_$<$tsp$>$\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\_$<$tsp$>$\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\{a\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step} \\ 
{\bf case = }{\it{add\_tsp\_*\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_tsp\_*\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-step} \\ 
{\bf case = }{\it{add\_tsp\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_tsp\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-step} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\{i\}\_x\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step} \\ 
{\bf case = }{\it{add\_$<$tsp$>$\{n\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step} \\ 
{\bf case = }{\it{add\_pc\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_pc\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-step} \\ 
{\bf case = }{\it{add\_x\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-step} \\ 
{\bf case = }{\it{add\_x\{n\}\_csp\/}} \\ 
{\bf $\;\;$then }{\rm{i-add\_x\{n\}\_csp-step}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-step} \\ 
{\bf case = }{\it{addc\_$<$c$>$\_x\{n\}\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step} \\ 
{\bf case = }{\it{addc\_$<$v$>$\_x\{i\}\_y\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step} \\ 
{\bf case = }{\it{and\_$<$tsp$>$\{v\}\_x\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step} \\ 
{\bf case = }{\it{and\_$<$tsp$>$\{b\}\_x\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step} \\ 
{\bf case = }{\it{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step} \\ 
{\bf case = }{\it{cpop\_cfp\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpop\_cfp-step}}\,({\it{i\/}})\index{i-cpop\_cfp-step} \\ 
{\bf case = }{\it{cpop\_pc\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpop\_pc-step}}\,({\it{i\/}})\index{i-cpop\_pc-step} \\ 
{\bf case = }{\it{cpush\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpush\_*-step}}\,({\it{i\/}})\index{i-cpush\_*-step} \\ 
{\bf case = }{\it{cpush\_$<$tsp$>$+\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpush\_$<$tsp$>$+-step}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-step} \\ 
{\bf case = }{\it{cpush\_cfp\/}} \\ 
{\bf $\;\;$then }{\rm{i-cpush\_cfp-step}}\,({\it{i\/}})\index{i-cpush\_cfp-step} \\ 
{\bf case = }{\it{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\ 
{\bf case = }{\it{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\ 
{\bf case = }{\it{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\ 
{\bf case = }{\it{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step} \\ 
{\bf case = }{\it{incr\_y\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-incr\_y\_y\{n\}-step}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-step} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{i-int-to-nat-step}}\,({\it{i\/}})\index{i-int-to-nat-step} \\ 
{\bf case = }{\it{jump-n\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-n\_x-step}}\,({\it{i\/}})\index{i-jump-n\_x-step} \\ 
{\bf case = }{\it{jump-nn\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-nn\_x-step}}\,({\it{i\/}})\index{i-jump-nn\_x-step} \\ 
{\bf case = }{\it{jump-nz\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-nz\_x-step}}\,({\it{i\/}})\index{i-jump-nz\_x-step} \\ 
{\bf case = }{\it{jump-z\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump-z\_x-step}}\,({\it{i\/}})\index{i-jump-z\_x-step} \\ 
{\bf case = }{\it{jump\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump\_*-step}}\,({\it{i\/}})\index{i-jump\_*-step} \\ 
{\bf case = }{\it{jump\_x\{subr\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-jump\_x\{subr\}-step}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-step} \\ 
{\bf case = }{\it{lsr\_$<$c$>$\_x\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step} \\ 
{\bf case = }{\it{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\ 
{\bf case = }{\it{move-c\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-c\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-step} \\ 
{\bf case = }{\it{move-v\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-v\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-step} \\ 
{\bf case = }{\it{move-z\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-z\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-step} \\ 
{\bf case = }{\it{move-n\_x\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move-n\_x\_*-step}}\,({\it{i\/}})\index{i-move-n\_x\_*-step} \\ 
{\bf case = }{\it{move\_$<$tsp$>$\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-step} \\ 
{\bf case = }{\it{move\_$<$x\{a\}$>$\_$<$tsp$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step} \\ 
{\bf case = }{\it{move\_$<$x\{s\}$>$\_$<$tsp$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step} \\ 
{\bf case = }{\it{move\_cfp\_csp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_cfp\_csp-step}}\,({\it{i\/}})\index{i-move\_cfp\_csp-step} \\ 
{\bf case = }{\it{move\_csp\_cfp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_csp\_cfp-step}}\,({\it{i\/}})\index{i-move\_csp\_cfp-step} \\ 
{\bf case = }{\it{move\_x\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_*-step}}\,({\it{i\/}})\index{i-move\_x\_*-step} \\ 
{\bf case = }{\it{move\_x\_$<$x\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-step} \\ 
{\bf case = }{\it{move\_x\_tsp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_tsp-step}}\,({\it{i\/}})\index{i-move\_x\_tsp-step} \\ 
{\bf case = }{\it{move\_x\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_x\_x-step}}\,({\it{i\/}})\index{i-move\_x\_x-step} \\ 
{\bf case = }{\it{move\_y\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_y\_*-step}}\,({\it{i\/}})\index{i-move\_y\_*-step} \\ 
{\bf case = }{\it{move\_y\_$<$y\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_y\_$<$y\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-step} \\ 
{\bf case = }{\it{move\_y\_tsp\/}} \\ 
{\bf $\;\;$then }{\rm{i-move\_y\_tsp-step}}\,({\it{i\/}})\index{i-move\_y\_tsp-step} \\ 
{\bf case = }{\it{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step} \\ 
{\bf case = }{\it{not\_$<$tsp$>$\_$<$tsp$>$\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step} \\ 
{\bf case = }{\it{or\_$<$tsp$>$\{v\}\_x\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step} \\ 
{\bf case = }{\it{or\_$<$tsp$>$\{b\}\_x\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step} \\ 
{\bf case = }{\it{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step} \\ 
{\bf case = }{\it{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step} \\ 
{\bf case = }{\it{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{a\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step} \\ 
{\bf case = }{\it{sub\_x\{s\}\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_x\{s\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-step} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{i\}\_x\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{n\}\_x\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step} \\ 
{\bf case = }{\it{sub\_$<$tsp$>$\{s\}\_x\{s\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step} \\ 
{\bf case = }{\it{sub\_$<$z$>$\_x\{s\}\_y\{s\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step} \\ 
{\bf case = }{\it{subb\_$<$c$>$\_x\{n\}\_y\{n\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step} \\ 
{\bf case = }{\it{subb\_$<$v$>$\_x\{i\}\_y\{i\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step} \\ 
{\bf case = }{\it{tpop\_$<$c$>$\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_$<$c$>$\_x-step}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-step} \\ 
{\bf case = }{\it{tpop\_$<$x\{a\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-step} \\ 
{\bf case = }{\it{tpop\_$<$x\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-step} \\ 
{\bf case = }{\it{tpop\_pc\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_pc-step}}\,({\it{i\/}})\index{i-tpop\_pc-step} \\ 
{\bf case = }{\it{tpop\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_x-step}}\,({\it{i\/}})\index{i-tpop\_x-step} \\ 
{\bf case = }{\it{tpop\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\_y-step}}\,({\it{i\/}})\index{i-tpop\_y-step} \\ 
{\bf case = }{\it{tpop\{v\}\_$<$z$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{v\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-step} \\ 
{\bf case = }{\it{tpop\{b\}\_$<$z$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{b\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-step} \\ 
{\bf case = }{\it{tpop\{i\}\_$<$zn$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{i\}\_$<$zn$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-step} \\ 
{\bf case = }{\it{tpop\{n\}\_$<$z$>$\_y\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpop\{n\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-step} \\ 
{\bf case = }{\it{tpush\_*\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_*-step}}\,({\it{i\/}})\index{i-tpush\_*-step} \\ 
{\bf case = }{\it{tpush\_$<$x\{a\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-step} \\ 
{\bf case = }{\it{tpush\_$<$x\{s\}$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-step} \\ 
{\bf case = }{\it{tpush\_csp\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_csp-step}}\,({\it{i\/}})\index{i-tpush\_csp-step} \\ 
{\bf case = }{\it{tpush\_tsp\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_tsp-step}}\,({\it{i\/}})\index{i-tpush\_tsp-step} \\ 
{\bf case = }{\it{tpush\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-tpush\_x-step}}\,({\it{i\/}})\index{i-tpush\_x-step} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\_$<$tsp$>$\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\{v\}\_x\{v\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\{b\}\_*\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step} \\ 
{\bf case = }{\it{xor\_$<$tsp$>$\{b\}\_x\{b\}\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step} \\ 
{\bf case = }{\it{xor\_$<$z$>$\_$<$tsp$>$\_x\/}} \\ 
{\bf $\;\;$then }{\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step} \\ 
{\bf otherwise }{\rm{i-halt}}\,({\it{i\/}}, {\tt{'}}{\tt{run}})\index{i-halt}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-step1} \\  
\=\+{\rm{i-step1}}\,({\it{ins\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i-step1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
{\bf then }\=\+{\bf if }{\rm{i-ins-okp}}\,({\it{ins\/}}, {\it{i\/}})\index{i-ins-okp}$\;\;${\bf then }{\rm{i-ins-step}}\,({\it{ins\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step} \\ 
{\bf else }{\rm{i-halt}}\,({\it{i\/}}, {\rm{x-y-error-msg}}\,({\tt{'}}{\tt{i}}, {\rm{car}}\,({\it{ins\/}}))\index{x-y-error-msg})\index{i-halt}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{i-halt}}\,({\it{i\/}}, {\tt{'}}{\tt{state-not-okp}})\index{i-halt}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i-step} \\  
\=\+{\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }{\rm{i-step1}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}}, {\it{load-addr\/}})\index{i-step1} \\ 
{\bf else }{\it{i\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{i} \\  
\=\+{\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{i\/}} \\ 
{\bf else }{\rm{i}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step}, {\it{n\/}} $-\;1$, {\it{load-addr\/}})\index{i}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{list-of-nats} \\  
\=\+{\rm{list-of-nats}}\,({\it{lst\/}})\index{list-of-nats} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{v-to-nat}}\,({\rm{car}}\,({\it{lst\/}}))\index{v-to-nat}, {\rm{list-of-nats}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{list-of-nats})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Book: i-m.events.  We now develop the proof that the i machine is
; implemented on the m machine.

; I first develop the necessary rules about the FM9001 alu.

; Each of the alu theorems is about the bv-alu-cv function.
; That function returns a triple.  We are most interested in
; the bv and c components of the triple.  We are occasionally
; interested in the v component, but only for those instructions
; that we use that set the v flag.

; For each opcode op, each component, cmp, in {bv c v}
; and type, t, in {bitv nat tc} we have a theorem called
; alu-thm_t-cmp-op.  For example, we have alu-thm_BITV-BV-MOVE,
; which gives the BITV interpretation of the BV component of
; the alu on a MOVE opcode.  We omit some combinations because
; they do not make much sense.  Occasionally we have to prove
; conflicting rules -- rules that rewrite the same lhs.  This
; happens when the opcode has a natural interpretation for more
; than one type.  When it happens we note it.

\end{verbatim}
\noindent{\sc Event}:   Enable v-buf-works.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-move-15 \\ \index{alu-thm\_bitv-bv-move-15}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\it{a\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-move-15 \\ \index{alu-thm\_bitv-c-move-15}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-not \\ \index{alu-thm\_bitv-bv-not}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-not}}\,({\it{a\/}})\index{v-not})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-not \\ \index{alu-thm\_bitv-c-not}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-and \\ \index{alu-thm\_bitv-bv-and}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-and}}\,({\it{a\/}}, {\it{b\/}})\index{v-and})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-and \\ \index{alu-thm\_bitv-c-and}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-or \\ \index{alu-thm\_bitv-bv-or}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{f}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-or}}\,({\it{a\/}}, {\it{b\/}})\index{v-or})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-or \\ \index{alu-thm\_bitv-c-or}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{f}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-xor \\ \index{alu-thm\_bitv-bv-xor}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-xor}}\,({\it{a\/}}, {\it{b\/}})\index{v-xor})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-xor \\ \index{alu-thm\_bitv-c-xor}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\bf{f}})\-
\end{tabbing}

\begin{verbatim}; Conflict:  We will have both a BITV and a NAT interpretation of the
; BV and C produced by the LSR instruction.  Here is the BITV case:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-lsr \\ \index{alu-thm\_bitv-bv-lsr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-lsr}}\,({\it{a\/}})\index{v-lsr})\-
\end{tabbing}

\begin{verbatim}; Note that we have an additional hypothesis below, (listp a).

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-lsr \\ \index{alu-thm\_bitv-c-lsr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{listp}}\,({\it{a\/}}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\rm{bitn}}\,({\it{a\/}}, {\tt{1}})\index{bitn})\-
\end{tabbing}

\begin{verbatim}; Conflict:  We will have both a BITV and a TC interpretation of the BV
; produced by the ASR instruction.  

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-asr \\ \index{alu-thm\_bitv-bv-asr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-asr}}\,({\it{a\/}})\index{v-asr})\-
\end{tabbing}

\begin{verbatim}; Note that we have an additional hypothesis below, (listp a).

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-asr \\ \index{alu-thm\_bitv-c-asr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{listp}}\,({\it{a\/}}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{c} $=$ {\rm{bitn}}\,({\it{a\/}}, {\tt{1}})\index{bitn})\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-bv-ror \\ \index{alu-thm\_bitv-bv-ror}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{f}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{bv} $=$ {\rm{v-ror}}\,({\it{a\/}}, {\it{c\/}})\index{v-ror})\-
\end{tabbing}

\begin{verbatim}; To prove the next one we need another piece of help.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  boolp-truep \\ \index{boolp-truep}
{\rm{boolp}}\,({\it{c\/}})\index{boolp} $\rightarrow$ ({\rm{truep}}\,({\it{c\/}}) $=$ {\it{c\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-c-ror \\ \index{alu-thm\_bitv-c-ror}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{f}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{c} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{length}}\,({\it{a\/}})\index{length} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{c\/}} \\ 
{\bf else }{\rm{bitn}}\,({\it{a\/}}, {\tt{1}})\index{bitn}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\begin{verbatim}; Here are the natural number interpretations of the bv and c flag of the
; alu.

; Our first step is to get the natural interpretation lemma as a rewrite
; rule and shut down v-alu:

\end{verbatim}
\noindent{\sc Event}:   Disable v-alu.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  v-alu-correct-nat-rewriter \\ \index{v-alu-correct-nat-rewriter}
{\rm{bv2p}}\,({\it{a\/}}, {\it{b\/}})\index{bv2p} $\rightarrow$ ({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\it{op\/}})\index{v-alu} $=$ {\rm{v-alu-nat}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\it{op\/}})\index{v-alu-nat})
\end{tabbing}

\begin{verbatim}; The original (FM8502) Piton proofs were based on alu interpretation
; lemmas proved for FM8502.  When FM9001 was done, Matt Kaufmann was given
; a free hand to formulate the alu interpretation lemmas for it.  His
; algebraic expressions were different than those used for FM8502, even
; though they were equivalent.  Rather than redesign the Piton proof to
; use Matt's formulation, we take the approach of proving the old-style
; algebraic formulations from Matt's.  That is what we do now.

; This gets exceptionally tedious for the twos-complement stuff.  I essentially
; just use brute force to wade through this stuff.  The general scheme was
; was to attack the top-level theorems with a fixed set of rules enabled,
; generating certain goals (all phrased in integer terms) and then attack
; each of those goals as a separate lemma with the integer stuff enabled.
; Those integer lemmas are killers, taking hundreds or thousands of seconds
; each.  But it was better than thinking...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-lsr \\ \index{alu-thm\_nat-bv-lsr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $\div$ {\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-lsr \\ \index{alu-thm\_nat-c-lsr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{c} $=$ (({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} ${}${\bf{mod}}${}$ {\tt{2}}) $\not\simeq {\tt{0}}$))\-
\end{tabbing}


\noindent{\sc Event}:   Enable plus-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  pathological-difference \\ \index{pathological-difference}
({\it{a\/}} $\not<$ {\it{b\/}}) $\rightarrow$ (({\it{b\/}} $-$ {\it{a\/}}) $=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-difference-plus \\ \index{difference-difference-plus}
((({\it{b\/}} $+$ {\it{e\/}}) $-$ {\it{a\/}}) $-$ {\it{e\/}}) $=$ ({\it{b\/}} $-$ {\it{a\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable lessp-v-to-nat-exp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  remainder-difference-hack \\ \index{remainder-difference-hack}
({\it{b\/}} $<$ {\it{e\/}}) $\rightarrow$ ((({\it{b\/}} $-$ {\it{a\/}}) ${}${\bf{mod}}${}$ {\it{e\/}}) $=$ ({\it{b\/}} $-$ {\it{a\/}}))
\end{tabbing}
           
\begin{tabbing}{\sc Theorem}:  difference-difference-hack \\ \index{difference-difference-hack}
({\it{a\/}} $\not<$ {\it{b\/}}) $\rightarrow$ (({\it{e\/}} $-$ ({\it{a\/}} $-$ {\it{b\/}})) $=$ (({\it{b\/}} $+$ {\it{e\/}}) $-$ {\it{a\/}}))
\end{tabbing}

\begin{verbatim}; Conflict:  We will have both a NAT and a TC interpretation of the BV
; produced by the SUB instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-sub \\ \index{alu-thm\_nat-bv-sub}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $\not<$ {\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} \\ 
{\bf then }{\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $-$ {\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,(\=\+\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp} \\ 
$-$$\;\;\;\;$({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $-$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-sub \\ \index{alu-thm\_nat-c-sub}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{c} $=$ ({\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $<$ {\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}))\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{carry} \\  
\=\+{\rm{carry}}\,({\it{c\/}})\index{carry} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{c\/}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Conflict:  We will have both a NAT and a TC interpretation of the the
; BV produced by the SUBB instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-subb \\ \index{alu-thm\_nat-bv-subb}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $<$ ({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry}) \\ 
{\bf then }{\rm{nat-to-v}}\,(\=\+\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\-\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,(\=\+\=\+{\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} \\ 
$-$$\;\;\;\;$({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry})\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-subb \\ \index{alu-thm\_nat-c-subb}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{c} \\ 
$=$$\;\;\;\;$({\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $<$ ({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry})))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable pathological-difference.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-difference-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Disable lessp-v-to-nat-exp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable remainder-difference-hack.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-difference-hack.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-nat-to-v.

\addvspace{18pt}

\noindent{\sc Event}:   Enable commutativity-of-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable associativity-of-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable plus-add1.

\addvspace{18pt}

\noindent{\sc Event}:   Enable plus-0.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-commutes.

\addvspace{18pt}

\noindent{\sc Event}:   Enable associativity-of-times.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-distributes-over-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-add1-again.

\addvspace{18pt}

\noindent{\sc Event}:   Enable times-1.

\addvspace{18pt}
\begin{tabbing}{\sc Theorem}:  plus-commutes2 \\ \index{plus-commutes2}
({\it{x\/}} $+$ ({\it{y\/}} $+$ {\it{z\/}})) $=$ ({\it{y\/}} $+$ ({\it{x\/}} $+$ {\it{z\/}}))
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  times-commutes2 \\ \index{times-commutes2}
({\it{x\/}} $*$ ({\it{y\/}} $*$ {\it{z\/}})) $=$ ({\it{y\/}} $*$ ({\it{x\/}} $*$ {\it{z\/}}))
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  remainder-lessp \\ \index{remainder-lessp}
(({\it{x\/}} ${}${\bf{mod}}${}$ {\it{y\/}}) $<$ {\it{y\/}}) $=$ ({\it{y\/}} $\not\simeq {\tt{0}}$)
\end{tabbing}


\noindent{\sc Event}:   Enable remainder-quotient-elim.

\addvspace{18pt}
\begin{tabbing}{\sc Theorem}:  remainder-quotient-rewrite \\ \index{remainder-quotient-rewrite}
(({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{y\/}} $\not\simeq {\tt{0}}$)) $\rightarrow$ ((({\it{x\/}} ${}${\bf{mod}}${}$ {\it{y\/}}) $+$ ({\it{y\/}} $*$ ({\it{x\/}} $\div$ {\it{y\/}}))) $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-nat-nat-to-v \\ \index{v-to-nat-nat-to-v}
({\it{n\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{len\/}})\index{exp}) $\rightarrow$ ({\rm{v-to-nat}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\it{len\/}})\index{nat-to-v})\index{v-to-nat} $=$ {\rm{fix}}\,({\it{n\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-0-exp \\ \index{lessp-0-exp}
({\it{i\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ({\tt{0}} $<$ {\rm{exp}}\,({\it{i\/}}, {\it{j\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-plus \\ \index{difference-plus}
(({\it{a\/}} $+$ {\it{b\/}}) $-$ {\it{b\/}}) $=$ {\rm{fix}}\,({\it{a\/}})
\end{tabbing}

\begin{verbatim}; The following lemma is a way to get linear arithmetic to address the
; question "is a less than b" when opening up (remainder a b).

\end{verbatim}\begin{tabbing}{\sc Theorem}:  remainder-opener \\ \index{remainder-opener}
({\it{a\/}} $<$ {\it{b\/}}) $\rightarrow$ (({\it{a\/}} ${}${\bf{mod}}${}$ {\it{b\/}}) $=$ {\rm{fix}}\,({\it{a\/}}))
\end{tabbing}


\noindent{\sc Event}:   Enable lessp-v-to-nat-exp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-v-to-nat-exp-gen \\ \index{lessp-v-to-nat-exp-gen}
{\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-hack2 \\ \index{remainder-hack2}
(({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat} $-\;1$) ${}${\bf{mod}}${}$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{v\/}})\index{length})\index{exp}) $=$ ({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat} $-\;1$)
\end{tabbing}


\noindent{\sc Event}:   Enable difference-x-1.

\addvspace{18pt}

\begin{verbatim}; Conflict:  We will have both a NAT and a TC interpretation of the the
; BV produced by the DECR instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-decr \\ \index{alu-thm\_nat-bv-decr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $\simeq {\tt{0}}$ \\ 
{\bf then }{\rm{nat-to-v}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp} $-\;1$, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $-\;1$, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-decr \\ \index{alu-thm\_nat-c-decr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{c} $=$ ({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $\simeq {\tt{0}}$))\-
\end{tabbing}

\begin{verbatim}; Conflict:  We will have both a NAT and a TC interpretation of the the
; BV produced by the ADD instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-add \\ \index{alu-thm\_nat-bv-add}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}) $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp} \\ 
{\bf then }{\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,(\=\+\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}) \\ 
${}${\bf{mod}}${}$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-add \\ \index{alu-thm\_nat-c-add}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{c} \\ 
$=$$\;\;\;\;$(({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}) $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}))\-\-
\end{tabbing}

\begin{verbatim}; Conflict:  We will have both a NAT and a TC interpretation of the the
; BV produced by the ADDC instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-addc \\ \index{alu-thm\_nat-bv-addc}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry}) \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}\- \\ 
{\bf then }{\rm{nat-to-v}}\,(\=\+{\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,(\=\+\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry}) \\ 
${}${\bf{mod}}${}$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-addc \\ \index{alu-thm\_nat-c-addc}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{c} \\ 
$=$$\;\;\;\;$(\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $+$ {\rm{carry}}\,({\it{c\/}})\index{carry}) \\ 
$\not<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\-)\-\-
\end{tabbing}


\begin{verbatim}; Conflict:  We will have both a NAT and a TC interpretation of the the
; BV produced by the INCR instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-bv-incr \\ \index{alu-thm\_nat-bv-incr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }($1\;+$ {\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}) $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp} \\ 
{\bf then }{\rm{nat-to-v}}\,($1\;+$ {\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_nat-c-incr \\ \index{alu-thm\_nat-c-incr}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{c}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{c} \\ 
$=$$\;\;\;\;$(($1\;+$ {\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}) $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}))\-\-
\end{tabbing}


\begin{verbatim}; Conflict:  Each of the TC interpretations conflicts with some other rule.

; Warning: all of these tc guys had (hands-off if) hints!

\end{verbatim}
\noindent{\sc Event}:   Disable v-alu-correct-nat-rewriter.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  v-alu-correct-int-rewriter \\ \index{v-alu-correct-int-rewriter}
({\rm{bv2p}}\,({\it{a\/}}, {\it{b\/}})\index{bv2p} $\wedge$ {\rm{listp}}\,({\it{a\/}})) $\rightarrow$ ({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\it{op\/}})\index{v-alu} $=$ {\rm{v-alu-int}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\it{op\/}})\index{v-alu-int})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{mod2} \\  
\=\+{\rm{mod2}}\,({\it{x\/}})\index{mod2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{negativep}}\,({\it{x\/}})$\;\;${\bf then }$-$ (($1\;+$ {\rm{negative-guts}}\,({\it{x\/}})) $\div$ {\tt{2}}) \\ 
{\bf else }{\it{x\/}} $\div$ {\tt{2}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable quotient-plus-x-x-2.

\addvspace{18pt}

\begin{verbatim}; A lemma quotient-add1-plus-x-x-2 exists in fm9001.events, but it did
; not originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-quotient-add1-plus-x-x-2 \\ \index{my-quotient-add1-plus-x-x-2}
(($1\;+$ ({\it{x\/}} $+$ {\it{x\/}})) $\div$ {\tt{2}}) $=$ {\rm{fix}}\,({\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  idiv-is-mod2 \\ \index{idiv-is-mod2}
\=\+{\rm{idiv}}\,({\it{x\/}}, {\tt{2}})\index{idiv} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{integerp}}\,({\it{x\/}})\index{integerp}$\;\;${\bf then }{\rm{mod2}}\,({\it{x\/}})\index{mod2} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable idiv.

\addvspace{18pt}

\begin{verbatim}; A lemma integerp-v-to-int exists in fm9001.events, but it did not
; originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-integerp-v-to-int \\ \index{my-integerp-v-to-int}
{\rm{integerp}}\,({\rm{v-to-int}}\,({\it{v\/}})\index{v-to-int})\index{integerp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-asr \\ \index{alu-thm\_tc-bv-asr}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{mod2}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{mod2}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{tc-in-rangep} \\  
\=\+{\rm{tc-in-rangep}}\,({\it{x\/}}, {\it{n\/}})\index{tc-in-rangep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{negativep}}\,({\it{x\/}})$\;\;${\bf then }{\rm{exp}}\,({\tt{2}}, {\it{n\/}} $-\;1$)\index{exp} $\not<$ {\rm{negative-guts}}\,({\it{x\/}}) \\ 
{\bf else }{\it{x\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{n\/}} $-\;1$)\index{exp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{tc-add}$\;\;$
{\rm{tc-add}}\,({\it{x\/}}, {\it{y\/}})\index{tc-add} $=$ {\rm{iplus}}\,({\it{x\/}}, {\it{y\/}})\index{iplus}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{tc-minus}$\;\;$
{\rm{tc-minus}}\,({\it{x\/}})\index{tc-minus} $=$ {\rm{ineg}}\,({\it{x\/}})\index{ineg}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  iplus-0 \\ \index{iplus-0}
{\rm{iplus}}\,({\it{x\/}}, {\tt{0}})\index{iplus} $=$ {\rm{fix-int}}\,({\it{x\/}})\index{fix-int}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-length-0 \\ \index{equal-length-0}
({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\tt{0}}) $=$ ({\it{x\/}} $\simeq\;${{\bf{nil}}}${}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  negativep-ineg \\ \index{negativep-ineg}
(({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{x\/}} $\not=$ {\tt{0}})) $\rightarrow$ {\rm{negativep}}\,({\rm{ineg}}\,({\it{x\/}})\index{ineg})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-equal-exp-0 \\ \index{not-equal-exp-0}
({\it{x\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ({\rm{exp}}\,({\it{x\/}}, {\it{y\/}})\index{exp} $\not=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ineg-exp-2-x \\ \index{ineg-exp-2-x}
{\rm{ineg}}\,({\rm{exp}}\,({\tt{2}}, {\it{x\/}})\index{exp})\index{ineg} $=$ ($-$ {\rm{exp}}\,({\tt{2}}, {\it{x\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  diff-diff \\ \index{diff-diff}
\=\+(({\it{a\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{b\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{a\/}} $-$ ({\it{a\/}} $-$ {\it{b\/}})) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}} $<$ {\it{b\/}}$\;\;${\bf then }{\it{a\/}} \\ 
{\bf else }{\it{b\/}}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-sub-lemma \\ \index{alu-thm\_tc-bv-sub-lemma}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,($-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{verbatim}; Note: This was proved with the lower case a's replaced by b's, but I
; have now assumed it as shown below (except that the concluding
; equality was reversed).  Under that assumption, I can prove the
; tc-bv-sub lemma I need.  However, I now want to reverse the
; direction of the concluding equality so as not to take the chance
; that it loops.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-sub-lemma2 \\ \index{alu-thm\_tc-bv-sub-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}  

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-sub \\ \index{alu-thm\_tc-bv-sub}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\-\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\index{tc-add} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\-\index{tc-add}) \\ 
{\bf then }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, \\ 
{\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\-\index{tc-add})\-\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+$-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, \\ 
{\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\-\index{tc-add})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-sub \\ \index{alu-thm\_tc-v-sub}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{v} \\ 
$=$$\;\;\;\;$($\neg$ {\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  diff-plus-cancellation-hack2 \\ \index{diff-plus-cancellation-hack2}
(({\it{a\/}} $+$ {\it{b\/}} $+$ {\it{c\/}} $+$ {\it{d\/}}) $-$ ({\it{b\/}} $+$ {\it{c\/}})) $=$ ({\it{a\/}} $+$ {\it{d\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  diff-plus-sub1-hack1 \\ \index{diff-plus-sub1-hack1}
({\it{a\/}} $<$ {\it{e\/}}) $\rightarrow$ ((({\it{b\/}} $+$ ({\it{e\/}} $-\;1$)) $-$ {\it{a\/}}) $=$ ({\it{b\/}} $+$ (({\it{e\/}} $-$ {\it{a\/}}) $-\;1$)))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-subb-lemma1 \\ \index{alu-thm\_tc-bv-subb-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus} \\ 
$\not<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,(\=\+$-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, \\ 
{\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  diff-plus-sub1-hack2 \\ \index{diff-plus-sub1-hack2}
\=\+(({\it{e\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{a\/}} $<$ {\it{e\/}})) \\ 
$\rightarrow$$\;\;\;\;$((({\it{b\/}} $+$ (({\it{e\/}} $-$ {\it{a\/}}) $-\;1$)) $-$ {\it{e\/}}) $=$ (({\it{b\/}} $+$ ({\it{e\/}} $-\;1$)) $-$ ({\it{a\/}} $+$ {\it{e\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-subb-lemma2-lemma1 \\ \index{alu-thm\_tc-bv-subb-lemma2-lemm!a1}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $\not=$ {\tt{0}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{nat-to-v}}\,(\=\+\=\+(\=\+{\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} \\ 
$+$$\;\;\;\;$((\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat})\- $-\;1$))\- \\ 
$-$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,(\=\+\=\+(\=\+{\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} \\ 
$+$$\;\;\;\;$((\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})\- $-\;1$))\- \\ 
$-$$\;\;\;\;$(\=\+{\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})\-\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable diff-plus-sub1-hack2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-subb-lemma2 \\ \index{alu-thm\_tc-bv-subb-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{ineg}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{ineg})\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-subb \\ \index{alu-thm\_tc-bv-subb}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-minus}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{carry}}\,({\it{c\/}})\index{carry})\-\index{tc-add})\index{tc-minus})\-\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-minus}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{carry}}\,({\it{c\/}})\index{carry})\index{tc-add})\index{tc-minus})\-\index{tc-add} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-minus}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{carry}}\,({\it{c\/}})\index{carry})\-\index{tc-add})\index{tc-minus})\-\index{tc-add}) \\ 
{\bf then }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, \\ 
{\rm{tc-minus}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{carry}}\,({\it{c\/}})\index{carry})\-\index{tc-add})\index{tc-minus})\-\index{tc-add})\-\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+$-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, \\ 
{\rm{tc-minus}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{carry}}\,({\it{c\/}})\index{carry})\-\index{tc-add})\index{tc-minus})\-\index{tc-add})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-subb \\ \index{alu-thm\_tc-v-subb}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{v} \\ 
$=$$\;\;\;\;$($\neg$ {\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-minus}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{carry}}\,({\it{c\/}})\index{carry})\index{tc-add})\index{tc-minus})\-\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-int-int-to-v-0 \\ \index{v-to-int-int-to-v-0}
{\rm{v-to-int}}\,({\rm{int-to-v}}\,({\tt{0}}, {\it{n\/}})\index{int-to-v})\index{v-to-int} $=$ {\tt{0}}
\end{tabbing}

\begin{verbatim}; A lemma length-int-to-v exists in fm9001.events, but it did not
; originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-length-int-to-v \\ \index{my-length-int-to-v}
{\rm{length}}\,({\rm{int-to-v}}\,({\it{x\/}}, {\it{n\/}})\index{int-to-v})\index{length} $=$ {\rm{fix}}\,({\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-decr-lemma1 \\ \index{alu-thm\_tc-bv-decr-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\tt{-1}}, $-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-decr-lemma2 \\ \index{alu-thm\_tc-bv-decr-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $<$ {\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\tt{-1}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}
                                                             
\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-decr \\ \index{alu-thm\_tc-bv-decr}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{tc-add}, {\rm{length}}\,({\it{a\/}})\index{length})\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{tc-add} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{-1}})\index{tc-add}) \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{tc-add}}\,({\tt{-1}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{tc-add})\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\tt{-1}}, $-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{tc-add})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}



\begin{tabbing}{\sc Theorem}:  iplus-0-2 \\ \index{iplus-0-2}
{\rm{iplus}}\,({\tt{0}}, {\it{x\/}})\index{iplus} $=$ {\rm{fix-int}}\,({\it{x\/}})\index{fix-int}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg-lemma1 \\ \index{alu-thm\_tc-bv-neg-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})) \\ 
$\wedge$$\;\;\;\;$({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{integerp}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{integerp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,($-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg-lemma2 \\ \index{alu-thm\_tc-bv-neg-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})) \\ 
$\wedge$$\;\;\;\;$({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;${\rm{integerp}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{integerp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,($-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg-lemma3 \\ \index{alu-thm\_tc-bv-neg-lemma3}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $<$ {\rm{negative-guts}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{integerp}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{integerp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg-lemma4 \\ \index{alu-thm\_tc-bv-neg-lemma4}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $<$ {\rm{negative-guts}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})) \\ 
$\wedge$$\;\;\;\;${\rm{integerp}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{integerp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg-lemma5 \\ \index{alu-thm\_tc-bv-neg-lemma5}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})) \\ 
$\wedge$$\;\;\;\;$({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{integerp}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{integerp}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{int-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} $=$ {\rm{int-to-v}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg-lemma6 \\ \index{alu-thm\_tc-bv-neg-lemma6}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $\not<$ {\rm{negative-guts}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{integerp}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg})\index{integerp}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{int-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} $=$ {\rm{int-to-v}}\,({\rm{ineg}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{ineg}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-neg \\ \index{alu-thm\_tc-bv-neg}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{f}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,({\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus}) \\ 
{\bf then }{\rm{tc-add}}\,({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, {\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+$-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp}, \\ 
{\rm{tc-minus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{tc-minus})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  diff-plus-plus-plus-cancellation \\ \index{diff-plus-plus-plus-cancellatio!n}
(({\it{a\/}} $+$ ({\it{b\/}} $+$ {\it{e\/}})) $-$ {\it{e\/}}) $=$ ({\it{a\/}} $+$ {\it{b\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-add-lemma1 \\ \index{alu-thm\_tc-bv-add-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, $-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-add-lemma2 \\ \index{alu-thm\_tc-bv-add-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-add \\ \index{alu-thm\_tc-bv-add}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{tc-add} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{tc-add}) \\ 
{\bf then }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{tc-add})\-\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
$-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\-\index{tc-add})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma1 \\ \index{alu-thm\_tc-bv-addc-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,({\tt{1}}, $-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma2 \\ \index{alu-thm\_tc-bv-addc-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{iplus}}\,({\tt{1}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\index{iplus})\-\index{iplus}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{verbatim}; The following three lemmas are killers as far as performance goes.
; I prove them, use them to get the lemmas I need, and then
; disable them.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma3-killer1 \\ \index{alu-thm\_tc-bv-addc-lemma3-kille!r1}
\=\+(\=\+({\it{a\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{a\/}} $\not<$ (({\it{e\/}} $+$ {\it{e\/}}) $-$ {\it{b\/}})) \\ 
$\wedge$$\;\;\;\;$({\tt{1}} $\not<$ (({\it{e\/}} $+$ {\it{e\/}}) $-$ {\it{b\/}})) \\ 
$\wedge$$\;\;\;\;$({\it{b\/}} $<$ ({\it{e\/}} $+$ {\it{e\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$(($1\;+$ (({\it{a\/}} $+$ {\it{b\/}}) $-$ ({\it{e\/}} $+$ {\it{e\/}}))) $=$ {\it{a\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma3-killer2 \\ \index{alu-thm\_tc-bv-addc-lemma3-kille!r2}
\=\+(({\tt{1}} $\not<$ (({\it{e\/}} $+$ {\it{e\/}}) $-$ {\it{b\/}})) $\wedge$ ({\it{b\/}} $<$ ({\it{e\/}} $+$ {\it{e\/}}))) \\ 
$\rightarrow$$\;\;\;\;$((({\it{e\/}} $+$ {\it{e\/}}) $-$ {\it{b\/}}) $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma3-killer3 \\ \index{alu-thm\_tc-bv-addc-lemma3-kille!r3}
({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $<$ {\tt{1}}) $\rightarrow$ ({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma3-lemma1 \\ \index{alu-thm\_tc-bv-addc-lemma3-lemm!a1}
\=\+(\=\+({\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $<$ ({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})) \\ 
$\wedge$$\;\;\;\;$({\tt{1}} $\not<$ (\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\-) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} \\ 
$\not<$$\;\;\;\;$(\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{nat-to-v}}\,(\=\+$1\;+$ (\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}) \\ 
$-$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})\-)\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{nat-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v})\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma3-lemma2 \\ \index{alu-thm\_tc-bv-addc-lemma3-lemm!a2}
\=\+(\=\+({\tt{1}} $\not<$ (({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) $-$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})) \\ 
$\wedge$$\;\;\;\;$({\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $<$ ({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} \\ 
$<$$\;\;\;\;$(\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(({\rm{nat-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v} $=$ {\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat}, {\rm{length}}\,({\it{a\/}})\index{length})\index{nat-to-v}) $=$ {\bf{t}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable alu-thm\_tc-bv-addc-lemma3-killer1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable alu-thm\_tc-bv-addc-lemma3-killer2.

\addvspace{18pt} 

\noindent{\sc Event}:   Disable alu-thm\_tc-bv-addc-lemma3-killer3.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma3 \\ \index{alu-thm\_tc-bv-addc-lemma3}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma4-lemma1 \\ \index{alu-thm\_tc-bv-addc-lemma4-lemm!a1}
\=\+(\=\+({\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat} $<$ ({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})) \\ 
$\wedge$$\;\;\;\;$({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $<$ ({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\not<$$\;\;\;\;$(\=\+(\=\+(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$+$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp})\- \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat})\- \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;$(\=\+(\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat})\- \\ 
$+$$\;\;\;\;$((\=\+({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$-$$\;\;\;\;${\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat})\- $-\;1$))\-)\- \\ 
$=$$\;\;\;\;$($1\;+$ (\=\+({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $+$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}) \\ 
$-$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $+$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\-))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc-lemma4 \\ \index{alu-thm\_tc-bv-addc-lemma4}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$\not<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-addc \\ \index{alu-thm\_tc-bv-addc}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{carry}}\,({\it{c\/}})\index{carry})\index{tc-add})\-\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{carry}}\,({\it{c\/}})\index{carry})\index{tc-add})\index{tc-add} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{carry}}\,({\it{c\/}})\index{carry})\index{tc-add})\-\index{tc-add}) \\ 
{\bf then }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\rm{carry}}\,({\it{c\/}})\index{carry}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{tc-add})\-\index{tc-add})\-\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,(\=\+{\rm{carry}}\,({\it{c\/}})\index{carry}, \\ 
$-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\-\index{tc-add})\-\index{tc-add})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma1 \\ \index{alu-thm\_tc-v-addc-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma2 \\ \index{alu-thm\_tc-v-addc-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma3 \\ \index{alu-thm\_tc-v-addc-lemma3}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}))\- \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma4 \\ \index{alu-thm\_tc-v-addc-lemma4}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}))\- \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}
                                                                                                    
\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma5 \\ \index{alu-thm\_tc-v-addc-lemma5}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma6 \\ \index{alu-thm\_tc-v-addc-lemma6}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma7 \\ \index{alu-thm\_tc-v-addc-lemma7}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$\not<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}))\- \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}) \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc-lemma8 \\ \index{alu-thm\_tc-v-addc-lemma8}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$\not<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\tt{1}})\index{iplus})\index{iplus}))\- \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} \\ 
$<$$\;\;\;\;${\rm{negative-guts}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int})\index{iplus})\index{iplus}))\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-v-addc \\ \index{alu-thm\_tc-v-addc}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{f}}, {\bf{t}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{v} \\ 
$=$$\;\;\;\;$($\neg$ {\rm{tc-in-rangep}}\,(\=\+{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{b\/}})\index{v-to-int}, {\rm{carry}}\,({\it{c\/}})\index{carry})\index{tc-add})\-\index{tc-add}, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{tc-in-rangep}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-incr-lemma1 \\ \index{alu-thm\_tc-bv-incr-lemma1}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})) \\ 
$\wedge$$\;\;\;\;$({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus} $\not<$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\tt{1}}, $-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-incr-lemma2 \\ \index{alu-thm\_tc-bv-incr-lemma2}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length} $-\;1$)\index{exp} $<$ {\rm{negative-guts}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{int-to-v}}\,({\rm{iplus}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{iplus}}\,({\tt{1}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{iplus})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,({\rm{iplus}}\,({\tt{1}}, {\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int})\index{iplus}, {\rm{length}}\,({\it{a\/}})\index{length})\index{int-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_tc-bv-incr \\ \index{alu-thm\_tc-bv-incr}
\=\+(\=\+{\rm{bvp}}\,({\it{a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{a\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{b\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{b\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bv}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{f}}, {\bf{f}}, {\bf{f}}))\index{v-alu})\index{bv} \\ 
$=$$\;\;\;\;${\rm{int-to-v}}\,(\=\+\=\+{\bf if }{\rm{tc-in-rangep}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{tc-add}, {\rm{length}}\,({\it{a\/}})\index{length})\index{tc-in-rangep} \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{tc-add} \\ 
{\bf elseif }{\rm{negativep}}\,({\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\tt{1}})\index{tc-add}) \\ 
{\bf then }{\rm{tc-add}}\,({\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, {\rm{tc-add}}\,({\tt{1}}, {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{tc-add})\index{tc-add} \\ 
{\bf else }{\rm{tc-add}}\,(\=\+{\rm{v-to-int}}\,({\it{a\/}})\index{v-to-int}, \\ 
{\rm{tc-add}}\,({\tt{1}}, $-$ {\rm{exp}}\,({\tt{2}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{exp})\index{tc-add})\-\index{tc-add}$\;${\bf  endif}\-, \\ 
{\rm{length}}\,({\it{a\/}})\index{length})\-\index{int-to-v})\-\-
\end{tabbing}

\begin{verbatim}; That completes the alu interpretation lemmas.  Now we disable everything we did
; in this section other than the old-style interpretation lemmas (i.e., we make the
; data base behave as though we had done an add-axiom for each of the interpretation
; lemmas).  The reason for this is that the first time we rebuilt Piton on FM9001 we
; skipped the proofs of these boring facts so we could get on with the interesting
; part and now, having proved them, we have to make sure the lemmas we added don't
; mess up future proofs.

\end{verbatim}
\noindent{\sc Event}:   Disable theory {equal-length-0, negativep-ineg, not-equal-exp-0, ineg-exp-2-x, diff-diff, alu-thm\_tc-bv-sub-lemma, alu-thm\_tc-bv-sub-lemma2, diff-plus-cancellation-hack2, diff-plus-sub1-hack1, alu-thm\_tc-bv-subb-lemma1, diff-plus-sub1-hack2, alu-thm\_tc-bv-subb-lemma2-lemma1, diff-plus-sub1-hack2-off, alu-thm\_tc-bv-subb-lemma2, v-to-int-int-to-v-0, my-length-int-to-v, alu-thm\_tc-bv-decr-lemma1, alu-thm\_tc-bv-decr-lemma2, iplus-0-2, alu-thm\_tc-bv-neg-lemma1, alu-thm\_tc-bv-neg-lemma2, alu-thm\_tc-bv-neg-lemma3, alu-thm\_tc-bv-neg-lemma4, alu-thm\_tc-bv-neg-lemma5, alu-thm\_tc-bv-neg-lemma6, diff-plus-plus-plus-cancellation, alu-thm\_tc-bv-add-lemma1, alu-thm\_tc-bv-add-lemma2, alu-thm\_tc-bv-addc-lemma1, alu-thm\_tc-bv-addc-lemma2, alu-thm\_tc-bv-addc-lemma3-killer1, alu-thm\_tc-bv-addc-lemma3-killer2, alu-thm\_tc-bv-addc-lemma3-killer3, alu-thm\_tc-bv-addc-lemma3-lemma1, alu-thm\_tc-bv-addc-lemma3-lemma2, alu-thm\_tc-bv-addc-lemma3-killer1-off, alu-thm\_tc-bv-addc-lemma3-killer2-off, alu-thm\_tc-bv-addc-lemma3-killer3-off, alu-thm\_tc-bv-addc-lemma3, alu-thm\_tc-bv-addc-lemma4-lemma1, alu-thm\_tc-bv-addc-lemma4, alu-thm\_tc-v-addc-lemma1, alu-thm\_tc-v-addc-lemma2, alu-thm\_tc-v-addc-lemma3, alu-thm\_tc-v-addc-lemma4, alu-thm\_tc-v-addc-lemma5, alu-thm\_tc-v-addc-lemma6, alu-thm\_tc-v-addc-lemma7, alu-thm\_tc-v-addc-lemma8, alu-thm\_tc-bv-incr-lemma1, alu-thm\_tc-bv-incr-lemma2, bv, v, c, v-alu-correct-int-rewriter, unlabel, i-usr-data-typep}.

\addvspace{18pt}

\begin{verbatim}; This completes our rule base for the alu.  We should now be able
; to reduce any bv-alu-cv expression that arises.

; This completes the preliminary pass from m down to fm9001.

\end{verbatim}
\newpage
\begin{verbatim}

; I now prove a few useful equivalences between
; concepts at the m level and concepts at the i level.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  nth-is-get \\ \index{nth-is-get}
{\rm{nth}}\,({\it{n\/}}, {\it{l\/}})\index{nth} $=$ {\rm{get}}\,({\it{n\/}}, {\it{l\/}})\index{get}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  update-nth-is-put \\ \index{update-nth-is-put}
({\it{n\/}} $<$ {\rm{length}}\,({\it{l\/}})\index{length}) $\rightarrow$ ({\rm{update-nth}}\,({\it{n\/}}, {\it{l\/}}, {\it{v\/}})\index{update-nth} $=$ {\rm{put}}\,({\it{v\/}}, {\it{n\/}}, {\it{l\/}})\index{put})
\end{tabbing}

\begin{verbatim}; Goal:  v-to-nat-inverts-nat-to-v

; Subgoal: remainder-quotient-elim

; First we build up the classic proof of remainder-quotient-elim, doing
; a lot of arithmetic along the way.

\end{verbatim}
\noindent{\sc Event}:   Enable difference-elim.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  difference-elim-rewrite \\ \index{difference-elim-rewrite}
(({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{x\/}} $\not<$ {\it{y\/}})) $\rightarrow$ ((({\it{x\/}} $-$ {\it{y\/}}) $+$ {\it{y\/}}) $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-nat-inverts-nat-to-v \\ \index{v-to-nat-inverts-nat-to-v}
{\rm{small-naturalp}}\,({\it{n\/}}, {\it{word-size\/}})\index{small-naturalp} $\rightarrow$ ({\rm{v-to-nat}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v})\index{v-to-nat} $=$ {\it{n\/}})
\end{tabbing}

\begin{verbatim}; QED:  v-to-nat-inverts-nat-to-v


; Next I will speed up the handling of i-objectp-type for
; the case where the type is a quoted constant.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-objectp-type-simplifier \\ \index{i-objectp-type-simplifier}
\=\+(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-naturalp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{int}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-integerp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{bit-vectorp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{icode-labelp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{subr}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{subr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{cons}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-objectp-type}}\,({\tt{'}}{\tt{ipc}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{ipc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable i-objectp-type.

\addvspace{18pt}


\begin{verbatim}; I will disable type, tag and untag for sanity's sake,
; but prove the obvious relationships first.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  type-tag \\ \index{type-tag}
{\rm{type}}\,({\rm{tag}}\,({\it{x\/}}, {\it{y\/}})\index{tag})\index{type} $=$ {\it{x\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  untag-tag \\ \index{untag-tag}
{\rm{untag}}\,({\rm{tag}}\,({\it{x\/}}, {\it{y\/}})\index{tag})\index{untag} $=$ {\it{y\/}}
\end{tabbing}


\noindent{\sc Event}:   Disable type.

\addvspace{18pt}

\noindent{\sc Event}:   Disable tag.

\addvspace{18pt}

\noindent{\sc Event}:   Disable untag.

\addvspace{18pt}

\begin{verbatim}; And I will do a similar thing for the adp handlers

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adp-name-cons \\ \index{adp-name-cons}
{\rm{adp-name}}\,({\rm{cons}}\,({\it{name\/}}, {\it{offset\/}}))\index{adp-name} $=$ {\it{name\/}}
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  adp-offset-cons \\ \index{adp-offset-cons}
{\rm{adp-offset}}\,({\rm{cons}}\,({\it{name\/}}, {\it{offset\/}}))\index{adp-offset} $=$ {\it{offset\/}}
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  adp-name-add-adp \\ \index{adp-name-add-adp}
{\rm{adp-name}}\,({\rm{add-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{add-adp})\index{adp-name} $=$ {\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  adp-offset-add-adp \\ \index{adp-offset-add-adp}
{\rm{adp-offset}}\,({\rm{add-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{add-adp})\index{adp-offset} $=$ ({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $+$ {\it{n\/}})
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  adp-name-sub-adp \\ \index{adp-name-sub-adp}
{\rm{adp-name}}\,({\rm{sub-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{sub-adp})\index{adp-name} $=$ {\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  adp-offset-sub-adp \\ \index{adp-offset-sub-adp}
{\rm{adp-offset}}\,({\rm{sub-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{sub-adp})\index{adp-offset} $=$ ({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $-$ {\it{n\/}})
\end{tabbing}

\noindent{\sc Event}:   Disable sub-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable add-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable adp-name.

\addvspace{18pt}

\noindent{\sc Event}:   Disable adp-offset.

\addvspace{18pt}

\begin{verbatim}; The function BOOLEANP is a killer because it
; causes everything to split.  I will disable it
; and prove what I need about it as necessary.

\end{verbatim}
\noindent{\sc Event}:   Disable booleanp.

\addvspace{18pt}


\noindent{\sc Event}:   Disable bool-to-logical.

\addvspace{18pt}

\begin{verbatim}; I am now going to partition the conjunctions of i-state-okp
; into two pots.  The first pot will put into the function
; defined below, i-state-types-okp, which will remain disabled.
; I will extract stuff from this hyp by back chaining when
; necessary.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{i-state-types-okp} \\  
\=\+{\rm{i-state-types-okp}}\,({\it{i\/}})\index{i-state-types-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{i-statep}}\,({\it{i\/}})\index{i-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{type} $=$ {\tt{'}}{\tt{ipc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag})\index{booleanp})\-\-
\end{tabbing}

\begin{verbatim}; The second pot will be introduced explicitly into any clause
; containing i-state-okp.  These hyps will all be useful to
; linear and I don't want to hide them.

; Here is the lemma that does the restructuring.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-state-okp-restructuring \\ \index{i-state-okp-restructuring}
\=\+{\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{i-state-types-okp}}\,({\it{i\/}})\index{i-state-types-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-))\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable i-state-okp.

\addvspace{18pt}

\begin{verbatim}; And here is the lemma that lets me back chain into i-state-types-okp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-state-types-okp-properties \\ \index{i-state-types-okp-properties}
\=\+{\rm{i-state-types-okp}}\,({\it{i\/}})\index{i-state-types-okp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-statep}}\,({\it{i\/}})\index{i-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{type} $=$ {\tt{'}}{\tt{ipc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{listp}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag}) $=$ {\bf{t}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{listp}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag}) $=$ {\bf{t}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{listp}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag}) $=$ {\bf{t}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{listp}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag}) $=$ {\bf{t}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{untag})\index{booleanp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable i-state-types-okp.

\addvspace{18pt}

\begin{verbatim}; Some accellerators for psw handling...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-equal-x-y-error-msg-run \\ \index{not-equal-x-y-error-msg-run}
{\rm{x-y-error-msg}}\,({\it{x\/}}, {\it{y\/}})\index{x-y-error-msg} $\not=$ {\tt{'}}{\tt{run}}
\end{tabbing}


\noindent{\sc Event}:   Disable x-y-error-msg.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-psw-i-halt \\ \index{i-psw-i-halt}
{\rm{i-psw}}\,({\rm{i-halt}}\,({\it{i\/}}, {\it{psw\/}})\index{i-halt})\index{i-psw} $=$ {\it{psw\/}}
\end{tabbing}


\noindent{\sc Event}:   Disable i-halt.

\addvspace{18pt}


\begin{verbatim}; Disabling some messy functions.

; I will disable a bunch of functions that cause large case
; splits.  These functions will have to be explicitly enabled
; to do proofs about their values.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  link-instr-word-expander \\ \index{link-instr-word-expander}
\=\+{\rm{link-instr-word}}\,({\rm{cons}}\,({\it{opcode\/}}, {\bf{nil}}), {\it{word-size\/}})\index{link-instr-word} \\ 
$=$$\;\;\;\;${\rm{mci}}\,({\rm{cadr}}\,({\rm{assoc}}\,({\it{opcode\/}}, {\sc{link-instruction-alist}}\index{link-instruction-alist})), {\it{word-size\/}})\index{mci}\-
\end{tabbing}


\noindent{\sc Event}:   Disable link-instr-word.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  link-data-word-expander \\ \index{link-data-word-expander}
\=\+{\rm{litatom}}\,({\rm{type}}\,({\it{x\/}})\index{type}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-data-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-data-word} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{type}}\,({\it{x\/}})\index{type}: \\ 
{\bf case = }{\it{nat\/}} \\ 
{\bf then }{\rm{nat-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{nat-to-v} \\ 
{\bf case = }{\it{int\/}} \\ 
{\bf $\;\;$then }{\rm{int-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{int-to-v} \\ 
{\bf case = }{\it{bitv\/}} \\ 
{\bf $\;\;$then }{\rm{bitv-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{bitv-to-v} \\ 
{\bf case = }{\it{bool\/}} \\ 
{\bf $\;\;$then }{\rm{bool-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{bool-to-v} \\ 
{\bf case = }{\it{addr\/}} \\ 
{\bf $\;\;$then }{\rm{addr-to-v}}\,(\=\+{\rm{untag}}\,({\it{x\/}})\index{untag}, \\ 
{\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links}, \\ 
{\it{word-size\/}})\-\index{addr-to-v} \\ 
{\bf case = }{\it{subr\/}} \\ 
{\bf $\;\;$then }{\rm{subr-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{prog-links}}\,({\it{link-tables\/}})\index{prog-links}, {\it{word-size\/}})\index{subr-to-v} \\ 
{\bf case = }{\it{sys-addr\/}} \\ 
{\bf $\;\;$then }{\rm{sys-addr-to-v}}\,(\=\+{\rm{untag}}\,({\it{x\/}})\index{untag}, \\ 
{\rm{sys-data-links}}\,({\it{link-tables\/}})\index{sys-data-links}, \\ 
{\it{word-size\/}})\-\index{sys-addr-to-v} \\ 
{\bf case = }{\it{pc\/}} \\ 
{\bf $\;\;$then }{\rm{label-to-v}}\,(\=\+{\rm{untag}}\,({\it{x\/}})\index{untag}, \\ 
{\rm{prog-label-tables}}\,({\it{link-tables\/}})\index{prog-label-tables}, \\ 
{\it{word-size\/}})\-\index{label-to-v} \\ 
{\bf case = }{\it{ipc\/}} \\ 
{\bf $\;\;$then }{\rm{ipc-to-v}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{prog-links}}\,({\it{link-tables\/}})\index{prog-links}, {\it{word-size\/}})\index{ipc-to-v} \\ 
{\bf otherwise }{\rm{nat-to-v}}\,({\tt{0}}, {\it{word-size\/}})\index{nat-to-v}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  size-incr \\ \index{size-incr}
{\rm{length}}\,({\rm{incr}}\,({\it{c\/}}, {\it{a\/}})\index{incr})\index{length} $=$ {\rm{length}}\,({\it{a\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  size-compl \\ \index{size-compl}
{\rm{length}}\,({\rm{v-not}}\,({\it{a\/}})\index{v-not})\index{length} $=$ {\rm{length}}\,({\it{a\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  size-bitv-to-v \\ \index{size-bitv-to-v}
{\rm{length}}\,({\rm{bitv-to-v}}\,({\it{a\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  size-link-data-word \\ \index{size-link-data-word}
{\rm{length}}\,({\rm{link-data-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-data-word})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}})
\end{tabbing}


\noindent{\sc Event}:   Disable link-data-word.

\addvspace{18pt}


\noindent{\sc Event}:   Disable *1*exp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  size-link-instr-word \\ \index{size-link-instr-word}
{\rm{length}}\,({\rm{link-instr-word}}\,({\it{ins\/}}, {\it{word-size\/}})\index{link-instr-word})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  size-link-word \\ \index{size-link-word}
{\rm{length}}\,({\rm{link-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  link-word-expander \\ \index{link-word-expander}
\=\+(\=\+{\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{link-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word} $=$ {\rm{link-instr-word}}\,({\it{x\/}}, {\it{word-size\/}})\index{link-instr-word}))\- \\ 
$\wedge$$\;\;\;\;$(\=\+($\neg$ {\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word} \\ 
$=$$\;\;\;\;${\rm{link-data-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-data-word})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable link-word.

\addvspace{18pt}

\begin{verbatim}; I am going to keep the i-link-tables function turned off and
; enable it as needed.  It expands into something I don't like
; reading.  Instead I'll prove the rewrite rules that let the
; four accessors work on it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  prog-links-i-link-tables \\ \index{prog-links-i-link-tables}
\=\+{\rm{prog-links}}\,({\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\index{prog-links} \\ 
$=$$\;\;\;\;${\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  prog-label-tables-i-link-tables \\ \index{prog-label-tables-i-link-tables}
\=\+{\rm{prog-label-tables}}\,({\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\index{prog-label-tables} \\ 
$=$$\;\;\;\;${\rm{link-table-for-prog-labels}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  usr-data-links-i-link-tables \\ \index{usr-data-links-i-link-tables}
\=\+{\rm{usr-data-links}}\,({\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\index{usr-data-links} \\ 
$=$$\;\;\;\;${\rm{link-table-for-segment}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{load-addr\/}})\index{link-table-for-segment}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sys-data-links-i-link-tables \\ \index{sys-data-links-i-link-tables}
\=\+{\rm{sys-data-links}}\,({\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\index{sys-data-links} \\ 
$=$$\;\;\;\;${\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length}\-)\-\index{link-table-for-segment}\-
\end{tabbing}


\noindent{\sc Event}:   Disable i-link-tables.

\addvspace{18pt}

\noindent{\sc Event}:   Disable prog-links.

\addvspace{18pt}

\noindent{\sc Event}:   Disable prog-label-tables.

\addvspace{18pt}

\noindent{\sc Event}:   Disable usr-data-links.

\addvspace{18pt}

\noindent{\sc Event}:   Disable sys-data-links.

\addvspace{18pt}

\begin{verbatim}; Goal:  The fundamental theorems about Link Tables



\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-append \\ \index{assoc-append}
\=\+{\rm{assoc}}\,({\it{x\/}}, {\rm{append}}\,({\it{alist1\/}}, {\it{alist2\/}})) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{definedp}}\,({\it{x\/}}, {\it{alist1\/}})\index{definedp}$\;\;${\bf then }{\rm{assoc}}\,({\it{x\/}}, {\it{alist1\/}}) \\ 
{\bf else }{\rm{assoc}}\,({\it{x\/}}, {\it{alist2\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append-1 \\ \index{get-append-1}
({\it{n\/}} $<$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,({\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} $=$ {\rm{get}}\,({\it{n\/}}, {\it{a\/}})\index{get})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append-2 \\ \index{get-append-2}
({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,({\it{n\/}} $+$ {\it{k\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} $=$ {\rm{get}}\,({\it{k\/}}, {\it{b\/}})\index{get})
\end{tabbing}

\begin{verbatim}; Because we have swapped the positions of the data and prog
; segments we have to add the following version of get-append-2.
; Unknownst to me, the original proof exploited the fact that
; "i-prog-segment" comes lexicographically before "i-usr-data-segment"
; so that when the segment-lengths of those two are commuted into
; order the order agreed with that used by link-mem, namely,
; the prog-segment comes first.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-append-3 \\ \index{get-append-3}
\=\+(({\it{n1\/}} $=$ {\rm{length}}\,({\it{a1\/}})\index{length}) $\wedge$ ({\it{n2\/}} $=$ {\rm{length}}\,({\it{a2\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\it{n2\/}} $+$ {\it{n1\/}} $+$ {\it{k\/}}, {\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\it{b\/}})))\index{get} $=$ {\rm{get}}\,({\it{k\/}}, {\it{b\/}})\index{get})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-link-area-is-length \\ \index{length-link-area-is-length}
{\rm{length}}\,({\rm{link-area}}\,({\it{lst\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-area})\index{length} $=$ {\rm{length}}\,({\it{lst\/}})\index{length}
\end{tabbing}


\noindent{\sc Event}:   Enable associativity-of-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-link-area \\ \index{get-link-area}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{area\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{n\/}}, {\rm{link-area}}\,({\it{area\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-area})\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,({\rm{unlabel}}\,({\rm{get}}\,({\it{n\/}}, {\it{area\/}})\index{get})\index{unlabel}, {\it{table\/}}, {\it{word-size\/}})\index{link-word})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{link-table-entry} \\  
\=\+{\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\it{name\/}} $=$ {\rm{caar}}\,({\it{segment\/}})$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }\=\+{\rm{length}}\,({\rm{cdar}}\,({\it{segment\/}}))\index{length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,({\it{name\/}}, {\rm{cdr}}\,({\it{segment\/}}))\index{link-table-entry}\-$\;${\bf  endif}\-\-
\end{tabbing}


\begin{tabbing}{\sc Definition}:\index{label-table-entry} \\  
\=\+{\rm{label-table-entry}}\,({\it{lab\/}}, {\it{segment\/}})\index{label-table-entry} \\ 
$=$$\;\;\;\;${\rm{find-label}}\,({\it{lab\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{lab\/}}), {\it{segment\/}})))\index{find-label}\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  assoc-link-table-for-segment \\ \index{assoc-link-table-for-segment}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ ({\it{addr0\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment})) \\ 
$=$$\;\;\;\;$({\it{addr0\/}} $+$ {\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-generalized \\ \index{lessp-absolute-address-segment-!length-generalized}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ ({\it{offset\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{offset\/}}) \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\it{segment\/}})\index{segment-length})\-\-
\end{tabbing}

\begin{verbatim};  In anticipation of the various uses of this fact, we prove four
;  instances...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-adp-name \\ \index{lessp-absolute-address-segment-!length-adp-name}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{link-table-entry}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}) \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\it{segment\/}})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-cfp \\ \index{lessp-absolute-address-segment-!length-cfp}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-offset})\- \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-csp \\ \index{lessp-absolute-address-segment-!length-csp}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{untag})\index{adp-offset})\- \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-tsp \\ \index{lessp-absolute-address-segment-!length-tsp}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-offset})\- \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable length-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-link-segment-is-segment-length \\ \index{length-link-segment-is-segment-!length}
{\rm{length}}\,({\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\index{length} $=$ {\rm{segment-length}}\,({\it{segment\/}})\index{segment-length}
\end{tabbing}


\noindent{\sc Event}:   Disable commutativity-of-plus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment \\ \index{get-link-table-entry-link-segme!nt}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{link-table-entry}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{verbatim}; The above lemma states the fundamental relationship between
; linking and fetching.

; At this point we have enough machinery to reduce any legal
; current-instruction fetch at the m level to a link-word of the
; i level.

; We can speed things up in the subsequent proofs if we package
; this knowledge up.  We do it by proving a fact about
; current-instruction.  We still need the foregoing machinery for
; those occasions when the m machine fetches data from program memory.
; But after this we will disable current-instruction and at least
; short circuit all this for the top level fetch for each instruction.


; We first make it possible to get and put past the boot-code in
; linked memory.  By doing it this way (proving length-boot-code to introduce
; fix and this disabling it when we are done) we prevent all future
; splits on whether load-addr is numeric.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-boot-code \\ \index{length-boot-code}
{\rm{length}}\,({\rm{boot-code}}\,({\it{lst\/}}, {\it{n\/}}, {\it{word-size\/}})\index{boot-code})\index{length} $=$ {\rm{fix}}\,({\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-past-boot-code \\ \index{get-past-boot-code}
\=\+{\rm{get}}\,({\it{load-addr\/}} $+$ {\it{n\/}}, {\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\it{a\/}}))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{n\/}}, {\it{a\/}})\index{get}\-
\end{tabbing}

\begin{verbatim}; When the address in question has been incremented or decremented,
; as happens when it is a stack pointer, we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-past-boot-code-add1 \\ \index{get-past-boot-code-add1}
\=\+{\rm{get}}\,($1\;+$ ({\it{load-addr\/}} $+$ {\it{n\/}}), {\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\it{a\/}}))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,($1\;+$ {\it{n\/}}, {\it{a\/}})\index{get}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-past-boot-code-sub1 \\ \index{get-past-boot-code-sub1}
\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+({\it{load-addr\/}} $+$ {\it{n\/}}) $-\;1$, \\ 
{\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\it{a\/}}))\-\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{n\/}} $-\;1$, {\it{a\/}})\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-past-boot-code \\ \index{put-past-boot-code}
\=\+{\rm{put}}\,({\it{val\/}}, {\it{load-addr\/}} $+$ {\it{n\/}}, {\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\it{a\/}}))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{a\/}})\index{put})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-past-boot-code-add1 \\ \index{put-past-boot-code-add1}
\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
$1\;+$ ({\it{load-addr\/}} $+$ {\it{n\/}}), \\ 
{\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\it{a\/}}))\-\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\rm{put}}\,({\it{val\/}}, $1\;+$ {\it{n\/}}, {\it{a\/}})\index{put})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-past-boot-code-sub1 \\ \index{put-past-boot-code-sub1}
\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
({\it{load-addr\/}} $+$ {\it{n\/}}) $-\;1$, \\ 
{\rm{append}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, {\it{a\/}}))\-\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, \\ 
{\rm{put}}\,({\it{val\/}}, {\it{n\/}} $-\;1$, {\it{a\/}})\index{put})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-boot-code-linear \\ \index{length-boot-code-linear}
\=\+({\it{load-addr\/}} $\not<$ {\rm{length}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code})\index{length} $\not<$ {\it{load-addr\/}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable length-boot-code.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  current-instruction-i-$>$m \\ \index{current-instruction-i-$>$m}
\=\+(\=\+{\rm{i-state-types-okp}}\,({\it{i\/}})\index{i-state-types-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\- \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{current-instruction}}\,(\=\+{\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,(\=\+\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset}\-, \\ 
{\tt{32}})\-\index{nat-to-v})\-, \\ 
{\rm{append}}\,(\=\+{\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\tt{32}})\index{boot-code}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,(\=\+{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\rm{i-link-tables}}\,(\=\+{\it{i\/}}, \\ 
{\it{load-addr\/}})\-\index{i-link-tables}, \\ 
{\tt{32}})\-\index{link-segment}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\rm{i-link-tables}}\,(\=\+{\it{i\/}}, \\ 
{\it{load-addr\/}})\-\index{i-link-tables}, \\ 
{\tt{32}})\-\index{link-segment}, \\ 
{\it{data-mem\/}})\-)\-)\-)\-\index{current-instruction} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{fetch}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{fetch})\index{unlabel}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\tt{32}})\-\index{link-word})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable current-instruction.

\addvspace{18pt}
                  
\begin{verbatim}; The following section of this file documents about a half-day's
; work.

; I am headed for a simple theorem, namely that the i-psw of
; i-ins-step is 'run.  This follows immediately by opening up
; the -step fn for each i-level opcode and observing that the
; i-psw in each is 'run.  But there is much case analysis.
; To help out, I will disable -- in fact, hands-off -- every
; function used by any of the -step fns.  In addition, I provide
; the following accelerators:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equal-i-psw-if-1 \\ \index{equal-i-psw-if-1}
\=\+(\=\+{\rm{i-psw}}\,(\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\it{b1\/}} \\ 
{\bf else }{\it{b2\/}}$\;${\bf  endif}\-)\index{i-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\rm{i-psw}}\,({\it{b1\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf else }{\rm{i-psw}}\,({\it{b2\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-i-psw-if-2 \\ \index{equal-i-psw-if-2}
\=\+(\=\+{\rm{i-psw}}\,(\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\it{b1\/}} \\ 
{\bf elseif }{\it{t2\/}}$\;\;${\bf then }{\it{b2\/}} \\ 
{\bf else }{\it{b3\/}}$\;${\bf  endif}\-)\index{i-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\rm{i-psw}}\,({\it{b1\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf elseif }{\it{t2\/}}$\;\;${\bf then }{\rm{i-psw}}\,({\it{b2\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf else }{\rm{i-psw}}\,({\it{b3\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-i-psw-i-ins-step-run \\ \index{equal-i-psw-i-ins-step-run}
{\rm{i-psw}}\,({\rm{i-ins-step}}\,({\it{ins\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step})\index{i-psw} $=$ {\tt{'}}{\tt{run}}
\end{tabbing}

\begin{verbatim}; Note: The hint above was mechanically generated; it is the list of
; all function symbols occurring in the body of any i-xxx-step fn, minus
; i-psw.  We clearly do not wish to keep hands off of (i-psw (i-state ...)).

; During the morning I have proved this theorem many times.  Here are
; some observations.  I don't remember what happens if you try it without
; any preparation, but either it explodes into many cases or it gets
; stack overflow.  I first included just a (hands-off i-state) under
; the mistaken belief that it would prevent all the (i-state ...)'s from
; being rewritten.  But it does not prevent the args to the i-state being
; rewritten so I disabled all the fns listed above.  However, that still
; permitted rewrite rules to be applied to them and so I did a hands-off
; on them instead.

; More interesting is the use of the two lemmas, equal-i-psw-if-1 and -2.
; The first I call the "single stripper" and the second the "double stripper."

; With just the single stripper around you get a stack overflow.  That is
; because rewrite recurses several times for every application of the
; lemma and there are so many opcodes.  My first attempt to solve this
; was to prove a backchaining version of the single stripper.  It said
; "if the psw of b and c are both 'run then the psw of (if a b c) is too."
; That causes fewer recursions in the rewriter and permitted the proof
; to go through, but cost 8538 seconds!  

; Then I hit upon the idea of the double stripper, which cuts in half the
; number of applications -- and this recursions -- necessary.  If the
; double stripper is available but the single stripper is not, the
; proof goes through but generates 30 cases and takes 354 seconds.

; Analysis of this showed that the problem is that some of our -step
; fns generate terms of the form (if & (i-state ...) (i-state ...)) and
; the double stripper could not be applied to these.  They get elevated
; to explicit cases.

; If both strippers are present, the proof goes through without any
; visible cases and takes 46 seconds.

; End of aside.

; In the one-way correspondence theorems I have the hypothesis
; that (i-step i load-addr) does not produce an error and then I make a
; statement about (i->m (i-step i load-addr) boot-lst load-addr).  The two occurrences of
; i-step bother me and the following theorem lets me replace the
; first with a conjunction of predicates.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-psw-i-step-run \\ \index{i-psw-i-step-run}
\=\+({\rm{i-psw}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$=$$\;\;\;\;$(\=\+({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;${\rm{i-ins-okp}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}})\index{i-ins-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-i-state \\ \index{i-link-tables-i-state}
\=\+(\=\+(\=\+{\rm{link-table-for-segment}}\,({\it{i-usr-data-segment\/}}, {\it{load-addr\/}})\index{link-table-for-segment} \\ 
$=$$\;\;\;\;${\rm{link-table-for-segment}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{load-addr\/}})\index{link-table-for-segment})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{segment-length}}\,({\it{i-usr-data-segment\/}})\index{segment-length} \\ 
$=$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{link-table-for-segment}}\,(\=\+{\it{i-sys-data-segment\/}}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length}\-)\-\index{link-table-for-segment} \\ 
$=$$\;\;\;\;${\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length}\-)\-\index{link-table-for-segment})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,(\=\+{\rm{i-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{cfp\/}}, \\ 
{\it{csp\/}}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}


\begin{verbatim}; Now I will embark on the proofs of each of one-way correspondence
; step theorems, starting with what I think is the simplest: the
; no-op case.

\end{verbatim}
\noindent{\sc Event}:   Enable plus-add1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-add1-cons \\ \index{get-add1-cons}
{\rm{get}}\,($1\;+$ {\it{n\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{get} $=$ {\rm{get}}\,({\it{n\/}}, {\it{y\/}})\index{get}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-0-cons \\ \index{get-0-cons}
{\rm{get}}\,({\tt{0}}, {\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{get} $=$ {\it{x\/}}
\end{tabbing}


\noindent{\sc Event}:   Enable length-cons.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-reg-file \\ \index{length-reg-file}
{\rm{length}}\,({\rm{list}}\,({\it{r0\/}}, {\it{r1\/}}, {\it{r2\/}}, {\it{r3\/}}, {\it{r4\/}}, {\it{r5\/}}, {\it{r6\/}}, {\it{r7\/}}, {\it{r8\/}}, {\it{r9\/}}, {\it{r10\/}}, {\it{r11\/}}, {\it{r12\/}}, {\it{r13\/}}, {\it{r14\/}}, {\it{r15\/}}))\index{length} $=$ {\tt{16}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-add1-cons \\ \index{put-add1-cons}
{\rm{put}}\,({\it{val\/}}, $1\;+$ {\it{n\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{put} $=$ {\rm{cons}}\,({\it{x\/}}, {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{y\/}})\index{put})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-zero-cons \\ \index{put-zero-cons}
{\rm{put}}\,({\it{val\/}}, {\tt{0}}, {\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{put} $=$ {\rm{cons}}\,({\it{val\/}}, {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  boolp-bool-to-logical \\ \index{boolp-bool-to-logical}
{\rm{boolp}}\,({\rm{bool-to-logical}}\,({\it{b\/}})\index{bool-to-logical})\index{boolp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-types-okp-property2 \\ \index{i-state-types-okp-property2}
\=\+{\rm{i-state-types-okp}}\,({\it{i\/}})\index{i-state-types-okp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+($\neg$ {\rm{icode-instructionp}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-csp}}\,({\it{i\/}})\index{i-csp})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-c-flg}}\,({\it{i\/}})\index{i-c-flg})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-v-flg}}\,({\it{i\/}})\index{i-v-flg})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-n-flg}}\,({\it{i\/}})\index{i-n-flg})\index{icode-instructionp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{icode-instructionp}}\,({\rm{i-z-flg}}\,({\it{i\/}})\index{i-z-flg})\index{icode-instructionp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-icode-instructionp-tag \\ \index{not-icode-instructionp-tag}
$\neg$ {\rm{icode-instructionp}}\,({\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag})\index{icode-instructionp}
\end{tabbing}


\noindent{\sc Event}:   Disable icode-instructionp.

\addvspace{18pt}


\begin{tabbing}{\sc Theorem}:  length-put \\ \index{length-put}
({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\rightarrow$ ({\rm{length}}\,({\rm{put}}\,({\it{v\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{length} $=$ {\rm{length}}\,({\it{lst\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  nat-to-v-equivalence \\ \index{nat-to-v-equivalence}
\=\+(\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}))\- \\ 
$\rightarrow$$\;\;\;\;$(({\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v} $=$ {\rm{nat-to-v}}\,({\it{m\/}}, {\it{word-size\/}})\index{nat-to-v}) $=$ ({\it{n\/}} $=$ {\it{m\/}}))\-
\end{tabbing}



\begin{verbatim}; --- Here I take time out in my development to define a few
; functions used to make slides for my Piton talk.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{list-of-bvs} \\  
\=\+{\rm{list-of-bvs}}\,({\it{lst\/}})\index{list-of-bvs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{nat-to-v}}\,({\rm{car}}\,({\it{lst\/}}), {\tt{32}})\index{nat-to-v}, {\rm{list-of-bvs}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{list-of-bvs})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{n-$>$m} \\  
\=\+{\rm{n-$>$m}}\,({\it{n\/}})\index{n-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-state}}\,(\=\+{\rm{list-of-bvs}}\,({\rm{car}}\,({\it{n\/}}))\index{list-of-bvs}, \\ 
{\rm{cadr}}\,({\it{n\/}}), \\ 
{\rm{caddr}}\,({\it{n\/}}), \\ 
{\rm{cadddr}}\,({\it{n\/}}), \\ 
{\rm{caddddr}}\,({\it{n\/}}), \\ 
{\rm{list-of-bvs}}\,({\rm{cadddddr}}\,({\it{n\/}}))\index{list-of-bvs})\-\index{m-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{m-$>$n} \\  
\=\+{\rm{m-$>$n}}\,({\it{m\/}})\index{m-$>$n} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\rm{list-of-nats}}\,({\rm{m-regs}}\,({\it{m\/}})\index{m-regs})\index{list-of-nats}, \\ 
{\rm{m-c-flg}}\,({\it{m\/}})\index{m-c-flg}, \\ 
{\rm{m-v-flg}}\,({\it{m\/}})\index{m-v-flg}, \\ 
{\rm{m-n-flg}}\,({\it{m\/}})\index{m-n-flg}, \\ 
{\rm{m-z-flg}}\,({\it{m\/}})\index{m-z-flg}, \\ 
{\rm{list-of-nats}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{list-of-nats})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{n-step}$\;\;$
{\rm{n-step}}\,({\it{n\/}})\index{n-step} $=$ {\rm{m-$>$n}}\,({\rm{m-step}}\,({\rm{n-$>$m}}\,({\it{n\/}})\index{n-$>$m})\index{m-step})\index{m-$>$n}
\end{tabbing}

\begin{verbatim}; --- end of aside

; Recall



;(prove-lemma get-link-table-entry-link-segment (rewrite)
;  (implies (and (definedp (adp-name adp) segment)
;               (lessp (adp-offset adp)
;                      (length (cdr (assoc (adp-name adp) segment)))))
;          (equal (get (plus (link-table-entry (adp-name adp) segment)
;                            (adp-offset adp))
;                      (link-segment segment table word-size))
;                 (link-word
;                   (unlabel
;                     (get (adp-offset adp)
;                          (cdr (assoc (adp-name adp) segment))))
;                   table
;                   word-size))))
;

; from above.  Analogous lemmas for the data segment and the
; stack segment are needed.  In addition, we need to be able to handle
; the arithmetically equivalent cases that arise from opening plus
; or incrementing and decrementing addresses.  We'll do that first
; and then turn to the other segments and the add1/sub1 cases for them.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  plus-zerop \\ \index{plus-zerop}
({\it{y\/}} $\not\in\;${\bf{N}}${}$) $\rightarrow$ (({\it{x\/}} $+$ {\it{y\/}}) $=$ {\rm{fix}}\,({\it{x\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-add1 \\ \index{get-link-table-entry-link-segme!nt-add1}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+$1\;+$ ({\rm{link-table-entry}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}), \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+$1\;+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plus-sub1 \\ \index{plus-sub1}
({\it{y\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ (({\it{x\/}} $+$ ({\it{y\/}} $-\;1$)) $=$ (({\it{x\/}} $+$ {\it{y\/}}) $-\;1$))
\end{tabbing}

\begin{verbatim};  The above lemma causes infinite looping if plus opens and commutes.
;  So I'll disable it asap.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-sub1 \\ \index{get-link-table-entry-link-segme!nt-sub1}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $-\;1$) $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+({\rm{link-table-entry}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}) $-\;1$, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $-\;1$, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable plus-sub1.

\addvspace{18pt}

\begin{verbatim}; Before we work on the two data segments we do some
; similar trivial arithmetic for the add1/sub1 cases of
; the previously proved:

;
;(prove-lemma lessp-absolute-address-segment-length-adp-name (rewrite)
;  (implies (and (definedp (adp-name adp) segment)
;               (lessp (adp-offset adp)
;                      (length (cdr (assoc (adp-name adp) segment)))))
;          (lessp (plus (link-table-entry (adp-name adp) segment)
;                       (adp-offset adp))
;                 (segment-length segment)))
;  ((use (lessp-absolute-address-segment-length-generalized
;         (name (adp-name adp))
;         (offset (adp-offset adp))))))
;


\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-adp-name-add1 \\ \index{lessp-absolute-address-segment-!length-adp-name-add1}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\index{length} $-\;1$)))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+($1\;+$ ({\rm{link-table-entry}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset})) \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\it{segment\/}})\index{segment-length})\-\-
\end{tabbing}


\begin{verbatim};  We will undoubtedly need related facts about 'cstk and 'tsk, similar
; to lessp-absolute-address-segment-length-cfp, etc., above.  But I
; don't know the exact form we'll need so I'll wait...  Here however
; are the related lemmas in their pure form



;(prove-lemma  (rewrite)
;  (implies (and (definedp 'cstk (i-sys-data-segment i))
;               (lessp (adp-offset (untag (i-cfp i)))
;                      (length (cdr (assoc 'cstk
;                                          (i-sys-data-segment i))))))
;          (lessp (plus (link-table-entry 'cstk
;                                         (i-sys-data-segment i))
;                       (adp-offset (untag (i-cfp i))))
;                 (segment-length (i-sys-data-segment i))))
;  ((use (lessp-absolute-address-segment-length-generalized
;         (name 'cstk)
;         (offset (adp-offset (untag (i-cfp i))))
;         (segment (i-sys-data-segment i))))))
;
;(prove-lemma lessp-absolute-address-segment-length-csp (rewrite)
;  (implies (and (definedp 'cstk (i-sys-data-segment i))
;               (lessp (adp-offset (untag (i-csp i)))
;                      (length (cdr (assoc 'cstk
;                                          (i-sys-data-segment i))))))
;          (lessp (plus (link-table-entry 'cstk
;                                         (i-sys-data-segment i))
;                       (adp-offset (untag (i-csp i))))
;                 (segment-length (i-sys-data-segment i))))
;  ((use (lessp-absolute-address-segment-length-generalized
;         (name 'cstk)
;         (offset (adp-offset (untag (i-csp i))))
;         (segment (i-sys-data-segment i))))))
;
;(prove-lemma lessp-absolute-address-segment-length-tsp (rewrite)
;  (implies (and (definedp 'tstk (i-sys-data-segment i))
;               (lessp (adp-offset (untag (i-tsp i)))
;                      (length (cdr (assoc 'tstk
;                                          (i-sys-data-segment i))))))
;          (lessp (plus (link-table-entry 'tstk
;                                         (i-sys-data-segment i))
;                       (adp-offset (untag (i-tsp i))))
;                 (segment-length (i-sys-data-segment i))))
;  ((use (lessp-absolute-address-segment-length-generalized
;         (name 'tstk)
;         (offset (adp-offset (untag (i-tsp i))))
;         (segment (i-sys-data-segment i))))))





; The previously proved:

;
;(prove-lemma get-append-2 (rewrite)
;  (implies (equal n (length a))
;          (equal (get (plus n k) (append a b))
;                 (get k b))))
;
; also needs to be expanded to the add1/sub1 cases:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-append-2-add1 \\ \index{get-append-2-add1}
({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,($1\;+$ ({\it{n\/}} $+$ {\it{k\/}}), {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} $=$ {\rm{get}}\,($1\;+$ {\it{k\/}}, {\it{b\/}})\index{get})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append-2-sub1 \\ \index{get-append-2-sub1}
\=\+(({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\wedge$ ({\it{k\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,(({\it{n\/}} $+$ {\it{k\/}}) $-\;1$, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} $=$ {\rm{get}}\,({\it{k\/}} $-\;1$, {\it{b\/}})\index{get})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append-3-add1 \\ \index{get-append-3-add1}
\=\+(({\it{n1\/}} $=$ {\rm{length}}\,({\it{a1\/}})\index{length}) $\wedge$ ({\it{n2\/}} $=$ {\rm{length}}\,({\it{a2\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,($1\;+$ ({\it{n2\/}} $+$ {\it{n1\/}} $+$ {\it{k\/}}), {\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\it{b\/}})))\index{get} $=$ {\rm{get}}\,($1\;+$ {\it{k\/}}, {\it{b\/}})\index{get})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append-3-sub1 \\ \index{get-append-3-sub1}
\=\+(({\it{n1\/}} $=$ {\rm{length}}\,({\it{a1\/}})\index{length}) $\wedge$ ({\it{n2\/}} $=$ {\rm{length}}\,({\it{a2\/}})\index{length}) $\wedge$ ({\it{k\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,(({\it{n2\/}} $+$ {\it{n1\/}} $+$ {\it{k\/}}) $-\;1$, {\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\it{b\/}})))\index{get} $=$ {\rm{get}}\,({\it{k\/}} $-\;1$, {\it{b\/}})\index{get})\-
\end{tabbing}

\begin{verbatim}; Now it turns out we never increment or decrement addresses into the
; usr-data segment.  So we don't need lemmas for that.  But we do both
; operations on sys-data addresses when pushing and popping.  There
; is no difference between the usr-data and the sys-data accessing
; but it will turn out that we know that (adp-name (untag (i-csp i)))
; is 'cstk so we have to phrase the lemma explicitly for 'cstk and another
; one for tstk.

; Now for the sys-data segment, we just use the result above,
; but acknowledge that (adp-name adp) will be either 'cstk or 'tstk
; in all of our uses...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-cstk \\ \index{get-link-table-entry-link-segme!nt-cstk}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-tstk \\ \index{get-link-table-entry-link-segme!nt-tstk}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{verbatim}; and now, for both cstk and tstk, we get the pushed and popped
; versions.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-cstk-add1 \\ \index{get-link-table-entry-link-segme!nt-cstk-add1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length} $-\;1$)))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+$1\;+$ ({\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}), \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+$1\;+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-cstk-sub1 \\ \index{get-link-table-entry-link-segme!nt-cstk-sub1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+({\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}) $-\;1$, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $-\;1$, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-tstk-add1 \\ \index{get-link-table-entry-link-segme!nt-tstk-add1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length} $-\;1$)))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+$1\;+$ ({\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}), \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+$1\;+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-tstk-sub1 \\ \index{get-link-table-entry-link-segme!nt-tstk-sub1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+({\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}) $-\;1$, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $-\;1$, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\-\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}

\begin{verbatim}; We now need for put all of the stuff we have developed for get...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-append-1 \\ \index{put-append-1}
({\it{n\/}} $<$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{a\/}})\index{put}, {\it{b\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append-2 \\ \index{put-append-2}
\=\+({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, {\it{n\/}} $+$ {\it{k\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{put}}\,({\it{val\/}}, {\it{k\/}}, {\it{b\/}})\index{put}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append-3 \\ \index{put-append-3}
\=\+(({\it{n1\/}} $=$ {\rm{length}}\,({\it{a1\/}})\index{length}) $\wedge$ ({\it{n2\/}} $=$ {\rm{length}}\,({\it{a2\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val\/}}, {\it{n2\/}} $+$ {\it{n1\/}} $+$ {\it{k\/}}, {\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\it{b\/}})))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\rm{put}}\,({\it{val\/}}, {\it{k\/}}, {\it{b\/}})\index{put})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append-2-add1 \\ \index{put-append-2-add1}
\=\+({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, $1\;+$ ({\it{n\/}} $+$ {\it{k\/}}), {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{put}}\,({\it{val\/}}, $1\;+$ {\it{k\/}}, {\it{b\/}})\index{put}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append-2-sub1 \\ \index{put-append-2-sub1}
\=\+(({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\wedge$ ({\it{k\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, ({\it{n\/}} $+$ {\it{k\/}}) $-\;1$, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{put}}\,({\it{val\/}}, {\it{k\/}} $-\;1$, {\it{b\/}})\index{put}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append-3-add1 \\ \index{put-append-3-add1}
\=\+(({\it{n1\/}} $=$ {\rm{length}}\,({\it{a1\/}})\index{length}) $\wedge$ ({\it{n2\/}} $=$ {\rm{length}}\,({\it{a2\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val\/}}, $1\;+$ ({\it{n2\/}} $+$ {\it{n1\/}} $+$ {\it{k\/}}), {\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\it{b\/}})))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\rm{put}}\,({\it{val\/}}, $1\;+$ {\it{k\/}}, {\it{b\/}})\index{put})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append-3-sub1 \\ \index{put-append-3-sub1}
\=\+(({\it{n1\/}} $=$ {\rm{length}}\,({\it{a1\/}})\index{length}) $\wedge$ ({\it{n2\/}} $=$ {\rm{length}}\,({\it{a2\/}})\index{length}) $\wedge$ ({\it{k\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val\/}}, ({\it{n2\/}} $+$ {\it{n1\/}} $+$ {\it{k\/}}) $-\;1$, {\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\it{b\/}})))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\it{a1\/}}, {\rm{append}}\,({\it{a2\/}}, {\rm{put}}\,({\it{val\/}}, {\it{k\/}} $-\;1$, {\it{b\/}})\index{put})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-area \\ \index{put-link-area}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-area}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put}, {\it{tables\/}}, {\it{word-size\/}})\index{link-area} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
{\it{n\/}}, \\ 
{\rm{link-area}}\,({\it{lst\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-area})\-\index{put})\-\-
\end{tabbing}

\begin{verbatim}; Now we do for put and link-segment what we did for get and link-segment:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-link-segment \\ \index{put-link-segment}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
{\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})))\-\index{put}, \\ 
{\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
\=\+{\rm{link-table-entry}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}\-, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{verbatim}; And now we prove the cstk and tstk versions of the above, with
; the add1/sub1 variants.  These six lemmas, all just variations on
; the basic one above, should explain all of our deposits into the
; cstk and tstk areas.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-link-segment-cstk \\ \index{put-link-segment-cstk}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,({\it{val\/}}, {\it{stk-ptr\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{put}, \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
{\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{stk-ptr\/}}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-segment-tstk \\ \index{put-link-segment-tstk}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,({\it{val\/}}, {\it{stk-ptr\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{put}, \\ 
{\tt{'}}{\tt{tstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
{\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{stk-ptr\/}}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-segment-cstk-add1 \\ \index{put-link-segment-cstk-add1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\it{stk-ptr\/}}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
$1\;+$ {\it{stk-ptr\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\-\index{put}, \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
$1\;+$ ({\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{stk-ptr\/}}), \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-segment-cstk-sub1 \\ \index{put-link-segment-cstk-sub1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
{\it{stk-ptr\/}} $-\;1$, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\-\index{put}, \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
({\rm{link-table-entry}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{stk-ptr\/}}) $-\;1$, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-segment-tstk-add1 \\ \index{put-link-segment-tstk-add1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\it{stk-ptr\/}}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
$1\;+$ {\it{stk-ptr\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\-\index{put}, \\ 
{\tt{'}}{\tt{tstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
$1\;+$ ({\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{stk-ptr\/}}), \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-segment-tstk-sub1 \\ \index{put-link-segment-tstk-sub1}
\=\+(\=\+{\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{stk-ptr\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
{\it{stk-ptr\/}} $-\;1$, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\-\index{put}, \\ 
{\tt{'}}{\tt{tstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
({\rm{link-table-entry}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{stk-ptr\/}}) $-\;1$, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-put-assoc \\ \index{definedp-put-assoc}
{\rm{definedp}}\,({\it{name\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{segment\/}})\index{put-assoc})\index{definedp} $=$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  link-table-entry-put-assoc \\ \index{link-table-entry-put-assoc}
\=\+({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name2\/}}, {\it{segment\/}})))\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-table-entry}}\,({\it{name\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{segment\/}})\index{put-assoc})\index{link-table-entry} \\ 
$=$$\;\;\;\;${\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  link-table-for-segment-put-assoc \\ \index{link-table-for-segment-put-asso!c}
\=\+({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name2\/}}, {\it{segment\/}})))\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-table-for-segment}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{segment\/}})\index{put-assoc}, {\it{addr\/}})\index{link-table-for-segment} \\ 
$=$$\;\;\;\;${\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr\/}})\index{link-table-for-segment})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-append \\ \index{equal-append}
({\rm{append}}\,({\it{a\/}}, {\it{b\/}}) $=$ {\rm{append}}\,({\it{a\/}}, {\it{c\/}})) $=$ ({\it{b\/}} $=$ {\it{c\/}})
\end{tabbing}

\begin{verbatim}; We also need...


\end{verbatim}
\noindent{\sc Event}:   Disable i-objectp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  unlabel-i-objectp \\ \index{unlabel-i-objectp}
{\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} $\rightarrow$ ({\rm{unlabel}}\,({\it{x\/}})\index{unlabel} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlabel-tagged-object \\ \index{unlabel-tagged-object}
({\rm{type}}\,({\it{x\/}})\index{type} $\not=$ {\tt{'}}{\tt{dl}}) $\rightarrow$ ({\rm{unlabel}}\,({\it{x\/}})\index{unlabel} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  link-area-put-unlabel \\ \index{link-area-put-unlabel}
\=\+{\rm{i-objectp}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{i\/}})\index{i-objectp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-area}}\,({\rm{put}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{n\/}}, {\it{lst\/}})\index{put}, {\it{tables\/}}, {\it{word-size\/}})\index{link-area} \\ 
$=$$\;\;\;\;${\rm{link-area}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put}, {\it{tables\/}}, {\it{word-size\/}})\index{link-area})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  link-segment-put-unlabel \\ \index{link-segment-put-unlabel}
\=\+{\rm{i-objectp}}\,({\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, {\it{i\/}})\index{i-objectp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\rm{unlabel}}\,({\it{val\/}})\index{unlabel}, \\ 
{\it{offset\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\-\index{put}, \\ 
{\it{name\/}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment} \\ 
$=$$\;\;\;\;${\rm{link-segment}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
{\it{offset\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\-\index{put}, \\ 
{\it{name\/}}, \\ 
{\it{segment\/}})\-\index{put-assoc}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-1 \\ \index{difference-1}
({\it{x\/}} $-$ {\tt{1}}) $=$ ({\it{x\/}} $-\;1$)
\end{tabbing}


\noindent{\sc Event}:   Disable int-to-v.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  tc-add-is-iplus \\ \index{tc-add-is-iplus}
{\rm{tc-add}}\,({\it{x\/}}, {\it{y\/}})\index{tc-add} $=$ {\rm{iplus}}\,({\it{x\/}}, {\it{y\/}})\index{iplus}
\end{tabbing}


\noindent{\sc Event}:   Disable add.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  tc-in-rangep-is-small-integerp \\ \index{tc-in-rangep-is-small-integerp}
\=\+({\rm{integerp}}\,({\it{x\/}})\index{integerp} $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{tc-in-rangep}}\,({\it{x\/}}, {\it{word-size\/}})\index{tc-in-rangep} $=$ {\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable tc-in-rangep.

\addvspace{18pt}


\noindent{\sc Event}:   Enable integerp-iplus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  small-integerp-implies-integerp \\ \index{small-integerp-implies-integerp}
{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} $\rightarrow$ {\rm{integerp}}\,({\it{x\/}})\index{integerp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitn-of-positive-is-f \\ \index{bitn-of-positive-is-f}
\=\+({\it{i\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bitn}}\,({\rm{nat-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{nat-to-v}, {\it{word-size\/}})\index{bitn} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-exp-sub1-exp \\ \index{lessp-exp-sub1-exp}
({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  incr-f \\ \index{incr-f}
{\rm{bvp}}\,({\it{b\/}})\index{bvp} $\rightarrow$ ({\rm{incr}}\,({\bf{f}}, {\it{b\/}})\index{incr} $=$ {\it{b\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  compl-compl \\ \index{compl-compl}
{\rm{bvp}}\,({\it{b\/}})\index{bvp} $\rightarrow$ ({\rm{v-not}}\,({\rm{v-not}}\,({\it{b\/}})\index{v-not})\index{v-not} $=$ {\it{b\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-int-inverts-int-to-v-lemma1 \\ \index{v-to-int-inverts-int-to-v-lemma!1}
\=\+(\=\+({\it{x\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp} $\not<$ {\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-to-nat}}\,({\rm{incr}}\,({\bf{t}}, {\rm{v-not}}\,({\rm{incr}}\,({\bf{t}}, {\rm{v-not}}\,({\rm{nat-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{nat-to-v})\index{v-not})\index{incr})\index{v-not})\index{incr})\index{v-to-nat} $=$ {\it{x\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitn-nat-to-v-0 \\ \index{bitn-nat-to-v-0}
\=\+{\rm{bitn}}\,({\rm{nat-to-v}}\,({\tt{0}}, {\it{k\/}})\index{nat-to-v}, {\it{i\/}})\index{bitn} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{i\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\it{k\/}} $<$ {\it{i\/}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; In fm8502 days we proved
; (prove-lemma not-zerop-size-implies-not-equal-bv-btm (rewrite)
;   (implies (not (zerop (length x)))
;            (not (equal x (btm)))))
; but I'm going with equal-length-0 now:

\end{verbatim}
\noindent{\sc Event}:   Enable equal-length-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  bitn-compl \\ \index{bitn-compl}
(({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\rm{length}}\,({\it{b\/}})\index{length} $\not<$ {\it{n\/}})) $\rightarrow$ ({\rm{bitn}}\,({\rm{v-not}}\,({\it{b\/}})\index{v-not}, {\it{n\/}})\index{bitn} $=$ ($\neg$ {\rm{bitn}}\,({\it{b\/}}, {\it{n\/}})\index{bitn}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  times-non-numberp \\ \index{times-non-numberp}
({\it{x\/}} $\not\in\;${\bf{N}}${}$) $\rightarrow$ (({\it{y\/}} $*$ {\it{x\/}}) $=$ {\tt{0}})
\end{tabbing}


\noindent{\sc Event}:   Enable difference-plus-cancellation.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  remainder-times \\ \index{remainder-times}
(({\it{x\/}} $*$ {\it{y\/}}) ${}${\bf{mod}}${}$ {\it{x\/}}) $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-exp-2-2 \\ \index{remainder-exp-2-2}
\=\+({\rm{exp}}\,({\tt{2}}, {\it{x\/}})\index{exp} ${}${\bf{mod}}${}$ {\tt{2}}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  my-quotient-times \\ \index{my-quotient-times}
({\it{x\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ((({\it{x\/}} $*$ {\it{y\/}}) $\div$ {\it{x\/}}) $=$ {\rm{fix}}\,({\it{y\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  quotient-exp-2-2 \\ \index{quotient-exp-2-2}
({\it{x\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ (({\rm{exp}}\,({\tt{2}}, {\it{x\/}})\index{exp} $\div$ {\tt{2}}) $=$ {\rm{exp}}\,({\tt{2}}, {\it{x\/}} $-\;1$)\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitn-exp-2-sub1-word-size \\ \index{bitn-exp-2-sub1-word-size}
\=\+({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bitn}}\,({\rm{nat-to-v}}\,({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp}, {\it{word-size\/}})\index{nat-to-v}, {\it{word-size\/}})\index{bitn} $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitn-of-negatives-is-t-lemma \\ \index{bitn-of-negatives-is-t-lemma}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp} $\not<$ {\it{x\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bitn}}\,({\rm{nat-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{nat-to-v}, {\it{word-size\/}})\index{bitn} \\ 
$=$$\;\;\;\;$({\it{x\/}} $=$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitn-of-negatives-is-t-lemma-hyp \\ \index{bitn-of-negatives-is-t-lemma-hyp}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp} $\not<$ {\it{i\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp} $\not<$ ({\it{i\/}} $\div$ {\tt{2}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  incr-f-is-noop \\ \index{incr-f-is-noop}
\=\+{\rm{bitn}}\,({\rm{incr}}\,({\bf{f}}, {\it{v\/}})\index{incr}, {\it{n\/}})\index{bitn} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{length}}\,({\it{v\/}})\index{length} $<$ {\it{n\/}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{bitn}}\,({\it{v\/}}, {\it{n\/}})\index{bitn}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable plus-commutes2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  bitn-cons \\ \index{bitn-cons}
\=\+{\rm{bitn}}\,({\rm{cons}}\,({\it{b\/}}, {\it{v\/}}), {\it{i\/}})\index{bitn} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{i\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\it{i\/}} $=$ {\tt{1}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\rm{bitn}}\,({\it{v\/}}, {\it{i\/}} $-\;1$)\index{bitn}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitn-of-negatives-is-t \\ \index{bitn-of-negatives-is-t}
\=\+(({\it{i\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}} $-\;1$)\index{exp} $\not<$ {\it{i\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bitn}}\,({\rm{incr}}\,({\bf{t}}, {\rm{v-not}}\,({\rm{nat-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{nat-to-v})\index{v-not})\index{incr}, {\it{word-size\/}})\index{bitn} $=$ {\bf{t}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable incr-f-is-noop.

\addvspace{18pt}

\noindent{\sc Event}:   Disable bitn-cons.

\addvspace{18pt}

\noindent{\sc Event}:   Disable bitn-of-negatives-is-t-lemma.

\addvspace{18pt}

\noindent{\sc Event}:   Disable bitn-of-negatives-is-t-lemma-hyp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  v-to-int-inverts-int-to-v \\ \index{v-to-int-inverts-int-to-v}
\=\+({\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp} $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-to-int}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v})\index{v-to-int} $=$ {\it{i\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-int-inverts-link-word \\ \index{v-to-int-inverts-link-word}
\=\+(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-to-int}}\,({\rm{link-word}}\,({\it{x\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-word})\index{v-to-int} $=$ {\rm{untag}}\,({\it{x\/}})\index{untag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-equal-link-word-btm \\ \index{not-equal-link-word-btm}
{\rm{listp}}\,({\rm{link-word}}\,({\it{x\/}}, {\it{tables\/}}, {\tt{32}})\index{link-word})
\end{tabbing}


\noindent{\sc Event}:   Enable commutativity-of-iplus.

\addvspace{18pt}

\begin{verbatim}; Initially, my owc step theorems were stated in terms of i-ins-okp
; and i-step.  But now I use the -okp and -step function specific to
; the given current-instruction.  Frequently the attempt to prove a
; owc step theorem exposes bugs in the -okp or -step function for
; the instruction.  If the previously proved owc step theorems are
; stated in terms of the i-ins-okp and i-step those previously proved
; theorems must be proved again when the -okp and -step functions for
; the current instruction are redefined.

; Here I have inserted a new theorem, m-step1-opener, that play the
; role that m-step1-expander did in fm8502.

\end{verbatim}
\noindent{\sc Event}:   Enable remainder-plus-x-x-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  remainder-add1-plus-x-x-2 \\ \index{remainder-add1-plus-x-x-2}
(($1\;+$ ({\it{x\/}} $+$ {\it{x\/}})) ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  nat-to-v-inverts-v-to-nat \\ \index{nat-to-v-inverts-v-to-nat}
{\rm{bvp}}\,({\it{v\/}})\index{bvp} $\rightarrow$ ({\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat}, {\rm{length}}\,({\it{v\/}})\index{length})\index{nat-to-v} $=$ {\it{v\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  backchainer-trick \\ \index{backchainer-trick}
\=\+({\rm{bvp}}\,({\it{v\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{v\/}})\index{length} $\not<$ {\it{word-size\/}}) $\wedge$ ({\rm{v-to-nat}}\,({\it{v\/}})\index{v-to-nat} $=$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{firstn}}\,({\it{word-size\/}}, {\it{v\/}})\index{firstn} $=$ {\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v}) $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-adder-t-0-is-nat-to-v-add1 \\ \index{v-adder-t-0-is-nat-to-v-add1}
\=\+(({\it{pc\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ (($1\;+$ {\it{pc\/}}) $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,(\=\+{\it{word-size\/}}, \\ 
{\rm{v-adder}}\,({\bf{t}}, {\rm{nat-to-v}}\,({\it{pc\/}}, {\it{word-size\/}})\index{nat-to-v}, {\rm{nat-to-v}}\,({\tt{0}}, {\it{word-size\/}})\index{nat-to-v})\index{v-adder})\-\index{firstn} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,($1\;+$ {\it{pc\/}}, {\it{word-size\/}})\index{nat-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-adder-f-1-is-nat-to-v-sub1 \\ \index{v-adder-f-1-is-nat-to-v-sub1}
\=\+(({\it{pc\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{pc\/}} $\not=$ {\tt{0}}) $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{pc\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,(\=\+{\it{word-size\/}}, \\ 
{\rm{v-adder}}\,(\=\+{\bf{f}}, \\ 
{\rm{v-not}}\,({\rm{nat-to-v}}\,({\tt{0}}, {\it{word-size\/}})\index{nat-to-v})\index{v-not}, \\ 
{\rm{nat-to-v}}\,({\it{pc\/}}, {\it{word-size\/}})\index{nat-to-v})\-\index{v-adder})\-\index{firstn} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\it{pc\/}} $-\;1$, {\it{word-size\/}})\index{nat-to-v})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable backchainer-trick.

\addvspace{18pt}

\noindent{\sc Event}:   Disable nat-to-v-inverts-v-to-nat.

\addvspace{18pt}

\noindent{\sc Event}:   Disable remainder-add1-plus-x-x-2.

\addvspace{18pt}

\noindent{\sc Event}:   Disable remainder-plus-x-x-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  v-inc-nat-to-v \\ \index{v-inc-nat-to-v}
\=\+(({\it{i\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ (($1\;+$ {\it{i\/}}) $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-inc}}\,({\rm{nat-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{nat-to-v})\index{v-inc} $=$ {\rm{nat-to-v}}\,($1\;+$ {\it{i\/}}, {\it{word-size\/}})\index{nat-to-v})\-
\end{tabbing}


\noindent{\sc Event}:   Disable v-inc.

\addvspace{18pt}


\noindent{\sc Event}:   Enable bvp-nat-to-v.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  v-dec-nat-to-v \\ \index{v-dec-nat-to-v}
\=\+(({\it{i\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-dec}}\,({\rm{nat-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{nat-to-v})\index{v-dec} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{i\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{nat-to-v}}\,({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp} $-\;1$, {\it{word-size\/}})\index{nat-to-v} \\ 
{\bf else }{\rm{nat-to-v}}\,({\it{i\/}} $-\;1$, {\it{word-size\/}})\index{nat-to-v}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable v-dec.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  m-step1-opener \\ \index{m-step1-opener}
\=\+(({\it{pc\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ (($1\;+$ {\it{pc\/}}) $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-step1}}\,(\=\+{\rm{cons}}\,({\it{ins0\/}}, {\it{ins1-31\/}}), \\ 
{\rm{m-state}}\,(\=\+{\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,({\it{pc\/}}, {\it{word-size\/}})\index{nat-to-v})\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}})\-\index{m-state})\-\index{m-step1} \\ 
$=$$\;\;\;\;${\rm{m-operand-a}}\,(\=\+{\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,($1\;+$ {\it{pc\/}}, {\it{word-size\/}})\index{nat-to-v})\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\rm{cons}}\,({\it{ins0\/}}, {\it{ins1-31\/}}))\-\index{m-operand-a})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-step1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  bvp-bitv-to-v \\ \index{bvp-bitv-to-v}
{\rm{bvp}}\,({\rm{bitv-to-v}}\,({\it{bv\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{bvp}
\end{tabbing}

\begin{verbatim}; A lemma bvp-int-to-v exists in fm9001.events, but it did not
; originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-bvp-int-to-v \\ \index{my-bvp-int-to-v}
{\rm{bvp}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v})\index{bvp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-link-word \\ \index{bvp-link-word}
{\rm{bvp}}\,({\rm{link-word}}\,({\it{x\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word})\index{bvp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_x\_x \\ \index{i-m-one-way-correspondence-step!-move\_x\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_x-okp}}\,({\it{i\/}})\index{i-move\_x\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_x\_x-step}}\,({\it{i\/}})\index{i-move\_x\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; This next segment has been added during the fm9001 port, to speed up
; the processing of the new fns introduced there.

; I had this around in the fm9001 effort before backing up and
; disabling v-inc and v-dec...

;(prove-lemma v-adder-t-0-is-nat-to-v-add1-32 (rewrite)
;  (implies (and (numberp pc)
;               (lessp (add1 pc) (exp 2 32)))
;          (equal (firstn 32
;                         (v-adder t
;                                  (nat-to-v pc 32)
;                                  (LIST F F F F F F F F F F F F F F F F
;                                        F F F F F F F F F F F F F F F F)))
;                 (nat-to-v (add1 pc) 32)))
;  ((disable v-adder-t-0-is-nat-to-v-add1)
;   (use (v-adder-t-0-is-nat-to-v-add1 (word-size 32)))))

; The following theorem delays the opening of m-operand-a until the
; reg file has been put into normal form.  Note that this means we
; list all 16 regs and the pc is (NAT-TO-V & 32). Use of the free var
; regs in the hyp is arranged to save the repeated rewriting of it in
; the rhs of the concl.  The conclusion is just what (ppsd
; 'm-operand-a) prints, except for the list-expr in the regs slot on
; the lhs.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  m-operand-a-opener \\ \index{m-operand-a-opener}
\=\+({\it{regs\/}} $=$ {\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,({\it{pc\/}}, {\tt{32}})\index{nat-to-v})\-) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-operand-a}}\,(\=\+{\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,({\it{pc\/}}, {\tt{32}})\index{nat-to-v})\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}})\-\index{m-operand-a} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{a-immediate-p}}\,({\it{ins\/}})\index{a-immediate-p} \\ 
{\bf then }{\rm{m-operand-b}}\,(\=\+{\it{regs\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\rm{sign-extend}}\,({\rm{a-immediate}}\,({\it{ins\/}})\index{a-immediate}, {\tt{32}})\index{sign-extend})\-\index{m-operand-b} \\ 
{\bf elseif }{\rm{pre-dec-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{pre-dec-p} \\ 
{\bf then }\=\+{\bf if }{\rm{reg-direct-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-operand-b}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-dec})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1})\-\index{m-operand-b} \\ 
{\bf else }{\rm{m-operand-b}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-dec})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\rm{v-nth1}}\,(\=\+{\rm{v-dec}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-dec}, \\ 
{\it{mem\/}})\-\index{v-nth1})\-\index{m-operand-b}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{post-inc-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{post-inc-p} \\ 
{\bf then }\=\+{\bf if }{\rm{reg-direct-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-operand-b}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-inc})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1})\-\index{m-operand-b} \\ 
{\bf else }{\rm{m-operand-b}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-inc})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\rm{v-nth1}}\,({\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1}, {\it{mem\/}})\index{v-nth1})\-\index{m-operand-b}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{reg-direct-p}}\,({\rm{mode-a}}\,({\it{ins\/}})\index{mode-a})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-operand-b}}\,({\it{regs\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{mem\/}}, {\it{ins\/}}, {\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1})\index{m-operand-b} \\ 
{\bf else }{\rm{m-operand-b}}\,(\=\+{\it{regs\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\rm{v-nth1}}\,({\rm{v-nth1}}\,({\rm{rn-a}}\,({\it{ins\/}})\index{rn-a}, {\it{regs\/}})\index{v-nth1}, {\it{mem\/}})\index{v-nth1})\-\index{m-operand-b}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-operand-a.

\addvspace{18pt}

\begin{verbatim}; Now we repeat the exercise for m-operand-b.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  m-operand-b-opener \\ \index{m-operand-b-opener}
\=\+({\it{regs\/}} $=$ {\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,({\it{pc\/}}, {\tt{32}})\index{nat-to-v})\-) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-operand-b}}\,(\=\+{\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\rm{nat-to-v}}\,({\it{pc\/}}, {\tt{32}})\index{nat-to-v})\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}})\-\index{m-operand-b} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{pre-dec-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{pre-dec-p} \\ 
{\bf then }\=\+{\bf if }{\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-alu-operation}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-dec})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\index{v-dec})\-\index{m-alu-operation} \\ 
{\bf else }{\rm{m-alu-operation}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-dec})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\rm{v-nth1}}\,(\=\+{\rm{v-dec}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-dec}, \\ 
{\it{mem\/}})\-\index{v-nth1}, \\ 
{\rm{v-dec}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\index{v-dec})\-\index{m-alu-operation}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{post-inc-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{post-inc-p} \\ 
{\bf then }\=\+{\bf if }{\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-alu-operation}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-inc})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\-\index{m-alu-operation} \\ 
{\bf else }{\rm{m-alu-operation}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{v-inc}}\,({\rm{v-nth1}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}})\-\index{v-nth1})\index{v-inc})\-\index{update-v-nth}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\rm{v-nth1}}\,(\=\+{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}, \\ 
{\it{mem\/}})\-\index{v-nth1}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\-\index{m-alu-operation}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-alu-operation}}\,(\=\+{\it{regs\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\-\index{m-alu-operation} \\ 
{\bf else }{\rm{m-alu-operation}}\,(\=\+{\it{regs\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\rm{v-nth1}}\,({\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1}, {\it{mem\/}})\index{v-nth1}, \\ 
{\rm{v-nth1}}\,({\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, {\it{regs\/}})\index{v-nth1})\-\index{m-alu-operation}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-operand-b.

\addvspace{18pt}

\begin{verbatim}; In watching expansions we have found that the following fact comes up
; and causes a split, which we wish to avoid.  Note that we have
; generalized (I-SYS-DATA-SEGMENT I) to I-SYS-DATA-SEGMENT so we can
; induct here.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  non-zero-total-i-system-size \\ \index{non-zero-total-i-system-size}
\=\+(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-tsp}}\,({\it{i\/}})\index{i-tsp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{i-sys-data-segment\/}})))\index{length})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\it{i-sys-data-segment\/}})\index{segment-length})\- \\ 
$\not=$$\;\;\;\;${\tt{0}})\-\-
\end{tabbing}

\begin{verbatim}; And again for m-alu-operation...except this time we also eliminate the
; B-IF's in m-alu-operation (in favor of plain IFs, which we hypothesize
; have boolp args).

\end{verbatim}
\noindent{\sc Event}:   Disable boolp.

\addvspace{18pt}


\begin{verbatim}; I am not sure if these two should be shut down or not.  But I will
; shut them down and we'll see...

\end{verbatim}
\noindent{\sc Event}:   Disable zb.

\addvspace{18pt}

\noindent{\sc Event}:   Disable n.

\addvspace{18pt}

\begin{verbatim}; To eliminate b-if without explosion, we have to be careful.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  b-if-is-if \\ \index{b-if-is-if}
\=\+({\rm{boolp}}\,({\it{a\/}})\index{boolp} $\wedge$ {\rm{boolp}}\,({\it{b\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{b-if}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}})\index{b-if} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{c\/}}$\;\;${\bf then }{\it{a\/}} \\ 
{\bf else }{\it{b\/}}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable b-if.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  m-alu-operation-opener \\ \index{m-alu-operation-opener}
\=\+(\=\+({\it{regs\/}} $=$ {\rm{list}}\,({\it{r0\/}}, {\it{r1\/}}, {\it{r2\/}}, {\it{r3\/}}, {\it{r4\/}}, {\it{r5\/}}, {\it{r6\/}}, {\it{r7\/}}, {\it{r8\/}}, {\it{r9\/}}, {\it{r10\/}}, {\it{r11\/}}, {\it{r12\/}}, {\it{r13\/}}, {\it{r14\/}}, {\it{pc\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{c\/}})\index{boolp} \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{v\/}})\index{boolp} \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{n\/}})\index{boolp} \\ 
$\wedge$$\;\;\;\;${\rm{boolp}}\,({\it{z\/}})\index{boolp} \\ 
$\wedge$$\;\;\;\;${\rm{bvp}}\,({\it{operand-a\/}})\index{bvp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{operand-a\/}})\index{length} $\not=$ {\tt{0}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m-alu-operation}}\,(\=\+{\rm{list}}\,(\=\+{\it{r0\/}}, \\ 
{\it{r1\/}}, \\ 
{\it{r2\/}}, \\ 
{\it{r3\/}}, \\ 
{\it{r4\/}}, \\ 
{\it{r5\/}}, \\ 
{\it{r6\/}}, \\ 
{\it{r7\/}}, \\ 
{\it{r8\/}}, \\ 
{\it{r9\/}}, \\ 
{\it{r10\/}}, \\ 
{\it{r11\/}}, \\ 
{\it{r12\/}}, \\ 
{\it{r13\/}}, \\ 
{\it{r14\/}}, \\ 
{\it{pc\/}})\-, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\it{mem\/}}, \\ 
{\it{ins\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\it{b-address\/}})\-\index{m-alu-operation} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{m-store-resultp}}\,({\rm{store-cc}}\,({\it{ins\/}})\index{store-cc}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}})\index{m-store-resultp} \\ 
{\bf then }\=\+{\bf if }{\rm{reg-direct-p}}\,({\rm{mode-b}}\,({\it{ins\/}})\index{mode-b})\index{reg-direct-p} \\ 
{\bf then }{\rm{m-state}}\,(\=\+{\rm{update-v-nth}}\,(\=\+{\rm{rn-b}}\,({\it{ins\/}})\index{rn-b}, \\ 
{\it{regs\/}}, \\ 
{\rm{bv}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{bv})\-\index{update-v-nth}, \\ 
\=\+{\bf if }{\rm{c-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{c-set} \\ 
{\bf then }{\rm{c}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{c} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{v-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{v-set} \\ 
{\bf then }{\rm{v}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{v} \\ 
{\bf else }{\it{v\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{n-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{n-set} \\ 
{\bf then }{\rm{n}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{n} \\ 
{\bf else }{\it{n\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{z-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{z-set} \\ 
{\bf then }{\rm{zb}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{zb} \\ 
{\bf else }{\it{z\/}}$\;${\bf  endif}\-, \\ 
{\it{mem\/}})\-\index{m-state} \\ 
{\bf else }{\rm{m-state}}\,(\=\+{\it{regs\/}}, \\ 
\=\+{\bf if }{\rm{c-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{c-set} \\ 
{\bf then }{\rm{c}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{c} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{v-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{v-set} \\ 
{\bf then }{\rm{v}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{v} \\ 
{\bf else }{\it{v\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{n-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{n-set} \\ 
{\bf then }{\rm{n}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{n} \\ 
{\bf else }{\it{n\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{z-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{z-set} \\ 
{\bf then }{\rm{zb}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{zb} \\ 
{\bf else }{\it{z\/}}$\;${\bf  endif}\-, \\ 
{\rm{update-v-nth}}\,(\=\+{\it{b-address\/}}, \\ 
{\it{mem\/}}, \\ 
{\rm{bv}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{bv})\-\index{update-v-nth})\-\index{m-state}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{m-state}}\,(\=\+{\it{regs\/}}, \\ 
\=\+{\bf if }{\rm{c-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{c-set} \\ 
{\bf then }{\rm{c}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{c} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{v-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{v-set} \\ 
{\bf then }{\rm{v}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{v} \\ 
{\bf else }{\it{v\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{n-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{n-set} \\ 
{\bf then }{\rm{n}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{n} \\ 
{\bf else }{\it{n\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\rm{z-set}}\,({\rm{set-flags}}\,({\it{ins\/}})\index{set-flags})\index{z-set} \\ 
{\bf then }{\rm{zb}}\,({\rm{v-alu}}\,(\=\+{\it{c\/}}, \\ 
{\it{operand-a\/}}, \\ 
{\it{operand-b\/}}, \\ 
{\rm{op-code}}\,({\it{ins\/}})\index{op-code})\-\index{v-alu})\index{zb} \\ 
{\bf else }{\it{z\/}}$\;${\bf  endif}\-, \\ 
{\it{mem\/}})\-\index{m-state}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable m-alu-operation.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-cpush\_* \\ \index{i-m-one-way-correspondence-step!-cpush\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_*-okp}}\,({\it{i\/}})\index{i-cpush\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-cpush\_*-step}}\,({\it{i\/}})\index{i-cpush\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_$<$tsp$>$\{i\}\_x\{i\} \\ \index{i-m-one-way-correspondence-step!-add\_$<$tsp$>$\{i\}\_x\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-cpush\_cfp \\ \index{i-m-one-way-correspondence-step!-cpush\_cfp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_cfp-okp}}\,({\it{i\/}})\index{i-cpush\_cfp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_cfp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-cpush\_cfp-step}}\,({\it{i\/}})\index{i-cpush\_cfp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_cfp\_csp \\ \index{i-m-one-way-correspondence-step!-move\_cfp\_csp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_cfp\_csp-okp}}\,({\it{i\/}})\index{i-move\_cfp\_csp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_cfp\_csp-step}}\,({\it{i\/}})\index{i-move\_cfp\_csp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-cpush\_$<$tsp$>$+ \\ \index{i-m-one-way-correspondence-step!-cpush\_$<$tsp$>$+}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_$<$tsp$>$+-okp}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-cpush\_$<$tsp$>$+-step}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_csp\_cfp \\ \index{i-m-one-way-correspondence-step!-move\_csp\_cfp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_csp\_cfp-okp}}\,({\it{i\/}})\index{i-move\_csp\_cfp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_csp\_cfp-step}}\,({\it{i\/}})\index{i-move\_csp\_cfp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_x\_tsp \\ \index{i-m-one-way-correspondence-step!-move\_x\_tsp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_tsp-okp}}\,({\it{i\/}})\index{i-move\_x\_tsp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_tsp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_x\_tsp-step}}\,({\it{i\/}})\index{i-move\_x\_tsp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-cpop\_cfp \\ \index{i-m-one-way-correspondence-step!-cpop\_cfp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpop\_cfp-okp}}\,({\it{i\/}})\index{i-cpop\_cfp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpop\_cfp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-cpop\_cfp-step}}\,({\it{i\/}})\index{i-cpop\_cfp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_x\_* \\ \index{i-m-one-way-correspondence-step!-move\_x\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_*-okp}}\,({\it{i\/}})\index{i-move\_x\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_x\_*-step}}\,({\it{i\/}})\index{i-move\_x\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_y\_* \\ \index{i-m-one-way-correspondence-step!-move\_y\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_*-okp}}\,({\it{i\/}})\index{i-move\_y\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_y\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_y\_*-step}}\,({\it{i\/}})\index{i-move\_y\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  icode-instructionp-data-word \\ \index{icode-instructionp-data-word}
({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) $\rightarrow$ ({\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp} $=$ {\bf{f}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-rewrite \\ \index{lessp-absolute-address-segment-!length-rewrite}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ ({\it{offset\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{offset\/}}) \\ 
$<$$\;\;\;\;${\rm{segment-length}}\,({\it{segment\/}})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_x\{n\}\_csp \\ \index{i-m-one-way-correspondence-step!-add\_x\{n\}\_csp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_x\{n\}\_csp-okp}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_x\{n\}\_csp-step}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the theorem below work, I had to change the -okp fn to
; check that the fetch of sys-addr i-x produced an i-objectp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_x\_$<$x\{s\}$>$ \\ \index{i-m-one-way-correspondence-step!-move\_x\_$<$x\{s\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_x\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_y\_$<$y\{s\}$>$ \\ \index{i-m-one-way-correspondence-step!-move\_y\_$<$y\{s\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_$<$y\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_y\_$<$y\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_y\_$<$y\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_y\_tsp \\ \index{i-m-one-way-correspondence-step!-move\_y\_tsp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_tsp-okp}}\,({\it{i\/}})\index{i-move\_y\_tsp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_y\_tsp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_y\_tsp-step}}\,({\it{i\/}})\index{i-move\_y\_tsp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpush\_csp \\ \index{i-m-one-way-correspondence-step!-tpush\_csp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_csp-okp}}\,({\it{i\/}})\index{i-tpush\_csp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_csp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpush\_csp-step}}\,({\it{i\/}})\index{i-tpush\_csp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpush\_tsp \\ \index{i-m-one-way-correspondence-step!-tpush\_tsp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_tsp-okp}}\,({\it{i\/}})\index{i-tpush\_tsp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_tsp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpush\_tsp-step}}\,({\it{i\/}})\index{i-tpush\_tsp-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpush\_x \\ \index{i-m-one-way-correspondence-step!-tpush\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_x-okp}}\,({\it{i\/}})\index{i-tpush\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpush\_x-step}}\,({\it{i\/}})\index{i-tpush\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpush\_$<$x\{s\}$>$ \\ \index{i-m-one-way-correspondence-step!-tpush\_$<$x\{s\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpush\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpush\_$<$x\{a\}$>$ \\ \index{i-m-one-way-correspondence-step!-tpush\_$<$x\{a\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpush\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}


\begin{verbatim}; To make the theorem below work I had to change the -okp function
; to make sure that nextword was an i-objectp

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpush\_* \\ \index{i-m-one-way-correspondence-step!-tpush\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_*-okp}}\,({\it{i\/}})\index{i-tpush\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpush\_*-step}}\,({\it{i\/}})\index{i-tpush\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the theorem below work I had to change the -okp function
; to make sure that the top of tsp was an i-objectp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\_x \\ \index{i-m-one-way-correspondence-step!-tpop\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_x-okp}}\,({\it{i\/}})\index{i-tpop\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\_x-step}}\,({\it{i\/}})\index{i-tpop\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the theorem below work I had to change the -okp function
; to make sure that the top of tsp was an i-objectp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\_y \\ \index{i-m-one-way-correspondence-step!-tpop\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_y-okp}}\,({\it{i\/}})\index{i-tpop\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\_y-step}}\,({\it{i\/}})\index{i-tpop\_y-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\_$<$x\{s\}$>$ \\ \index{i-m-one-way-correspondence-step!-tpop\_$<$x\{s\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  segment-length-put-assoc \\ \index{segment-length-put-assoc}
\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length} $=$ {\rm{length}}\,({\it{val\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{segment-length}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{segment\/}})\index{put-assoc})\index{segment-length} \\ 
$=$$\;\;\;\;${\rm{segment-length}}\,({\it{segment\/}})\index{segment-length})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\_$<$x\{a\}$>$ \\ \index{i-m-one-way-correspondence-step!-tpop\_$<$x\{a\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-assoc \\ \index{car-assoc}
{\rm{definedp}}\,({\it{name\/}}, {\it{alist\/}})\index{definedp} $\rightarrow$ ({\rm{car}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{alist\/}})) $=$ {\it{name\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-link-table-for-prog-labels \\ \index{assoc-link-table-for-prog-label!s}
\=\+(({\it{addr0\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{link-table-for-prog-labels}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-prog-labels})) \\ 
$=$$\;\;\;\;${\rm{link-table-for-labels}}\,(\=\+{\rm{definiens}}\,({\it{name\/}}, {\it{segment\/}})\index{definiens}, \\ 
{\it{addr0\/}} $+$ {\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry})\-\index{link-table-for-labels})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-link-table-for-labels \\ \index{assoc-link-table-for-labels}
\=\+(({\it{addr0\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{find-labelp}}\,({\it{label\/}}, {\it{lst\/}})\index{find-labelp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\it{label\/}}, {\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})) \\ 
$=$$\;\;\;\;$({\it{addr0\/}} $+$ {\rm{find-label}}\,({\it{label\/}}, {\it{lst\/}})\index{find-label}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-jump\_* \\ \index{i-m-one-way-correspondence-step!-jump\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump\_*-okp}}\,({\it{i\/}})\index{i-jump\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-jump\_*-step}}\,({\it{i\/}})\index{i-jump\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-cpop\_pc \\ \index{i-m-one-way-correspondence-step!-cpop\_pc}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpop\_pc-okp}}\,({\it{i\/}})\index{i-cpop\_pc-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpop\_pc}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-cpop\_pc-step}}\,({\it{i\/}})\index{i-cpop\_pc-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_$<$x\{s\}$>$\_$<$tsp$>$ \\ \index{i-m-one-way-correspondence-step!-move\_$<$x\{s\}$>$\_$<$tsp$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_$<$x\{s\}$>$\_$<$tsp$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_$<$x\{a\}$>$\_$<$tsp$>$ \\ \index{i-m-one-way-correspondence-step!-move\_$<$x\{a\}$>$\_$<$tsp$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_$<$x\{a\}$>$\_$<$tsp$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-jump\_x\{subr\} \\ \index{i-m-one-way-correspondence-step!-jump\_x\{subr\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump\_x\{subr\}-okp}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump\_x\{subr\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-jump\_x\{subr\}-step}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bool-to-logical-non-f \\ \index{bool-to-logical-non-f}
({\it{x\/}} $\not=$ {\tt{'}}{\tt{f}}) $\rightarrow$ ({\rm{bool-to-logical}}\,({\it{x\/}})\index{bool-to-logical} $=$ {\bf{t}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-jump-n\_x \\ \index{i-m-one-way-correspondence-step!-jump-n\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-n\_x-okp}}\,({\it{i\/}})\index{i-jump-n\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-jump-n\_x-step}}\,({\it{i\/}})\index{i-jump-n\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-jump-nn\_x \\ \index{i-m-one-way-correspondence-step!-jump-nn\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-nn\_x-okp}}\,({\it{i\/}})\index{i-jump-nn\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-nn\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-jump-nn\_x-step}}\,({\it{i\/}})\index{i-jump-nn\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-jump-z\_x \\ \index{i-m-one-way-correspondence-step!-jump-z\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-z\_x-okp}}\,({\it{i\/}})\index{i-jump-z\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-jump-z\_x-step}}\,({\it{i\/}})\index{i-jump-z\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-jump-nz\_x \\ \index{i-m-one-way-correspondence-step!-jump-nz\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-nz\_x-okp}}\,({\it{i\/}})\index{i-jump-nz\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-jump-nz\_x-step}}\,({\it{i\/}})\index{i-jump-nz\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\_pc \\ \index{i-m-one-way-correspondence-step!-tpop\_pc}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_pc-okp}}\,({\it{i\/}})\index{i-tpop\_pc-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_pc}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\_pc-step}}\,({\it{i\/}})\index{i-tpop\_pc-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the theorem below work I had to change the -okp fn to
; insure that the top of tsp was an i-objectp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\_$<$c$>$\_x \\ \index{i-m-one-way-correspondence-step!-tpop\_$<$c$>$\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$c$>$\_x-okp}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_$<$c$>$\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\_$<$c$>$\_x-step}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the thm below work I had to redefine the -step function
; because it did not include an untag in the computation of the flag.

; A lemma v-nzerop-nat-to-v exists in fm9001.events, but it did not
; originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-v-nzerop-nat-to-v \\ \index{my-v-nzerop-nat-to-v}
({\it{n\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) $\rightarrow$ ({\rm{v-nzerop}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v})\index{v-nzerop} $=$ ({\it{n\/}} $\not\simeq {\tt{0}}$))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-zb-move-15 \\ \index{alu-thm\_bitv-zb-move-15}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{zb}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{t}}))\index{v-alu})\index{zb} $=$ ($\neg$ {\rm{v-nzerop}}\,({\it{a\/}})\index{v-nzerop}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\{n\}\_$<$z$>$\_y \\ \index{i-m-one-way-correspondence-step!-tpop\{n\}\_$<$z$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{n\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\{n\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  size-int-to-v \\ \index{size-int-to-v}
{\rm{length}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}})
\end{tabbing}

\begin{verbatim}; These seem irrelevant and I'm going to skip them for the moment...
; They may have v-nzerop counterparts...

;(prove-lemma v-to-nat-incr-t (rewrite)
;  (equal (v-to-nat (incr t b))
;        (if (all-onesp b)
;            0
;            (add1 (v-to-nat b)))))

;(prove-lemma all-onesp-compl (rewrite)
;  (equal (all-onesp (v-not b))
;        (equal (v-to-nat b) 0)))

\end{verbatim}\begin{tabbing}{\sc Theorem}:  zerop-v-to-nat-int-to-v \\ \index{zerop-v-to-nat-int-to-v}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{v-to-nat}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v})\index{v-to-nat} $=$ {\tt{0}}) $=$ ({\it{i\/}} $=$ {\tt{0}}))\-
\end{tabbing}

\begin{verbatim}; A lemma v-nzerop-int-to-v exists in fm9001.events, but it did not
; originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-v-nzerop-int-to-v \\ \index{my-v-nzerop-int-to-v}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-nzerop}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v})\index{v-nzerop} $=$ ({\it{i\/}} $\not=$ {\tt{0}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-negp-nat-to-v \\ \index{v-negp-nat-to-v}
\=\+(({\it{w\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{n\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{w\/}})\index{exp})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-negp}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\it{w\/}})\index{nat-to-v})\index{v-negp} $=$ ({\it{n\/}} $\not<$ {\rm{exp}}\,({\tt{2}}, {\it{w\/}} $-\;1$)\index{exp}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-negp-int-to-v \\ \index{v-negp-int-to-v}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-negp}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v})\index{v-negp} $=$ {\rm{negativep}}\,({\it{i\/}}))\-
\end{tabbing}


\noindent{\sc Event}:   Disable v-negp-nat-to-v.

\addvspace{18pt}

\begin{verbatim}; I had to change the -step fn below because it failed to set y!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\{i\}\_$<$zn$>$\_y \\ \index{i-m-one-way-correspondence-step!-tpop\{i\}\_$<$zn$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{i\}\_$<$zn$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\{i\}\_$<$zn$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\{b\}\_$<$z$>$\_y \\ \index{i-m-one-way-correspondence-step!-tpop\{b\}\_$<$z$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{b\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\{b\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-zero-bitvp-not-v-nzerop-bitv-to-v \\ \index{all-zero-bitvp-not-v-nzerop-bitv!-to-v}
{\rm{all-zero-bitvp}}\,({\it{b\/}})\index{all-zero-bitvp} $=$ ($\neg$ {\rm{v-nzerop}}\,({\rm{bitv-to-v}}\,({\it{b\/}}, {\rm{length}}\,({\it{b\/}})\index{length})\index{bitv-to-v})\index{v-nzerop})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-bit-vectorp \\ \index{length-bit-vectorp}
{\rm{bit-vectorp}}\,({\it{b\/}}, {\it{word-size\/}})\index{bit-vectorp} $\rightarrow$ ({\rm{length}}\,({\it{b\/}})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-tpop\{v\}\_$<$z$>$\_y \\ \index{i-m-one-way-correspondence-step!-tpop\{v\}\_$<$z$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{v\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-tpop\{v\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; For the next owc lemma it would be useful to have the
; commutativity of plus, but providing it messes up our
; rewrite rules.  We have implicitly assumed we had total
; knowledge of the shape of plus-nests.  The following rule,
; which is elegant in its own right, elevates the two
; plus expressions to the point where linear arithmetic
; can deal with them.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-equal \\ \index{put-equal}
({\rm{put}}\,({\it{val1\/}}, {\it{n\/}}, {\it{lst\/}})\index{put} $=$ {\rm{put}}\,({\it{val2\/}}, {\it{n\/}}, {\it{lst\/}})\index{put}) $=$ ({\it{val1\/}} $=$ {\it{val2\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_$<$tsp$>$\{a\}\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_$<$tsp$>$\{a\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_tsp\_*\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_tsp\_*\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_tsp\_*\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_tsp\_*\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_tsp\_*\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_tsp\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_tsp\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_tsp\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_tsp\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_tsp\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$tsp$>$\{a\}\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$tsp$>$\{a\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_x\{s\}\_y\{n\} \\ \index{i-m-one-way-correspondence-step!-sub\_x\{s\}\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_x\{s\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_x\{s\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-zero-bitvp-xor-bitv \\ \index{all-zero-bitvp-xor-bitv}
\=\+({\rm{bit-vectorp}}\,({\it{a\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{b\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{all-zero-bitvp}}\,({\rm{xor-bitv}}\,({\it{a\/}}, {\it{b\/}})\index{xor-bitv})\index{all-zero-bitvp} $=$ ({\it{a\/}} $=$ {\it{b\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-append-generalized \\ \index{equal-append-generalized}
\=\+({\rm{properp}}\,({\it{a\/}})\index{properp} $\wedge$ {\rm{properp}}\,({\it{b\/}})\index{properp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{append}}\,({\it{a\/}}, {\it{x\/}}) $=$ {\rm{append}}\,({\it{b\/}}, {\it{y\/}})) $=$ (({\it{a\/}} $=$ {\it{b\/}}) $\wedge$ ({\it{x\/}} $=$ {\it{y\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-v-to-bitv \\ \index{properp-v-to-bitv}
{\rm{properp}}\,({\rm{v-to-bitv}}\,({\it{x\/}})\index{v-to-bitv})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-v-to-bitv \\ \index{length-v-to-bitv}
{\rm{length}}\,({\rm{v-to-bitv}}\,({\it{a\/}})\index{v-to-bitv})\index{length} $=$ {\rm{length}}\,({\it{a\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-v-to-bitv \\ \index{equal-v-to-bitv}
\=\+({\rm{bvp}}\,({\it{x\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{y\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{v-to-bitv}}\,({\it{x\/}})\index{v-to-bitv} $=$ {\rm{v-to-bitv}}\,({\it{y\/}})\index{v-to-bitv}) $=$ ({\it{x\/}} $=$ {\it{y\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-append-singleton \\ \index{bit-vectorp-append-singleton}
\=\+({\rm{bitp}}\,({\it{bit\/}})\index{bitp} $\wedge$ {\rm{properp}}\,({\it{a\/}})\index{properp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bit-vectorp}}\,({\rm{append}}\,({\it{a\/}}, {\rm{list}}\,({\it{bit\/}})), {\it{n\/}})\index{bit-vectorp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf else }{\rm{bit-vectorp}}\,({\it{a\/}}, {\it{n\/}} $-\;1$)\index{bit-vectorp}$\;${\bf  endif}\-)\-\-
\end{tabbing}
                  
\begin{tabbing}{\sc Definition}:\index{bit-vectorp-v-to-bitv-hint} \\  
\=\+{\rm{bit-vectorp-v-to-bitv-hint}}\,({\it{a\/}}, {\it{word-size\/}})\index{bit-vectorp-v-to-bitv-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }({\it{word-size\/}} $\simeq {\tt{0}}$) $\vee$ ($\neg$ {\rm{bvp}}\,({\it{a\/}})\index{bvp}) $\vee$ ({\it{a\/}} $\simeq\;${{\bf{nil}}}${}$)$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{bit-vectorp-v-to-bitv-hint}}\,({\rm{cdr}}\,({\it{a\/}}), {\it{word-size\/}} $-\;1$)\index{bit-vectorp-v-to-bitv-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-v-to-bitv-lemma \\ \index{bit-vectorp-v-to-bitv-lemma}
{\rm{bit-vectorp}}\,({\rm{v-to-bitv}}\,({\it{a\/}})\index{v-to-bitv}, {\rm{length}}\,({\it{a\/}})\index{length})\index{bit-vectorp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-v-to-bitv \\ \index{bit-vectorp-v-to-bitv}
{\rm{bit-vectorp}}\,({\rm{v-to-bitv}}\,({\it{a\/}})\index{v-to-bitv}, {\it{word-size\/}})\index{bit-vectorp} $=$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{fix}}\,({\it{word-size\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-v-to-bitv-link-data-word \\ \index{bit-vectorp-v-to-bitv-link-data!-word}
{\rm{bit-vectorp}}\,({\rm{v-to-bitv}}\,({\rm{link-data-word}}\,({\it{x\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-data-word})\index{v-to-bitv}, {\it{word-size\/}})\index{bit-vectorp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-int-to-v \\ \index{equal-int-to-v}
\=\+(\=\+({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{i\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{j\/}}, {\it{word-size\/}})\index{small-integerp})\- \\ 
$\rightarrow$$\;\;\;\;$(({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v} $=$ {\rm{int-to-v}}\,({\it{j\/}}, {\it{word-size\/}})\index{int-to-v}) $=$ ({\it{i\/}} $=$ {\it{j\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-bitv-inverts-bitv-to-v \\ \index{v-to-bitv-inverts-bitv-to-v}
{\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\rightarrow$ ({\rm{v-to-bitv}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{v-to-bitv} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-bitv-to-v \\ \index{equal-bitv-to-v}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v} $=$ {\rm{bitv-to-v}}\,({\it{y\/}}, {\it{word-size\/}})\index{bitv-to-v}) $=$ ({\it{x\/}} $=$ {\it{y\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-bool-inverts-bool-to-v \\ \index{v-to-bool-inverts-bool-to-v}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{booleanp}}\,({\it{x\/}})\index{booleanp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-to-bool}}\,({\rm{bool-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bool-to-v})\index{v-to-bool} $=$ {\it{x\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-bool-to-v \\ \index{equal-bool-to-v}
\=\+(({\it{word-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{booleanp}}\,({\it{x\/}})\index{booleanp} $\wedge$ {\rm{booleanp}}\,({\it{y\/}})\index{booleanp}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{bool-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bool-to-v} $=$ {\rm{bool-to-v}}\,({\it{y\/}}, {\it{word-size\/}})\index{bool-to-v}) $=$ ({\it{x\/}} $=$ {\it{y\/}}))\-
\end{tabbing}

\begin{verbatim}; We now turn to the harder cases of linking, those involving
; the link tables.

; Three of the linkers, namely addr-to-v, sys-addr-to-v, and
; ipc-to-v, use the primitive function absolute-address to
; compute their values.  We therefore first establish that
; absolute-address can be inverted on the link table actually used.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  cons-adp-name-adp-offset \\ \index{cons-adp-name-adp-offset}
{\rm{listp}}\,({\it{adp\/}}) $\rightarrow$ ({\rm{cons}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}) $=$ {\it{adp\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-link-table-for-segment \\ \index{listp-link-table-for-segment}
{\rm{listp}}\,({\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment}) $=$ {\rm{listp}}\,({\it{segment\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdar-link-table-for-segment \\ \index{cdar-link-table-for-segment}
{\rm{listp}}\,({\it{segment\/}}) $\rightarrow$ ({\rm{cdar}}\,({\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment}) $=$ {\it{addr0\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-containing-area-name-link-table-for-segment \\ \index{find-containing-area-name-link-t!able-for-segment}
\=\+{\rm{adpp}}\,({\it{adp\/}}, {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-containing-area-name}}\,(\=\+\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\it{segment\/}}, \\ 
{\it{addr0\/}})\-\index{link-table-for-segment})\-) \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset}\-, \\ 
{\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment})\-\index{find-containing-area-name} \\ 
$=$$\;\;\;\;${\rm{adp-name}}\,({\it{adp\/}})\index{adp-name})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  invert-absolute-address-inverts-absolute-address \\ \index{invert-absolute-address-inverts!-absolute-address}
\=\+{\rm{adpp}}\,({\it{adp\/}}, {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{invert-absolute-address}}\,(\=\+{\rm{absolute-address}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\it{segment\/}}, \\ 
{\it{addr0\/}})\-\index{link-table-for-segment})\-\index{absolute-address}, \\ 
{\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment})\-\index{invert-absolute-address} \\ 
$=$$\;\;\;\;${\it{adp\/}})\-\-
\end{tabbing}

\begin{verbatim}; Now I prove the invertibility results and the equality results for
; each of the three linkers that use absolute-address:  ipc-to-v,
; addr-to-v, and sys-addr-to-v.

; Each linker is used with its own link table.  In fact, if we could
; completely characterize the link table properties we could avoid
; having different theorems for these three linkers and just have a
; general one.  Rather than do that I just prove the appropriate
; result for the link table used by each linker.

; In fact we prove three lemmas for each linker.  The first establishes
; that the absolute address computed for a given link table is small
; enough.  The second is the invertibility result for the link table.
; The third is the equality result.

; Here is the series for prog-segment addresses.

; The following lemma would not be necessary if absolute-address could be
; enabled in the lemma below this.  But the invertibility of absolute-address
; above requires that the fn be disabled.

; The (PLUS LOAD-ADDR ...) term below is just (i-loadablep i load-addr).
; But it is open because it contains the free-var load-addr and will be
; the term we look for to bind that var.



\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-ipc \\ \index{lessp-absolute-address-ipc}
\=\+(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{absolute-address}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment})\-\index{absolute-address} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-\-
\end{tabbing}

\begin{verbatim}; To prove the invertibility result for ipcs and keep it exactly
; symmetric with addrs and sys-addrs, it is necessary to define
; the inverter.  The inverter is not used in the main theorem.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{v-to-ipc} \\  
\=\+{\rm{v-to-ipc}}\,({\it{bv\/}}, {\it{prog-links\/}})\index{v-to-ipc} \\ 
$=$$\;\;\;\;${\rm{invert-absolute-address}}\,({\rm{v-to-nat}}\,({\it{bv\/}})\index{v-to-nat}, {\it{prog-links\/}})\index{invert-absolute-address}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-ipc-inverts-ipc-to-v \\ \index{v-to-ipc-inverts-ipc-to-v}
\=\+({\rm{adpp}}\,({\it{adp\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} $\wedge$ {\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-to-ipc}}\,(\=\+{\rm{ipc-to-v}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{ipc-to-v}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment})\-\index{v-to-ipc} \\ 
$=$$\;\;\;\;${\it{adp\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-ipc-to-v \\ \index{equal-ipc-to-v}
\=\+(\=\+{\rm{adpp}}\,({\it{adp1\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\it{adp2\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{ipc-to-v}}\,(\=\+{\it{adp1\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{ipc-to-v} \\ 
$=$$\;\;\;\;${\rm{ipc-to-v}}\,(\=\+{\it{adp2\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{ipc-to-v})\- \\ 
$=$$\;\;\;\;$({\it{adp1\/}} $=$ {\it{adp2\/}}))\-\-
\end{tabbing}

\begin{verbatim}; So now we repeat the exercise for ADDRs.  That is, we use the usr-data
; segment and its link table...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-usr-data \\ \index{lessp-absolute-address-usr-data}
\=\+(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\- \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{absolute-address}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\it{load-addr\/}})\-\index{link-table-for-segment})\-\index{absolute-address} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-addr-inverts-addr-to-v \\ \index{v-to-addr-inverts-addr-to-v}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\it{adp\/}}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-to-addr}}\,(\=\+{\rm{addr-to-v}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\it{load-addr\/}})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{addr-to-v}, \\ 
{\rm{link-table-for-segment}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{load-addr\/}})\index{link-table-for-segment})\-\index{v-to-addr} \\ 
$=$$\;\;\;\;${\it{adp\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-addr-to-v \\ \index{equal-addr-to-v}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\it{adp1\/}}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\it{adp2\/}}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{addr-to-v}}\,(\=\+{\it{adp1\/}}, \\ 
{\rm{link-table-for-segment}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{load-addr\/}})\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{addr-to-v} \\ 
$=$$\;\;\;\;${\rm{addr-to-v}}\,(\=\+{\it{adp2\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\it{load-addr\/}})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{addr-to-v})\- \\ 
$=$$\;\;\;\;$({\it{adp1\/}} $=$ {\it{adp2\/}}))\-\-
\end{tabbing}

\begin{verbatim}; And finally we do the SYS-ADDR type...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-sys-data \\ \index{lessp-absolute-address-sys-data}
\=\+(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{absolute-address}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length}\-)\-\index{link-table-for-segment})\-\index{absolute-address} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-sys-addr-inverts-sys-addr-to-v \\ \index{v-to-sys-addr-inverts-sys-addr-t!o-v}
\=\+({\rm{adpp}}\,({\it{adp\/}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp} $\wedge$ {\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-to-sys-addr}}\,(\=\+{\rm{sys-addr-to-v}}\,(\=\+{\it{adp\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length}\-)\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{sys-addr-to-v}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length}\-)\-\index{link-table-for-segment})\-\index{v-to-sys-addr} \\ 
$=$$\;\;\;\;${\it{adp\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-sys-addr-to-v \\ \index{equal-sys-addr-to-v}
\=\+(\=\+{\rm{adpp}}\,({\it{adp1\/}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\it{adp2\/}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{sys-addr-to-v}}\,(\=\+{\it{adp1\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length}\-)\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{sys-addr-to-v} \\ 
$=$$\;\;\;\;${\rm{sys-addr-to-v}}\,(\=\+{\it{adp2\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length}\-)\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{sys-addr-to-v})\- \\ 
$=$$\;\;\;\;$({\it{adp1\/}} $=$ {\it{adp2\/}}))\-\-
\end{tabbing}

\begin{verbatim}; Now I turn to the SUBR case.  It uses base-address instead of
; absolute-address.  The results we need could probably be
; obtained by creative instantiation of what we have.  But I
; prefer simply to prove them cold in perfect analogy with
; what we have done already.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-0-length \\ \index{lessp-0-length}
{\rm{listp}}\,({\it{a\/}}) $\rightarrow$ ({\tt{0}} $<$ {\rm{length}}\,({\it{a\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  invert-base-address-inverts-base-address-on-subrs \\ \index{invert-base-address-inverts-base!-address-on-subrs}
\=\+{\rm{adpp}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{0}}), {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{invert-base-address}}\,(\=\+{\rm{base-address}}\,(\=\+{\it{name\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\it{segment\/}}, \\ 
{\it{addr0\/}})\-\index{link-table-for-segment})\-\index{base-address}, \\ 
{\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment})\-\index{invert-base-address} \\ 
$=$$\;\;\;\;${\it{name\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-base-address-link-table-for-segment \\ \index{lessp-base-address-link-table-f!or-segment}
\=\+(\=\+{\rm{adpp}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{base-address}}\,(\=\+{\it{name\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment})\-\index{base-address} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-base-address-link-table-for-segment \\ \index{numberp-base-address-link-table!-for-segment}
\=\+({\it{addr0\/}} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$({\rm{base-address}}\,({\it{name\/}}, {\rm{link-table-for-segment}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-segment})\index{base-address} $\in\;${\bf{N}}${}$)\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-subr-inverts-subr-to-v \\ \index{v-to-subr-inverts-subr-to-v}
\=\+({\rm{adpp}}\,({\rm{cons}}\,({\it{subr\/}}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} $\wedge$ {\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-to-subr}}\,(\=\+{\rm{subr-to-v}}\,(\=\+{\it{subr\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{subr-to-v}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment})\-\index{v-to-subr} \\ 
$=$$\;\;\;\;${\it{subr\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-subr-to-v \\ \index{equal-subr-to-v}
\=\+(\=\+{\rm{adpp}}\,({\rm{cons}}\,({\it{subr1\/}}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{cons}}\,({\it{subr2\/}}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{subr-to-v}}\,(\=\+{\it{subr1\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{subr-to-v} \\ 
$=$$\;\;\;\;${\rm{subr-to-v}}\,(\=\+{\it{subr2\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-segment}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{subr-to-v})\- \\ 
$=$$\;\;\;\;$({\it{subr1\/}} $=$ {\it{subr2\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-find-label-length \\ \index{lessp-find-label-length}
{\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp} $\rightarrow$ ({\rm{find-label}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-label} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-base-address-link-table-for-labels \\ \index{lessp-base-address-link-table-f!or-labels}
\=\+({\rm{icode-labelp}}\,({\it{lab\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp} $\wedge$ {\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{base-address}}\,(\=\+{\it{lab\/}}, \\ 
{\rm{link-table-for-labels}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-), \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\-\index{link-table-entry}\-)\-\index{link-table-for-labels})\-\index{base-address} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-base-address-link-table-for-labels \\ \index{numberp-base-address-link-table!-for-labels}
({\it{addr0\/}} $\in\;${\bf{N}}${}$) $\rightarrow$ ({\rm{base-address}}\,({\it{name\/}}, {\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})\index{base-address} $\in\;${\bf{N}}${}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-cdrp-link-table-for-labels-t \\ \index{assoc-cdrp-link-table-for-label!s-t}
\=\+(({\it{addr0\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{assoc-cdrp}}\,(\=\+{\it{addr0\/}} $+$ {\rm{find-label}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-label}, \\ 
{\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})\-\index{assoc-cdrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-cdrp-link-table-for-labels-f \\ \index{assoc-cdrp-link-table-for-label!s-f}
\=\+({\it{n\/}} $\not<$ ({\it{addr0\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{assoc-cdrp}}\,({\it{n\/}}, {\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})\index{assoc-cdrp})\-
\end{tabbing}

\begin{verbatim};The following lemma is a generalization of what we need.  We will
; instantiate it with addr0 = 0

\end{verbatim}\begin{tabbing}{\sc Theorem}:  find-containing-label-table-base-address-generalized \\ \index{find-containing-label-table-base!-address-generalized}
\=\+(\=\+({\it{addr0\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,({\it{lab\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})))\index{find-labelp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-containing-label-table}}\,(\=\+{\rm{base-address}}\,(\=\+{\it{lab\/}}, \\ 
{\rm{link-table-for-labels}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-), \\ 
{\it{addr0\/}} $+$ {\rm{link-table-entry}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-\index{link-table-entry})\-\index{link-table-for-labels})\-\index{base-address}, \\ 
{\rm{link-table-for-prog-labels}}\,({\it{segment\/}}, {\it{addr0\/}})\index{link-table-for-prog-labels})\-\index{find-containing-label-table} \\ 
$=$$\;\;\;\;${\rm{link-table-for-labels}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})), \\ 
{\it{addr0\/}} $+$ {\rm{link-table-entry}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-\index{link-table-entry})\-\index{link-table-for-labels})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-containing-label-table-base-address \\ \index{find-containing-label-table-base!-address}
\=\+(\=\+{\rm{definedp}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,({\it{lab\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})))\index{find-labelp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-containing-label-table}}\,(\=\+{\rm{base-address}}\,(\=\+{\it{lab\/}}, \\ 
{\rm{link-table-for-labels}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-), \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-\index{link-table-entry}\-)\-\index{link-table-for-labels})\-\index{base-address}, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\it{segment\/}}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels})\-\index{find-containing-label-table} \\ 
$=$$\;\;\;\;${\rm{link-table-for-labels}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, {\it{segment\/}})), \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,(\=\+{\rm{adp-name}}\,({\it{lab\/}})\index{adp-name}, \\ 
{\it{segment\/}})\-\index{link-table-entry}\-)\-\index{link-table-for-labels})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-cdar-link-table-for-labels \\ \index{lessp-cdar-link-table-for-label!s}
\=\+{\rm{listp}}\,({\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdar}}\,({\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels}) $\not<$ {\it{addr0\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-find-label-cdar-link-table-for-labels \\ \index{lessp-find-label-cdar-link-table!-for-labels}
\=\+{\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{addr0\/}} $+$ {\rm{find-label}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-label}) \\ 
$\not<$$\;\;\;\;${\rm{cdar}}\,({\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-labelp-implies-listp-link-table-for-labels \\ \index{find-labelp-implies-listp-link-t!able-for-labels}
{\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp} $\rightarrow$ {\rm{listp}}\,({\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  invert-base-address-inverts-base-address-on-labels \\ \index{invert-base-address-inverts-base!-address-on-labels}
\=\+(({\it{addr0\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{invert-base-address}}\,(\=\+{\rm{base-address}}\,(\=\+{\it{lab\/}}, \\ 
{\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})\-\index{base-address}, \\ 
{\rm{link-table-for-labels}}\,({\it{lst\/}}, {\it{addr0\/}})\index{link-table-for-labels})\-\index{invert-base-address} \\ 
$=$$\;\;\;\;${\it{lab\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-label-inverts-label-to-v \\ \index{v-to-label-inverts-label-to-v}
\=\+({\rm{icode-labelp}}\,({\it{lab\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp} $\wedge$ {\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-to-label}}\,(\=\+{\rm{label-to-v}}\,(\=\+{\it{lab\/}}, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{label-to-v}, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels})\-\index{v-to-label} \\ 
$=$$\;\;\;\;${\it{lab\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-label-to-v \\ \index{equal-label-to-v}
\=\+(\=\+{\rm{icode-labelp}}\,({\it{lab1\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp} \\ 
$\wedge$$\;\;\;\;${\rm{icode-labelp}}\,({\it{lab2\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp} \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{label-to-v}}\,(\=\+{\it{lab1\/}}, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{label-to-v} \\ 
$=$$\;\;\;\;${\rm{label-to-v}}\,(\=\+{\it{lab2\/}}, \\ 
{\rm{link-table-for-prog-labels}}\,(\=\+{\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment}, \\ 
{\it{load-addr\/}} $+$ {\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length})\-\index{link-table-for-prog-labels}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{label-to-v})\- \\ 
$=$$\;\;\;\;$({\it{lab1\/}} $=$ {\it{lab2\/}}))\-\-
\end{tabbing}

\begin{verbatim}; The following little lemma would not be necessary if type and untag
; were opened to car and cadr and we were willing to suffer elims.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equal-types-and-untags \\ \index{equal-types-and-untags}
\=\+(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\rm{type}}\,({\it{y\/}})\index{type}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{y\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\not=$ {\it{y\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{untag}}\,({\it{x\/}})\index{untag} $\not=$ {\rm{untag}}\,({\it{y\/}})\index{untag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-link-data-word \\ \index{equal-link-data-word}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\rm{type}}\,({\it{x\/}})\index{type}, {\it{y\/}}, {\it{i\/}})\index{i-objectp-type})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{link-data-word}}\,({\it{x\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{link-data-word} \\ 
$=$$\;\;\;\;${\rm{link-data-word}}\,({\it{y\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{link-data-word})\- \\ 
$=$$\;\;\;\;$({\it{x\/}} $=$ {\it{y\/}}))\-\-
\end{tabbing}
                
\begin{verbatim}; Note:  small-naturalp is not disabled above simply because I
; didn't provide what might be called equal-nat-to-v but rely
; instead on nat-to-v-equivalence, which has small-naturalp
; expanded in its hyps.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  bvp-link-data-word \\ \index{bvp-link-data-word}
{\rm{bvp}}\,({\rm{link-data-word}}\,({\it{x\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-data-word})\index{bvp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-xxx-is-equal \\ \index{xor-xxx-is-equal}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\rm{type}}\,({\it{x\/}})\index{type}, {\it{y\/}}, {\it{i\/}})\index{i-objectp-type})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{all-zero-bitvp}}\,({\rm{xor-xxx}}\,({\it{x\/}}, {\it{y\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{xor-xxx})\index{all-zero-bitvp} $=$ ({\it{x\/}} $=$ {\it{y\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-to-nat-v-xor-xx \\ \index{v-to-nat-v-xor-xx}
{\rm{v-to-nat}}\,({\rm{v-xor}}\,({\it{x\/}}, {\it{x\/}})\index{v-xor})\index{v-to-nat} $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-xor-is-equal \\ \index{v-xor-is-equal}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{v-to-nat}}\,({\rm{v-xor}}\,({\it{a\/}}, {\it{b\/}})\index{v-xor})\index{v-to-nat} $=$ {\tt{0}}) $=$ ({\it{a\/}} $=$ {\it{b\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-link-word-lemma1 \\ \index{equal-link-word-lemma1}
{\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} $\rightarrow$ ($\neg$ {\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-link-word-lemma2 \\ \index{equal-link-word-lemma2}
{\rm{i-objectp-type}}\,({\it{type\/}}, {\it{x\/}}, {\it{i\/}})\index{i-objectp-type} $\rightarrow$ ($\neg$ {\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-link-word \\ \index{equal-link-word}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $=$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\rm{type}}\,({\it{x\/}})\index{type}, {\it{y\/}}, {\it{i\/}})\index{i-objectp-type})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{link-word}}\,({\it{x\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, {\it{word-size\/}})\index{link-word} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,({\it{y\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, {\it{word-size\/}})\index{link-word})\- \\ 
$=$$\;\;\;\;$({\it{x\/}} $=$ {\it{y\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-xor-append \\ \index{v-xor-append}
\=\+({\rm{bvp}}\,({\it{x\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{y\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-xor}}\,({\rm{append}}\,({\it{a\/}}, {\it{x\/}}), {\rm{append}}\,({\it{b\/}}, {\it{y\/}}))\index{v-xor} $=$ {\rm{append}}\,({\rm{v-xor}}\,({\it{a\/}}, {\it{b\/}})\index{v-xor}, {\rm{v-xor}}\,({\it{x\/}}, {\it{y\/}})\index{v-xor}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitv-to-v-xor-bitv \\ \index{bitv-to-v-xor-bitv}
\=\+({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bitv-to-v}}\,({\rm{xor-bitv}}\,({\it{a\/}}, {\it{b\/}})\index{xor-bitv}, {\rm{length}}\,({\it{a\/}})\index{length})\index{bitv-to-v} \\ 
$=$$\;\;\;\;${\rm{v-xor}}\,({\rm{bitv-to-v}}\,({\it{a\/}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{bitv-to-v}, {\rm{bitv-to-v}}\,({\it{b\/}}, {\rm{length}}\,({\it{a\/}})\index{length})\index{bitv-to-v})\index{v-xor})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bitv-to-v-inverts-v-to-bitv \\ \index{bitv-to-v-inverts-v-to-bitv}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ ({\it{word-size\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{bitv-to-v}}\,({\rm{v-to-bitv}}\,({\it{a\/}})\index{v-to-bitv}, {\it{word-size\/}})\index{bitv-to-v} $=$ {\it{a\/}})\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  bitv-to-v-xor-xxx-is-v-xor-link-word \\ \index{bitv-to-v-xor-xxx-is-v-xor-link!-word}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $=$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{i-objectp-type}}\,({\rm{type}}\,({\it{x\/}})\index{type}, {\it{y\/}}, {\it{i\/}})\index{i-objectp-type})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{bitv-to-v}}\,({\rm{xor-xxx}}\,({\it{x\/}}, {\it{y\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{xor-xxx}, {\it{word-size\/}})\index{bitv-to-v} \\ 
$=$$\;\;\;\;${\rm{v-xor}}\,(\=\+{\rm{link-word}}\,({\it{x\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, {\it{word-size\/}})\index{link-word}, \\ 
{\rm{link-word}}\,({\it{y\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, {\it{word-size\/}})\index{link-word})\-\index{v-xor})\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{verbatim}; The complications are neverending!  Ok.  The next problem is
; that the two machines use xor in opposite orders.  That is,
; the xor done by one is the commuted version of the one done
; by the other.  So

\end{verbatim}\begin{tabbing}{\sc Theorem}:  commutativity-of-xor-bitv \\ \index{commutativity-of-xor-bitv}
({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length}) $\rightarrow$ ({\rm{xor-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{xor-bitv} $=$ {\rm{xor-bitv}}\,({\it{y\/}}, {\it{x\/}})\index{xor-bitv})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  commutativity-of-xor-xxx \\ \index{commutativity-of-xor-xxx}
{\rm{xor-xxx}}\,({\it{x\/}}, {\it{y\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{xor-xxx} $=$ {\rm{xor-xxx}}\,({\it{y\/}}, {\it{x\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{xor-xxx}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-zb-xor \\ \index{alu-thm\_bitv-zb-xor}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{zb}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{f}}, {\bf{t}}))\index{v-alu})\index{zb} $=$ ($\neg$ {\rm{v-nzerop}}\,({\rm{v-xor}}\,({\it{a\/}}, {\it{b\/}})\index{v-xor})\index{v-nzerop}))\-
\end{tabbing}

\begin{verbatim}; There is a certain amount of xor versus equal work above.  Unfortunately,
; I think it was all made irrelevant when FM9001 was introduced with its
; kind of bit vectors.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  v-nzerop-v-xor \\ \index{v-nzerop-v-xor}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-nzerop}}\,({\rm{v-xor}}\,({\it{a\/}}, {\it{b\/}})\index{v-xor})\index{v-nzerop} $=$ ({\it{a\/}} $\not=$ {\it{b\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-xor\_$<$z$>$\_$<$tsp$>$\_x \\ \index{i-m-one-way-correspondence-step!-xor\_$<$z$>$\_$<$tsp$>$\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp}}\,({\it{i\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$z$>$\_$<$tsp$>$\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; The next owc uses xor to zero the top of stack.  I need

\end{verbatim}\begin{tabbing}{\sc Theorem}:  v-xor-x-x-is-0 \\ \index{v-xor-x-x-is-0}
{\rm{v-xor}}\,({\it{x\/}}, {\it{x\/}})\index{v-xor} $=$ {\rm{nat-to-v}}\,({\tt{0}}, {\rm{length}}\,({\it{x\/}})\index{length})\index{nat-to-v}
\end{tabbing}

\begin{verbatim}; This rule will clash with others, like (v-to-nat (v-xor x x)) = 0,
; but I don't think I'll need the other rules anymore.  Famous last
; words.  This will return to haunt me.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-xor\_$<$tsp$>$\_$<$tsp$>$ \\ \index{i-m-one-way-correspondence-step!-xor\_$<$tsp$>$\_$<$tsp$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the next theorem work I had to change the -okp fn to
; insure that the nextword was an i-objectp

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move-z\_$<$tsp$>$\_* \\ \index{i-m-one-way-correspondence-step!-move-z\_$<$tsp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-z\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-z\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move-z\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move-n\_x\_* \\ \index{i-m-one-way-correspondence-step!-move-n\_x\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-n\_x\_*-okp}}\,({\it{i\/}})\index{i-move-n\_x\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-n\_x\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move-n\_x\_*-step}}\,({\it{i\/}})\index{i-move-n\_x\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move\_$<$tsp$>$\_* \\ \index{i-m-one-way-correspondence-step!-move\_$<$tsp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-nat-to-v \\ \index{listp-nat-to-v}
{\rm{listp}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v}) $=$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-int-to-v \\ \index{listp-int-to-v}
{\rm{listp}}\,({\rm{int-to-v}}\,({\it{i\/}}, {\it{word-size\/}})\index{int-to-v}) $=$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-incr\_$<$tsp$>$\_$<$tsp$>$\{i\} \\ \index{i-m-one-way-correspondence-step!-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$tsp$>$\{i\}\_x\{i\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$tsp$>$\{i\}\_x\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-decr\_$<$tsp$>$\_$<$tsp$>$\{i\} \\ \index{i-m-one-way-correspondence-step!-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-neg\_$<$tsp$>$\_$<$tsp$>$\{i\} \\ \index{i-m-one-way-correspondence-step!-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\} \\ \index{i-m-one-way-correspondence-step!-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-okp}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plus-1 \\ \index{plus-1}
({\tt{1}} $+$ {\it{x\/}}) $=$ ($1\;+$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-zerop-exp-2-32 \\ \index{not-zerop-exp-2-32}
{\tt{0}} $<$ {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-addc\_$<$c$>$\_x\{n\}\_y\{n\} \\ \index{i-m-one-way-correspondence-step!-addc\_$<$c$>$\_x\{n\}\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{addc\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_$<$tsp$>$\{n\}\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_$<$tsp$>$\{n\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-incr\_$<$tsp$>$\_$<$tsp$>$\{n\} \\ \index{i-m-one-way-correspondence-step!-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-incr\_y\_y\{n\} \\ \index{i-m-one-way-correspondence-step!-incr\_y\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_y\_y\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-incr\_y\_y\{n\}-step}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma, put-link-segment-no-op, states that it is a
; no-op to put into the link-segment of a segment a value that is
; the link-word of what is already at the corresponding position
; in the segment.  This lemma is what enables us to convert from
; one data type to another, e.g., from INT to NAT, by doing an
; explicit push in the i-level machine but a no-op in the m-level.
; To justify such an act all we need to know is that the link-word
; of what is being pushed is the link-word of what was already
; there.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-link-area-no-op \\ \index{put-link-area-no-op}
\=\+(({\it{offset\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{offset\/}} $<$ {\rm{length}}\,({\it{v\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,(\=\+{\rm{link-word}}\,({\rm{unlabel}}\,({\rm{get}}\,({\it{offset\/}}, {\it{v\/}})\index{get})\index{unlabel}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-word}, \\ 
{\it{offset\/}}, \\ 
{\rm{link-area}}\,({\it{v\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-area})\-\index{put} \\ 
$=$$\;\;\;\;${\rm{link-area}}\,({\it{v\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-area})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-link-segment-no-op \\ \index{put-link-segment-no-op}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{val\/}} $=$ {\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,({\it{offset\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{get})\index{unlabel}, \\ 
{\it{link-tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-word}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
{\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry} $+$ {\it{offset\/}}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-segment})\-\index{put} \\ 
$=$$\;\;\;\;${\rm{link-segment}}\,({\it{segment\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-segment})\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{verbatim}; For the INT-TO-NAT case the justification is then:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  int-to-v-is-nat-to-v-on-nats \\ \index{int-to-v-is-nat-to-v-on-nats}
({\it{n\/}} $\in\;${\bf{N}}${}$) $\rightarrow$ ({\rm{int-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{int-to-v} $=$ {\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-int-to-nat \\ \index{i-m-one-way-correspondence-step!-int-to-nat}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-int-to-nat-okp}}\,({\it{i\/}})\index{i-int-to-nat-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{int-to-nat}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-int-to-nat-step}}\,({\it{i\/}})\index{i-int-to-nat-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable int-to-v-is-nat-to-v-on-nats.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-decr\_$<$tsp$>$\_$<$tsp$>$\{n\} \\ \index{i-m-one-way-correspondence-step!-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable times-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_$<$c$>$\_x\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_$<$c$>$\_x\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_$<$tsp$>$\_$<$tsp$>$\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_$<$tsp$>$\_$<$tsp$>$\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-by-2 \\ \index{remainder-by-2}
(({\it{x\/}} ${}${\bf{mod}}${}$ {\tt{2}}) $\not=$ {\tt{0}}) $\rightarrow$ (({\it{x\/}} ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-lsr\_$<$c$>$\_x\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-lsr\_$<$c$>$\_x\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{lsr\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-subb\_$<$c$>$\_x\{n\}\_y\{n\} \\ \index{i-m-one-way-correspondence-step!-subb\_$<$c$>$\_x\{n\}\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{subb\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; I redefined the -step fn below because it had the wrong parity on the
; c-flg!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$tsp$>$\{n\}\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$tsp$>$\{n\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; The use hint below is necessary here because we have the hypothesis
; that both the top of tsp and x are addresses into the same usr-data
; area.  The rewriter replaces references to the adp-name of the top
; of tsp with references to the adp-name of x because it is simpler.
; But that prevents the firing of our rewrite rules for establishing
; that addresses link to small-naturalps.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$tsp$>$\{s\}\_x\{s\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$tsp$>$\{s\}\_x\{s\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  v-nzerop-nat-to-v-bridge \\ \index{v-nzerop-nat-to-v-bridge}
\=\+(({\it{firstn\/}} $=$ {\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v}) $\wedge$ ({\it{n\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-nzerop}}\,({\it{firstn\/}})\index{v-nzerop} $=$ ({\it{n\/}} $\not\simeq {\tt{0}}$))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-difference-zero \\ \index{equal-difference-zero}
(({\it{x\/}} $-$ {\it{y\/}}) $=$ {\tt{0}}) $=$ ({\it{y\/}} $\not<$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-v-to-nat-v-to-nat \\ \index{equal-v-to-nat-v-to-nat}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{v-to-nat}}\,({\it{a\/}})\index{v-to-nat} $=$ {\rm{v-to-nat}}\,({\it{b\/}})\index{v-to-nat}) $=$ ({\it{a\/}} $=$ {\it{b\/}}))\-
\end{tabbing}


\noindent{\sc Event}:   Enable my-lessp-v-to-nat-exp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  alu-thm\_bitv-zb-sub \\ \index{alu-thm\_bitv-zb-sub}
\=\+({\rm{bvp}}\,({\it{a\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{b\/}})\index{bvp} $\wedge$ ({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{boolp}}\,({\it{c\/}})\index{boolp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{zb}}\,({\rm{v-alu}}\,({\it{c\/}}, {\it{a\/}}, {\it{b\/}}, {\rm{list}}\,({\bf{t}}, {\bf{t}}, {\bf{t}}, {\bf{f}}))\index{v-alu})\index{zb} $=$ ({\it{a\/}} $=$ {\it{b\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$z$>$\_x\{s\}\_y\{s\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$z$>$\_x\{s\}\_y\{s\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To make the next thm work I changed the -okp fn to insure
; that nextword is an i-objectp.  I also changed the link instruction
; alist.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move-c\_$<$tsp$>$\_* \\ \index{i-m-one-way-correspondence-step!-move-c\_$<$tsp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-c\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move-c\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-move-v\_$<$tsp$>$\_* \\ \index{i-m-one-way-correspondence-step!-move-v\_$<$tsp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-v\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-move-v\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-or-append \\ \index{v-or-append}
\=\+(({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{bvp}}\,({\it{x\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{y\/}})\index{bvp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-or}}\,({\rm{append}}\,({\it{a\/}}, {\it{x\/}}), {\rm{append}}\,({\it{b\/}}, {\it{y\/}}))\index{v-or} $=$ {\rm{append}}\,({\rm{v-or}}\,({\it{a\/}}, {\it{b\/}})\index{v-or}, {\rm{v-or}}\,({\it{x\/}}, {\it{y\/}})\index{v-or}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-or-bitv-to-v \\ \index{v-or-bitv-to-v}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-or}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v}, {\rm{bitv-to-v}}\,({\it{y\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{v-or} \\ 
$=$$\;\;\;\;${\rm{bitv-to-v}}\,({\rm{or-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{or-bitv}, {\it{word-size\/}})\index{bitv-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  commutativity-of-or-bitv \\ \index{commutativity-of-or-bitv}
({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length}) $\rightarrow$ ({\rm{or-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{or-bitv} $=$ {\rm{or-bitv}}\,({\it{y\/}}, {\it{x\/}})\index{or-bitv})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-or\_$<$tsp$>$\{v\}\_x\{v\} \\ \index{i-m-one-way-correspondence-step!-or\_$<$tsp$>$\{v\}\_x\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-and-append \\ \index{v-and-append}
\=\+(({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{bvp}}\,({\it{x\/}})\index{bvp} $\wedge$ {\rm{bvp}}\,({\it{y\/}})\index{bvp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-and}}\,({\rm{append}}\,({\it{a\/}}, {\it{x\/}}), {\rm{append}}\,({\it{b\/}}, {\it{y\/}}))\index{v-and} $=$ {\rm{append}}\,({\rm{v-and}}\,({\it{a\/}}, {\it{b\/}})\index{v-and}, {\rm{v-and}}\,({\it{x\/}}, {\it{y\/}})\index{v-and}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-and-bitv-to-v \\ \index{v-and-bitv-to-v}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-and}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v}, {\rm{bitv-to-v}}\,({\it{y\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{v-and} \\ 
$=$$\;\;\;\;${\rm{bitv-to-v}}\,({\rm{and-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{and-bitv}, {\it{word-size\/}})\index{bitv-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  commutativity-of-and-bitv \\ \index{commutativity-of-and-bitv}
({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length}) $\rightarrow$ ({\rm{and-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{and-bitv} $=$ {\rm{and-bitv}}\,({\it{y\/}}, {\it{x\/}})\index{and-bitv})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-and\_$<$tsp$>$\{v\}\_x\{v\} \\ \index{i-m-one-way-correspondence-step!-and\_$<$tsp$>$\{v\}\_x\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-not-append \\ \index{v-not-append}
{\rm{bvp}}\,({\it{x\/}})\index{bvp} $\rightarrow$ ({\rm{v-not}}\,({\rm{append}}\,({\it{a\/}}, {\it{x\/}}))\index{v-not} $=$ {\rm{append}}\,({\rm{v-not}}\,({\it{a\/}})\index{v-not}, {\rm{v-not}}\,({\it{x\/}})\index{v-not}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-not-bitv-to-v \\ \index{v-not-bitv-to-v}
\=\+{\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-not}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{v-not} $=$ {\rm{bitv-to-v}}\,({\rm{not-bitv}}\,({\it{x\/}})\index{not-bitv}, {\it{word-size\/}})\index{bitv-to-v})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-not\_$<$tsp$>$\_$<$tsp$>$\{v\} \\ \index{i-m-one-way-correspondence-step!-not\_$<$tsp$>$\_$<$tsp$>$\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{not\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-xor-bitv-to-v \\ \index{v-xor-bitv-to-v}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{v-xor}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v}, {\rm{bitv-to-v}}\,({\it{y\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{v-xor} \\ 
$=$$\;\;\;\;${\rm{bitv-to-v}}\,({\rm{xor-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{xor-bitv}, {\it{word-size\/}})\index{bitv-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-xor\_$<$tsp$>$\{v\}\_x\{v\} \\ \index{i-m-one-way-correspondence-step!-xor\_$<$tsp$>$\{v\}\_x\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-bitv-to-v \\ \index{cdr-bitv-to-v}
\=\+({\rm{listp}}\,({\it{x\/}}) $\wedge$ {\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v}) \\ 
$=$$\;\;\;\;${\rm{bitv-to-v}}\,({\rm{all-but-last}}\,({\it{x\/}})\index{all-but-last}, {\it{word-size\/}} $-\;1$)\index{bitv-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-append \\ \index{listp-append}
{\rm{listp}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}})) $=$ ({\rm{listp}}\,({\it{a\/}}) $\vee$ {\rm{listp}}\,({\it{b\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-append \\ \index{cdr-append}
\=\+{\rm{cdr}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}})) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{a\/}})$\;\;${\bf then }{\rm{append}}\,({\rm{cdr}}\,({\it{a\/}}), {\it{b\/}}) \\ 
{\bf else }{\rm{cdr}}\,({\it{b\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-buf-append \\ \index{v-buf-append}
{\rm{v-buf}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{v-buf} $=$ {\rm{append}}\,({\rm{v-buf}}\,({\it{a\/}})\index{v-buf}, {\rm{v-buf}}\,({\it{b\/}})\index{v-buf})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  v-lsr-bitv-to-v \\ \index{v-lsr-bitv-to-v}
\=\+{\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{v-lsr}}\,({\rm{bitv-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{bitv-to-v})\index{v-lsr} $=$ {\rm{bitv-to-v}}\,({\rm{rsh-bitv}}\,({\it{x\/}})\index{rsh-bitv}, {\it{word-size\/}})\index{bitv-to-v})\-
\end{tabbing}

\begin{verbatim}; The following two disables are motivated merely by the fact that the
; named lemmas were proved for the fm9001 effort and hence might get
; in the way.

\end{verbatim}
\noindent{\sc Event}:   Disable v-buf-append.

\addvspace{18pt}

\noindent{\sc Event}:   Disable cdr-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\} \\ \index{i-m-one-way-correspondence-step!-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-1 \\ \index{lsh-lemma-1}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{bitv-to-v}}\,({\rm{append}}\,({\rm{cdr}}\,({\it{x\/}}), {\tt{'}}{\tt{(}}{\tt{0}}{\tt{)}}), {\it{word-size\/}})\index{bitv-to-v} \\ 
$=$$\;\;\;\;${\rm{cons}}\,({\bf{f}}, {\rm{bitv-to-v}}\,({\rm{cdr}}\,({\it{x\/}}), {\it{word-size\/}} $-\;1$)\index{bitv-to-v}))\-\-
\end{tabbing}

\begin{verbatim}; Four of the next six lemmas use (plus x x y y) where (plus i i) could be
; used and then instantiated with (plus x y) and rearranged.  But
; they are, as stated, exactly what is needed and they go through
; without help.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  remainder-add1-xxyy-2 \\ \index{remainder-add1-xxyy-2}
(($1\;+$ ({\it{x\/}} $+$ {\it{x\/}} $+$ {\it{y\/}} $+$ {\it{y\/}})) ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  quotient-add1-xxyy-2 \\ \index{quotient-add1-xxyy-2}
(($1\;+$ ({\it{x\/}} $+$ {\it{x\/}} $+$ {\it{y\/}} $+$ {\it{y\/}})) $\div$ {\tt{2}}) $=$ ({\it{x\/}} $+$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-xx-2 \\ \index{remainder-xx-2}
(({\it{x\/}} $+$ {\it{x\/}}) ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  quotient-xx-2 \\ \index{quotient-xx-2}
(({\it{x\/}} $+$ {\it{x\/}}) $\div$ {\tt{2}}) $=$ {\rm{fix}}\,({\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-xxyy-2 \\ \index{remainder-xxyy-2}
(({\it{x\/}} $+$ {\it{x\/}} $+$ {\it{y\/}} $+$ {\it{y\/}}) ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  quotient-xxyy-2 \\ \index{quotient-xxyy-2}
(({\it{x\/}} $+$ {\it{x\/}} $+$ {\it{y\/}} $+$ {\it{y\/}}) $\div$ {\tt{2}}) $=$ ({\it{x\/}} $+$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-2 \\ \index{lsh-lemma-2}
{\rm{nat-to-v}}\,({\it{z\/}} $+$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}, {\it{word-size\/}})\index{nat-to-v} $=$ {\rm{nat-to-v}}\,({\it{z\/}}, {\it{word-size\/}})\index{nat-to-v}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-3 \\ \index{lsh-lemma-3}
\=\+{\rm{nat-to-v}}\,({\it{z\/}} $+$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp} $+$ {\it{u\/}}, {\it{word-size\/}})\index{nat-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\it{z\/}} $+$ {\it{u\/}}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-4 \\ \index{lsh-lemma-4}
\=\+{\rm{nat-to-v}}\,({\it{z\/}} $+$ ({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp} $*$ {\it{v\/}}), {\it{word-size\/}})\index{nat-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\it{z\/}}, {\it{word-size\/}})\index{nat-to-v}\-
\end{tabbing}


\noindent{\sc Event}:   Disable times-commutes.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-5 \\ \index{lsh-lemma-5}
\=\+({\it{x\/}} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{nat-to-v}}\,({\it{x\/}} ${}${\bf{mod}}${}$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}, {\it{word-size\/}})\index{nat-to-v} \\ 
$=$$\;\;\;\;${\rm{nat-to-v}}\,({\it{x\/}}, {\it{word-size\/}})\index{nat-to-v})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-6 \\ \index{lsh-lemma-6}
\=\+({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\rightarrow$$\;\;\;\;$({\rm{nat-to-v}}\,({\it{x\/}} $+$ {\it{x\/}}, {\it{word-size\/}})\index{nat-to-v} $=$ {\rm{cons}}\,({\bf{f}}, {\rm{nat-to-v}}\,({\it{x\/}}, {\it{word-size\/}} $-\;1$)\index{nat-to-v}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-add1-xx-2 \\ \index{remainder-add1-xx-2}
(($1\;+$ ({\it{x\/}} $+$ {\it{x\/}})) ${}${\bf{mod}}${}$ {\tt{2}}) $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  quotient-add1-xx-2 \\ \index{quotient-add1-xx-2}
(($1\;+$ ({\it{x\/}} $+$ {\it{x\/}})) $\div$ {\tt{2}}) $=$ {\rm{fix}}\,({\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-lemma-7 \\ \index{lsh-lemma-7}
\=\+({\rm{bvp}}\,({\it{x\/}})\index{bvp} $\wedge$ ({\it{k\/}} $=$ {\rm{length}}\,({\it{x\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{nat-to-v}}\,({\rm{v-to-nat}}\,({\rm{append}}\,({\it{x\/}}, {\it{y\/}}))\index{v-to-nat}, {\it{k\/}})\index{nat-to-v} $=$ {\it{x\/}})\-
\end{tabbing}


\noindent{\sc Event}:   Enable bvp-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_$<$tsp$>$\_$<$tsp$>$\{v\} \\ \index{i-m-one-way-correspondence-step!-add\_$<$tsp$>$\_$<$tsp$>$\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-or\_$<$tsp$>$\{b\}\_x\{b\} \\ \index{i-m-one-way-correspondence-step!-or\_$<$tsp$>$\{b\}\_x\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-and\_$<$tsp$>$\{b\}\_x\{b\} \\ \index{i-m-one-way-correspondence-step!-and\_$<$tsp$>$\{b\}\_x\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-xor\_$<$tsp$>$\{b\}\_*\{b\} \\ \index{i-m-one-way-correspondence-step!-xor\_$<$tsp$>$\{b\}\_*\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_*\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-xor\_$<$tsp$>$\{b\}\_x\{b\} \\ \index{i-m-one-way-correspondence-step!-xor\_$<$tsp$>$\{b\}\_x\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma is just enough arithmetic to get the add_pc_x{n}
; lemma.  As noted before, I've adopted the strategy of not automatically
; rewriting arithmetic expressions.  I could perhaps get the proof with
; associativity and commutativity available, but I don't want to even
; bother trying.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  commutativity-of-plus-hack \\ \index{commutativity-of-plus-hack}
\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag})\- \\ 
$=$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{i-x}}\,({\it{i\/}})\index{i-x})\index{untag} \\ 
$+$$\;\;\;\;${\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{link-table-entry}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-name}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{link-table-entry} \\ 
$+$$\;\;\;\;${\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-pc}}\,({\it{i\/}})\index{i-pc})\index{untag})\index{adp-offset})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable equal-length-0.

\addvspace{18pt}

\noindent{\sc Event}:   Disable remainder-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_pc\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_pc\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_pc\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_pc\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_pc\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-add\_x\_x\{n\} \\ \index{i-m-one-way-correspondence-step!-add\_x\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_x\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-add\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable associativity-of-iplus.

\addvspace{18pt}


\noindent{\sc Event}:   Enable commutativity2-of-iplus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-addc\_$<$v$>$\_x\{i\}\_y\{i\} \\ \index{i-m-one-way-correspondence-step!-addc\_$<$v$>$\_x\{i\}\_y\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{addc\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  tc-minus-is-inegate \\ \index{tc-minus-is-inegate}
{\rm{tc-minus}}\,({\it{x\/}})\index{tc-minus} $=$ {\rm{inegate}}\,({\it{x\/}})\index{inegate}
\end{tabbing}


\noindent{\sc Event}:   Disable tc-minus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  integerp-inegate \\ \index{integerp-inegate}
{\rm{integerp}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate})\index{integerp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ineg-is-inegate \\ \index{ineg-is-inegate}
{\rm{ineg}}\,({\it{x\/}})\index{ineg} $=$ {\rm{inegate}}\,({\it{x\/}})\index{inegate}
\end{tabbing}


\noindent{\sc Event}:   Disable ineg.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-subb\_$<$v$>$\_x\{i\}\_y\{i\} \\ \index{i-m-one-way-correspondence-step!-subb\_$<$v$>$\_x\{i\}\_y\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{subb\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{verbatim}; To relieve one of the hypotheses above we need the following lemma.
; Intuitively it says that (inegate x) is a small-integerp if x is.
; That's not true, because x might be the most negative integer, which
; has no small opposite.  But in the case in question we know that
; (inegate x) + y is negative, so things work out to tell us that  x isn't
; the most negative.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  small-integerp-inegate \\ \index{small-integerp-inegate}
\=\+(\=\+({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{small-integerp}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{word-size\/}})\index{small-integerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-integerp-fix-small-integer-case-1 \\ \index{small-integerp-fix-small-intege!r-case-1}
\=\+(\=\+{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{small-integerp}}\,({\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{small-integerp}}\,({\rm{iplus}}\,({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}, {\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus})\index{iplus}, {\it{word-size\/}})\index{small-integerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-integerp-fix-small-integer-case-2 \\ \index{small-integerp-fix-small-intege!r-case-2}
\=\+(\=\+{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{small-integerp}}\,({\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,($-$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}, {\rm{iplus}}\,({\rm{inegate}}\,({\it{x\/}})\index{inegate}, {\it{y\/}})\index{iplus})\index{iplus}, \\ 
{\it{word-size\/}})\-\index{small-integerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\} \\ \index{i-m-one-way-correspondence-step!-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-current-instruction-packer-lemma \\ \index{i-current-instruction-packer-le!mma}
\=\+(({\rm{car}}\,({\it{ins\/}}) $=$ {\rm{pack}}\,({\it{opcode\/}})) $\wedge$ ({\rm{cdr}}\,({\it{ins\/}}) $=$ {\bf{nil}})) \\ 
$\rightarrow$$\;\;\;\;$({\it{ins\/}} $=$ {\rm{list}}\,({\rm{pack}}\,({\it{opcode\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-current-instruction-packer \\ \index{i-current-instruction-packer}
\=\+(\=\+({\rm{car}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}) $=$ {\rm{pack}}\,({\it{opcode\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}) $=$ {\bf{nil}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\rm{list}}\,({\rm{pack}}\,({\it{opcode\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-ins-okp-step \\ \index{i-m-one-way-correspondence-ins-!okp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-ins-okp}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}})\index{i-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,(\=\+{\rm{i-ins-step}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step}, \\ 
{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}})\-\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence-step \\ \index{i-m-one-way-correspondence-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m-step}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-step})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-word-size-i-halt \\ \index{i-word-size-i-halt}
{\rm{i-word-size}}\,({\rm{i-halt}}\,({\it{i\/}}, {\it{psw\/}})\index{i-halt})\index{i-word-size} $=$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}
\end{tabbing}

\begin{verbatim}; The following two lemmas and then i-word-size-i-ins-step follow exactly
; the same strategy described above for i-psw-i-ins-step.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equal-i-word-size-if-1 \\ \index{equal-i-word-size-if-1}
\=\+(\=\+{\rm{i-word-size}}\,(\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\it{b1\/}} \\ 
{\bf else }{\it{b2\/}}$\;${\bf  endif}\-)\index{i-word-size} \\ 
$=$$\;\;\;\;${\it{w\/}})\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\rm{i-word-size}}\,({\it{b1\/}})\index{i-word-size} $=$ {\it{w\/}} \\ 
{\bf else }{\rm{i-word-size}}\,({\it{b2\/}})\index{i-word-size} $=$ {\it{w\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-i-word-size-if-2 \\ \index{equal-i-word-size-if-2}
\=\+(\=\+{\rm{i-word-size}}\,(\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\it{b1\/}} \\ 
{\bf elseif }{\it{t2\/}}$\;\;${\bf then }{\it{b2\/}} \\ 
{\bf else }{\it{b3\/}}$\;${\bf  endif}\-)\index{i-word-size} \\ 
$=$$\;\;\;\;${\it{w\/}})\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{t1\/}}$\;\;${\bf then }{\rm{i-word-size}}\,({\it{b1\/}})\index{i-word-size} $=$ {\it{w\/}} \\ 
{\bf elseif }{\it{t2\/}}$\;\;${\bf then }{\rm{i-word-size}}\,({\it{b2\/}})\index{i-word-size} $=$ {\it{w\/}} \\ 
{\bf else }{\rm{i-word-size}}\,({\it{b3\/}})\index{i-word-size} $=$ {\it{w\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-word-size-i-ins-step \\ \index{i-word-size-i-ins-step}
{\rm{i-word-size}}\,({\rm{i-ins-step}}\,({\it{ins\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step})\index{i-word-size} $=$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}
\end{tabbing}

\begin{verbatim}; The hint above is mechanically generated as in i-psw case mentioned
; above, except that it does not include i-word-size.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-word-size-i-step \\ \index{i-word-size-i-step}
{\rm{i-word-size}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step})\index{i-word-size} $=$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-psw-i-run \\ \index{i-psw-i-run}
({\rm{i-psw}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-one-way-correspondence \\ \index{i-m-one-way-correspondence}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-$>$m}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m} \\ 
$=$$\;\;\;\;${\rm{m}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m}, {\it{n\/}})\index{m})\-\-
\end{tabbing}

\begin{verbatim};  We now prove that i-state-okp is preserved by i-step.  We do
;  it in a very predictable way:  we prove it for each stepper.
;  First a few lemmas...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-put-assoc \\ \index{assoc-put-assoc}
\=\+{\rm{definedp}}\,({\it{name2\/}}, {\it{alist\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\it{name1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{alist\/}})\index{put-assoc}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{name1\/}} $=$ {\it{name2\/}}$\;\;${\bf then }{\rm{cons}}\,({\it{name1\/}}, {\it{val\/}}) \\ 
{\bf else }{\rm{assoc}}\,({\it{name1\/}}, {\it{alist\/}})$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-tag \\ \index{cddr-tag}
{\rm{cddr}}\,({\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag}) $=$ {\bf{nil}}
\end{tabbing}

\begin{verbatim};  Now comes the litany of instructions.

;  After the first two, the hints for all of these preservation lemmas
;  are derived mechanically from the hint for the corresponding
;  one-way-correspondence lemma above by simply adding to the old hint
;  the disabling of the restructuring lemma and the enabling of
;  i-state-okp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_x\_x-step \\ \index{i-state-okp-i-move\_x\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_x-okp}}\,({\it{i\/}})\index{i-move\_x\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_x\_x-step}}\,({\it{i\/}})\index{i-move\_x\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-cpush\_*-step \\ \index{i-state-okp-i-cpush\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_*-okp}}\,({\it{i\/}})\index{i-cpush\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-cpush\_*-step}}\,({\it{i\/}})\index{i-cpush\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_$<$tsp$>$\{i\}\_x\{i\}-step \\ \index{i-state-okp-i-add\_$<$tsp$>$\{i\}!\_x\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_cfp\_csp-step \\ \index{i-state-okp-i-move\_cfp\_csp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_cfp\_csp-okp}}\,({\it{i\/}})\index{i-move\_cfp\_csp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_cfp\_csp-step}}\,({\it{i\/}})\index{i-move\_cfp\_csp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-cpush\_$<$tsp$>$+-step \\ \index{i-state-okp-i-cpush\_$<$tsp$>$+!-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_$<$tsp$>$+-okp}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-cpush\_$<$tsp$>$+-step}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_csp\_cfp-step \\ \index{i-state-okp-i-move\_csp\_cfp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_csp\_cfp-okp}}\,({\it{i\/}})\index{i-move\_csp\_cfp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_csp\_cfp-step}}\,({\it{i\/}})\index{i-move\_csp\_cfp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_x\_tsp-step \\ \index{i-state-okp-i-move\_x\_tsp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_tsp-okp}}\,({\it{i\/}})\index{i-move\_x\_tsp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_x\_tsp-step}}\,({\it{i\/}})\index{i-move\_x\_tsp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-cpop\_cfp-step \\ \index{i-state-okp-i-cpop\_cfp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpop\_cfp-okp}}\,({\it{i\/}})\index{i-cpop\_cfp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-cpop\_cfp-step}}\,({\it{i\/}})\index{i-cpop\_cfp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_x\_*-step \\ \index{i-state-okp-i-move\_x\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_*-okp}}\,({\it{i\/}})\index{i-move\_x\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_x\_*-step}}\,({\it{i\/}})\index{i-move\_x\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_y\_*-step \\ \index{i-state-okp-i-move\_y\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_*-okp}}\,({\it{i\/}})\index{i-move\_y\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_y\_*-step}}\,({\it{i\/}})\index{i-move\_y\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_x\{n\}\_csp-step \\ \index{i-state-okp-i-add\_x\{n\}\_csp-!step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_x\{n\}\_csp-okp}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_x\{n\}\_csp-step}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_x\_$<$x\{s\}$>$-step \\ \index{i-state-okp-i-move\_x\_$<$x\{s\}!$>$-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_x\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_y\_$<$y\{s\}$>$-step \\ \index{i-state-okp-i-move\_y\_$<$y\{s\}!$>$-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_$<$y\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_y\_$<$y\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_y\_tsp-step \\ \index{i-state-okp-i-move\_y\_tsp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_tsp-okp}}\,({\it{i\/}})\index{i-move\_y\_tsp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_y\_tsp-step}}\,({\it{i\/}})\index{i-move\_y\_tsp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpush\_csp-step \\ \index{i-state-okp-i-tpush\_csp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_csp-okp}}\,({\it{i\/}})\index{i-tpush\_csp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpush\_csp-step}}\,({\it{i\/}})\index{i-tpush\_csp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpush\_tsp-step \\ \index{i-state-okp-i-tpush\_tsp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_tsp-okp}}\,({\it{i\/}})\index{i-tpush\_tsp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpush\_tsp-step}}\,({\it{i\/}})\index{i-tpush\_tsp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpush\_x-step \\ \index{i-state-okp-i-tpush\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_x-okp}}\,({\it{i\/}})\index{i-tpush\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpush\_x-step}}\,({\it{i\/}})\index{i-tpush\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpush\_$<$x\{s\}$>$-step \\ \index{i-state-okp-i-tpush\_$<$x\{s\}$>$!-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpush\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpush\_$<$x\{a\}$>$-step \\ \index{i-state-okp-i-tpush\_$<$x\{a\}$>$!-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpush\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpush\_*-step \\ \index{i-state-okp-i-tpush\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_*-okp}}\,({\it{i\/}})\index{i-tpush\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpush\_*-step}}\,({\it{i\/}})\index{i-tpush\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\_x-step \\ \index{i-state-okp-i-tpop\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_x-okp}}\,({\it{i\/}})\index{i-tpop\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\_x-step}}\,({\it{i\/}})\index{i-tpop\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\_y-step \\ \index{i-state-okp-i-tpop\_y-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_y-okp}}\,({\it{i\/}})\index{i-tpop\_y-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\_y-step}}\,({\it{i\/}})\index{i-tpop\_y-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\_$<$x\{s\}$>$-step \\ \index{i-state-okp-i-tpop\_$<$x\{s\}$>$!-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\_$<$x\{a\}$>$-step \\ \index{i-state-okp-i-tpop\_$<$x\{a\}$>$!-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-jump\_*-step \\ \index{i-state-okp-i-jump\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump\_*-okp}}\,({\it{i\/}})\index{i-jump\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-jump\_*-step}}\,({\it{i\/}})\index{i-jump\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-cpop\_pc-step \\ \index{i-state-okp-i-cpop\_pc-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpop\_pc-okp}}\,({\it{i\/}})\index{i-cpop\_pc-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-cpop\_pc-step}}\,({\it{i\/}})\index{i-cpop\_pc-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step \\ \index{i-state-okp-i-move\_$<$x\{s\}$>$!\_$<$tsp$>$-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step \\ \index{i-state-okp-i-move\_$<$x\{a\}$>$!\_$<$tsp$>$-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-jump\_x\{subr\}-step \\ \index{i-state-okp-i-jump\_x\{subr\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump\_x\{subr\}-okp}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-jump\_x\{subr\}-step}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-jump-n\_x-step \\ \index{i-state-okp-i-jump-n\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-n\_x-okp}}\,({\it{i\/}})\index{i-jump-n\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-jump-n\_x-step}}\,({\it{i\/}})\index{i-jump-n\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-jump-nn\_x-step \\ \index{i-state-okp-i-jump-nn\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-nn\_x-okp}}\,({\it{i\/}})\index{i-jump-nn\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-jump-nn\_x-step}}\,({\it{i\/}})\index{i-jump-nn\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-jump-z\_x-step \\ \index{i-state-okp-i-jump-z\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-z\_x-okp}}\,({\it{i\/}})\index{i-jump-z\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-jump-z\_x-step}}\,({\it{i\/}})\index{i-jump-z\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-jump-nz\_x-step \\ \index{i-state-okp-i-jump-nz\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-nz\_x-okp}}\,({\it{i\/}})\index{i-jump-nz\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-jump-nz\_x-step}}\,({\it{i\/}})\index{i-jump-nz\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\_pc-step \\ \index{i-state-okp-i-tpop\_pc-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_pc-okp}}\,({\it{i\/}})\index{i-tpop\_pc-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\_pc-step}}\,({\it{i\/}})\index{i-tpop\_pc-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\_$<$c$>$\_x-step \\ \index{i-state-okp-i-tpop\_$<$c$>$\_x-!step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$c$>$\_x-okp}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\_$<$c$>$\_x-step}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\{n\}\_$<$z$>$\_y-step \\ \index{i-state-okp-i-tpop\{n\}\_$<$z$>$!\_y-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{n\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\{n\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\{i\}\_$<$zn$>$\_y-step \\ \index{i-state-okp-i-tpop\{i\}\_$<$zn$>$!\_y-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{i\}\_$<$zn$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\{i\}\_$<$zn$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\{b\}\_$<$z$>$\_y-step \\ \index{i-state-okp-i-tpop\{b\}\_$<$z$>$!\_y-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{b\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\{b\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-tpop\{v\}\_$<$z$>$\_y-step \\ \index{i-state-okp-i-tpop\{v\}\_$<$z$>$!\_y-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{v\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-tpop\{v\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_$<$tsp$>$\{a\}\_x\{n\}-step \\ \index{i-state-okp-i-add\_$<$tsp$>$\{a\}!\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_tsp\_*\{n\}-step \\ \index{i-state-okp-i-add\_tsp\_*\{n\}-!step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_tsp\_*\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_tsp\_*\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_tsp\_x\{n\}-step \\ \index{i-state-okp-i-add\_tsp\_x\{n\}-!step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_tsp\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_tsp\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step \\ \index{i-state-okp-i-sub\_$<$tsp$>$\{a\}!\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_x\{s\}\_y\{n\}-step \\ \index{i-state-okp-i-sub\_x\{s\}\_y\{n\}!-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_x\{s\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_x\{s\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-xor\_$<$tsp$>$\_$<$tsp$>$-step \\ \index{i-state-okp-i-xor\_$<$tsp$>$\_$<$t!sp$>$-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move-z\_$<$tsp$>$\_*-step \\ \index{i-state-okp-i-move-z\_$<$tsp$>$!\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-z\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move-z\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move-n\_x\_*-step \\ \index{i-state-okp-i-move-n\_x\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-n\_x\_*-okp}}\,({\it{i\/}})\index{i-move-n\_x\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move-n\_x\_*-step}}\,({\it{i\/}})\index{i-move-n\_x\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move\_$<$tsp$>$\_*-step \\ \index{i-state-okp-i-move\_$<$tsp$>$\_!*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step \\ \index{i-state-okp-i-incr\_$<$tsp$>$\_!$<$tsp$>$\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-xor\_$<$z$>$\_$<$tsp$>$\_x-step \\ \index{i-state-okp-i-xor\_$<$z$>$\_$<$t!sp$>$\_x-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp}}\,({\it{i\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step \\ \index{i-state-okp-i-sub\_$<$tsp$>$\{i\}!\_x\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step \\ \index{i-state-okp-i-decr\_$<$tsp$>$\_!$<$tsp$>$\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step \\ \index{i-state-okp-i-neg\_$<$tsp$>$\_$<$t!sp$>$\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step \\ \index{i-state-okp-i-asr\_$<$c$>$\_$<$t!sp$>$\_$<$tsp$>$\{b\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-okp}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step \\ \index{i-state-okp-i-addc\_$<$c$>$\_x\{n\}!\_y\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_$<$tsp$>$\{n\}\_x\{n\}-step \\ \index{i-state-okp-i-add\_$<$tsp$>$\{n\}!\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step \\ \index{i-state-okp-i-incr\_$<$tsp$>$\_!$<$tsp$>$\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-incr\_y\_y\{n\}-step \\ \index{i-state-okp-i-incr\_y\_y\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_y\_y\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-incr\_y\_y\{n\}-step}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-int-to-nat-step \\ \index{i-state-okp-i-int-to-nat-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-int-to-nat-okp}}\,({\it{i\/}})\index{i-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-int-to-nat-step}}\,({\it{i\/}})\index{i-int-to-nat-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step \\ \index{i-state-okp-i-decr\_$<$tsp$>$\_!$<$tsp$>$\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_$<$c$>$\_x\_x\{n\}-step \\ \index{i-state-okp-i-add\_$<$c$>$\_x\_!x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step \\ \index{i-state-okp-i-add\_$<$tsp$>$\_$<$t!sp$>$\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-lsr\_$<$c$>$\_x\_x\{n\}-step \\ \index{i-state-okp-i-lsr\_$<$c$>$\_x\_!x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step \\ \index{i-state-okp-i-subb\_$<$c$>$\_x\{n\}!\_y\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step \\ \index{i-state-okp-i-sub\_$<$c$>$\_$<$t!sp$>$\{n\}\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{verbatim}; I got to here, but ran out of CONS space and can't save my lib.


\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step \\ \index{i-state-okp-i-sub\_$<$nv$>$\_$<$t!sp$>$\{i\}\_x\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step \\ \index{i-state-okp-i-sub\_$<$tsp$>$\{n\}!\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step \\ \index{i-state-okp-i-sub\_$<$c$>$\_$<$t!sp$>$\{a\}\_x\{a\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step \\ \index{i-state-okp-i-sub\_$<$tsp$>$\{s\}!\_x\{s\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move-c\_$<$tsp$>$\_*-step \\ \index{i-state-okp-i-move-c\_$<$tsp$>$!\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-c\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move-c\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-move-v\_$<$tsp$>$\_*-step \\ \index{i-state-okp-i-move-v\_$<$tsp$>$!\_*-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-v\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-move-v\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-or\_$<$tsp$>$\{v\}\_x\{v\}-step \\ \index{i-state-okp-i-or\_$<$tsp$>$\{v\}!\_x\{v\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-and\_$<$tsp$>$\{v\}\_x\{v\}-step \\ \index{i-state-okp-i-and\_$<$tsp$>$\{v\}!\_x\{v\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step \\ \index{i-state-okp-i-not\_$<$tsp$>$\_$<$t!sp$>$\{v\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step \\ \index{i-state-okp-i-xor\_$<$tsp$>$\{v\}!\_x\{v\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step \\ \index{i-state-okp-i-lsr\_$<$tsp$>$\_$<$t!sp$>$\{v\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step \\ \index{i-state-okp-i-add\_$<$tsp$>$\_$<$t!sp$>$\{v\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-or\_$<$tsp$>$\{b\}\_x\{b\}-step \\ \index{i-state-okp-i-or\_$<$tsp$>$\{b\}!\_x\{b\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-and\_$<$tsp$>$\{b\}\_x\{b\}-step \\ \index{i-state-okp-i-and\_$<$tsp$>$\{b\}!\_x\{b\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step \\ \index{i-state-okp-i-xor\_$<$tsp$>$\{b\}!\_*\{b\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step \\ \index{i-state-okp-i-xor\_$<$tsp$>$\{b\}!\_x\{b\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_pc\_x\{n\}-step \\ \index{i-state-okp-i-add\_pc\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_pc\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_pc\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-add\_x\_x\{n\}-step \\ \index{i-state-okp-i-add\_x\_x\{n\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-add\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step \\ \index{i-state-okp-i-addc\_$<$v$>$\_x\{i\}!\_y\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step \\ \index{i-state-okp-i-subb\_$<$v$>$\_x\{i\}!\_y\{i\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-cpush\_cfp-step \\ \index{i-state-okp-i-cpush\_cfp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_cfp-okp}}\,({\it{i\/}})\index{i-cpush\_cfp-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-cpush\_cfp-step}}\,({\it{i\/}})\index{i-cpush\_cfp-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step \\ \index{i-state-okp-i-sub\_$<$z$>$\_x\{s\}!\_y\{s\}-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-ins-step \\ \index{i-state-okp-i-ins-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-ins-okp}}\,({\it{ins\/}}, {\it{i\/}})\index{i-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-ins-step}}\,({\it{ins\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-halt \\ \index{i-state-okp-i-halt}
{\rm{i-state-okp}}\,({\rm{i-halt}}\,({\it{i\/}}, {\it{psw\/}})\index{i-halt}, {\it{load-addr\/}})\index{i-state-okp} $=$ {\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-state-okp-i-step \\ \index{i-state-okp-i-step}
\=\+(({\it{load-addr\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{verbatim}; The link tables in display-data-segment play two roles.  One is
; to let us get at that section of memory containing a certain
; area.  The other is to map the objects in that section up.
; I wish to distinguish these two roles because I need to do some
; inductions in which one of the tables is fixed and the other
; varies.  In addition, I need to separate the process of fetching
; the objects from the process of mapping them up.  So I will define
; the functions that do these separate jobs and prove their equivalence
; to display-data-segment.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{get-array} \\  
\=\+{\rm{get-array}}\,({\it{n\/}}, {\it{m-addr\/}}, {\it{m-mem\/}})\index{get-array} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{get}}\,({\it{m-addr\/}}, {\it{m-mem\/}})\index{get}, {\rm{get-array}}\,({\it{n\/}} $-\;1$, $1\;+$ {\it{m-addr\/}}, {\it{m-mem\/}})\index{get-array})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{unlink-data-word-array} \\  
\=\+{\rm{unlink-data-word-array}}\,({\it{type-lst\/}}, {\it{obj-lst\/}}, {\it{link-tables\/}})\index{unlink-data-word-array} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{unlink-data-word}}\,(\=\+{\rm{car}}\,({\it{type-lst\/}}), \\ 
{\rm{car}}\,({\it{obj-lst\/}}), \\ 
{\it{link-tables\/}})\-\index{unlink-data-word}, \\ 
{\rm{unlink-data-word-array}}\,(\=\+{\rm{cdr}}\,({\it{type-lst\/}}), \\ 
{\rm{cdr}}\,({\it{obj-lst\/}}), \\ 
{\it{link-tables\/}})\-\index{unlink-data-word-array})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{get-areas} \\  
\=\+{\rm{get-areas}}\,({\it{type-spec\/}}, {\it{usr-data-links\/}}, {\it{m-mem\/}})\index{get-areas} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-spec\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{caar}}\,({\it{type-spec\/}}), \\ 
{\rm{get-array}}\,(\=\+{\rm{length}}\,({\rm{cdar}}\,({\it{type-spec\/}}))\index{length}, \\ 
{\rm{base-address}}\,(\=\+{\rm{caar}}\,({\it{type-spec\/}}), \\ 
{\it{usr-data-links\/}})\-\index{base-address}, \\ 
{\it{m-mem\/}})\-\index{get-array})\-, \\ 
{\rm{get-areas}}\,({\rm{cdr}}\,({\it{type-spec\/}}), {\it{usr-data-links\/}}, {\it{m-mem\/}})\index{get-areas})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{unlink-areas} \\  
\=\+{\rm{unlink-areas}}\,({\it{type-spec\/}}, {\it{segment\/}}, {\it{link-tables\/}})\index{unlink-areas} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-spec\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{caar}}\,({\it{type-spec\/}}), \\ 
{\rm{unlink-data-word-array}}\,(\=\+{\rm{cdar}}\,({\it{type-spec\/}}), \\ 
{\rm{cdar}}\,({\it{segment\/}}), \\ 
{\it{link-tables\/}})\-\index{unlink-data-word-array})\-, \\ 
{\rm{unlink-areas}}\,({\rm{cdr}}\,({\it{type-spec\/}}), {\rm{cdr}}\,({\it{segment\/}}), {\it{link-tables\/}})\index{unlink-areas})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-array} \\  
\=\+{\rm{display-array}}\,({\it{type-lst\/}}, {\it{n\/}}, {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-array} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{unlink-data-word}}\,(\=\+{\rm{car}}\,({\it{type-lst\/}}), \\ 
{\rm{get}}\,({\it{n\/}}, {\it{m-mem\/}})\index{get}, \\ 
{\it{link-tables\/}})\-\index{unlink-data-word}, \\ 
{\rm{display-array}}\,({\rm{cdr}}\,({\it{type-lst\/}}), $1\;+$ {\it{n\/}}, {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-array})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-data-area} \\  
\=\+{\rm{display-data-area}}\,({\it{area-type-spec\/}}, {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-data-area} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{car}}\,({\it{area-type-spec\/}}), \\ 
{\rm{display-array}}\,(\=\+{\rm{cdr}}\,({\it{area-type-spec\/}}), \\ 
{\rm{base-address}}\,(\=\+{\rm{car}}\,({\it{area-type-spec\/}}), \\ 
{\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links})\-\index{base-address}, \\ 
{\it{m-mem\/}}, \\ 
{\it{link-tables\/}})\-\index{display-array})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-data-segment} \\  
\=\+{\rm{display-data-segment}}\,({\it{type-spec\/}}, {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-data-segment} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-spec\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{display-data-area}}\,({\rm{car}}\,({\it{type-spec\/}}), {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-data-area}, \\ 
{\rm{display-data-segment}}\,({\rm{cdr}}\,({\it{type-spec\/}}), {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-data-segment})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{display-m-data-segment} \\  
\=\+{\rm{display-m-data-segment}}\,({\it{m\/}}, {\it{type-spec\/}}, {\it{link-tables\/}})\index{display-m-data-segment} \\ 
$=$$\;\;\;\;${\rm{display-data-segment}}\,({\it{type-spec\/}}, {\rm{m-mem}}\,({\it{m\/}})\index{m-mem}, {\it{link-tables\/}})\index{display-data-segment}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  display-array-decomposition \\ \index{display-array-decomposition}
\=\+{\rm{display-array}}\,({\it{type-lst\/}}, {\it{m-addr\/}}, {\it{m-mem\/}}, {\it{link-tables\/}})\index{display-array} \\ 
$=$$\;\;\;\;${\rm{unlink-data-word-array}}\,(\=\+{\it{type-lst\/}}, \\ 
{\rm{get-array}}\,({\rm{length}}\,({\it{type-lst\/}})\index{length}, {\it{m-addr\/}}, {\it{m-mem\/}})\index{get-array}, \\ 
{\it{link-tables\/}})\-\index{unlink-data-word-array}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  display-data-segment-decomposition \\ \index{display-data-segment-decompositi!on}
\=\+{\rm{display-data-segment}}\,({\it{type-spec\/}}, {\it{m-mem\/}}, {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\index{display-data-segment} \\ 
$=$$\;\;\;\;${\rm{unlink-areas}}\,(\=\+{\it{type-spec\/}}, \\ 
{\rm{get-areas}}\,(\=\+{\it{type-spec\/}}, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, \\ 
{\it{load-addr\/}})\-\index{link-table-for-segment}, \\ 
{\it{m-mem\/}})\-\index{get-areas}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\index{unlink-areas}\-
\end{tabbing}

\begin{verbatim}; The key steps to proving that display-data-segment inverts is to
; show that (a) get-areas retrieves the linked areas and (b)
; unlink-areas inverts link-areas.  We begin with the get-segment
; part.

; Link-areas, mentioned above, is like link-segment, only it
; preserves the areas instead of flattening them.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{link-areas} \\  
\=\+{\rm{link-areas}}\,({\it{segment\/}}, {\it{link-tables\/}}, {\it{word-size\/}})\index{link-areas} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{caar}}\,({\it{segment\/}}), \\ 
{\rm{link-area}}\,({\rm{cdar}}\,({\it{segment\/}}), {\it{link-tables\/}}, {\it{word-size\/}})\index{link-area})\-, \\ 
{\rm{link-areas}}\,({\rm{cdr}}\,({\it{segment\/}}), {\it{link-tables\/}}, {\it{word-size\/}})\index{link-areas})\-$\;${\bf  endif}\-\-
\end{tabbing}


\begin{verbatim}; To show that get-areas on a linked memory gives link-areas, it is
; necessary to know that get-array gets a link-area.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{cdr-n} \\  
\=\+{\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{lst\/}} \\ 
{\bf else }{\rm{cdr-n}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{lst\/}}))\index{cdr-n}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable equal-length-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-link-table-entry \\ \index{lessp-link-table-entry}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ {\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry} $<$ {\rm{segment-length}}\,({\it{segment\/}})\index{segment-length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-link-table-entry-link-segment-generalized \\ \index{get-link-table-entry-link-segme!nt-generalized}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ ({\it{i\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\it{i\/}} $+$ {\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry}, \\ 
{\rm{link-segment}}\,({\it{segment\/}}, {\it{table\/}}, {\it{word-size\/}})\index{link-segment})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{link-word}}\,(\=\+{\rm{unlabel}}\,({\rm{get}}\,({\it{i\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{get})\index{unlabel}, \\ 
{\it{table\/}}, \\ 
{\it{word-size\/}})\-\index{link-word})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  plus-equal-0 \\ \index{plus-equal-0}
(({\it{x\/}} $+$ {\it{y\/}}) $=$ {\tt{0}}) $=$ (({\it{x\/}} $\simeq {\tt{0}}$) $\wedge$ ({\it{y\/}} $\simeq {\tt{0}}$))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-cdr-n-is-get \\ \index{car-cdr-n-is-get}
{\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n}) $=$ {\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-cdr-n \\ \index{cdr-cdr-n}
{\rm{cdr}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n}) $=$ {\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{lst\/}}))\index{cdr-n}
\end{tabbing}

\begin{verbatim}; This lemma was excrutiatingly hard for me to get.
; The reason, I think, is that I've just come back to
; the im level proofs after 3 months of working elsewhere
; and I no longer have the required mastery of the rules.

; This theorem was hard to invent too.  The main reason is
; that I had to get a sufficiently general version to permit
; inductive proof.  The trick was the introduction of i.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{first-n} \\  
\=\+{\rm{first-n}}\,({\it{n\/}}, {\it{x\/}})\index{first-n} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{car}}\,({\it{x\/}}), {\rm{first-n}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{x\/}}))\index{first-n})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-array-link-mem \\ \index{get-array-link-mem}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{usr-data-segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{usr-data-segment\/}})))\index{length} $\not<$ ({\it{i\/}} $+$ {\it{n\/}})) \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get-array}}\,(\=\+{\it{n\/}}, \\ 
{\it{load-addr\/}} $+$ ({\it{i\/}} $+$ {\rm{link-table-entry}}\,(\=\+{\it{name\/}}, \\ 
{\it{usr-data-segment\/}})\-\index{link-table-entry}), \\ 
{\rm{append}}\,(\=\+{\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,(\=\+{\it{usr-data-segment\/}}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment}, \\ 
{\it{rest\/}})\-)\-)\-\index{get-array} \\ 
$=$$\;\;\;\;${\rm{link-area}}\,(\=\+{\rm{first-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{cdr-n}}\,({\it{i\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{usr-data-segment\/}})))\index{cdr-n})\-\index{first-n}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-area})\-\-
\end{tabbing}

\begin{verbatim}; Now I instantiate the above theorem to get the rule I need.

; The following lemma has a link-area around a familiar identity
; just so I can avoid bringing up a properp hypothesis.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  first-n-length-embedded \\ \index{first-n-length-embedded}
\=\+{\rm{link-area}}\,({\rm{first-n}}\,({\rm{length}}\,({\it{lst\/}})\index{length}, {\it{lst\/}})\index{first-n}, {\it{tables\/}}, {\it{word-size\/}})\index{link-area} \\ 
$=$$\;\;\;\;${\rm{link-area}}\,({\it{lst\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-area}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-array-link-mem-instance \\ \index{get-array-link-mem-instance}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{usr-data-segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{usr-data-segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get-array}}\,(\=\+{\it{n\/}}, \\ 
{\it{load-addr\/}} $+$ {\rm{link-table-entry}}\,({\it{name\/}}, {\it{usr-data-segment\/}})\index{link-table-entry}, \\ 
{\rm{append}}\,(\=\+{\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,(\=\+{\it{usr-data-segment\/}}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment}, \\ 
{\it{rest\/}})\-)\-)\-\index{get-array} \\ 
$=$$\;\;\;\;${\rm{link-area}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{usr-data-segment\/}})), {\it{tables\/}}, {\it{word-size\/}})\index{link-area})\-\-
\end{tabbing}

\begin{verbatim}; To formulate a suitably general version of the get-areas
; theorem I need the concept that one segment is an extension
; of another.  By that I mean that everything that occurs in
; the one is identically defined in the other.
; Notice that this concept is not reflexive
; unless we know the segment contains no duplicate area names.
; This whole concept is fairly subtle in its interaction with
; the proof of the get-areas lemma.  The first three lemmas
; below are the crucial properties of subsegmentp for that
; proof.  Reflexivity is needed only for the final use of
; the get-areas theorem.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{subsegmentp} \\  
\=\+{\rm{subsegmentp}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{subsegmentp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment1\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+{\rm{definedp}}\,({\rm{caar}}\,({\it{segment1\/}}), {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{assoc}}\,({\rm{caar}}\,({\it{segment1\/}}), {\it{segment2\/}}) $=$ {\rm{car}}\,({\it{segment1\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{subsegmentp}}\,({\rm{cdr}}\,({\it{segment1\/}}), {\it{segment2\/}})\index{subsegmentp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subsegmentp-cdr \\ \index{subsegmentp-cdr}
({\rm{listp}}\,({\it{x\/}}) $\wedge$ {\rm{subsegmentp}}\,({\it{x\/}}, {\it{y\/}})\index{subsegmentp}) $\rightarrow$ {\rm{subsegmentp}}\,({\rm{cdr}}\,({\it{x\/}}), {\it{y\/}})\index{subsegmentp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subsegmentp-implies-definedp \\ \index{subsegmentp-implies-definedp}
\=\+({\rm{listp}}\,({\it{segment\/}}) $\wedge$ {\rm{subsegmentp}}\,({\it{segment\/}}, {\it{usr-data-segment\/}})\index{subsegmentp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{caar}}\,({\it{segment\/}}), {\it{usr-data-segment\/}})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subsegmentp-implies-equal-assoc \\ \index{subsegmentp-implies-equal-assoc}
\=\+({\rm{listp}}\,({\it{segment\/}}) $\wedge$ {\rm{subsegmentp}}\,({\it{segment\/}}, {\it{usr-data-segment\/}})\index{subsegmentp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\rm{caar}}\,({\it{segment\/}}), {\it{usr-data-segment\/}}) $=$ {\rm{car}}\,({\it{segment\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subsegmentp-reflexive-lemma \\ \index{subsegmentp-reflexive-lemma}
({\rm{subsegmentp}}\,({\it{x\/}}, {\rm{cdr}}\,({\it{y\/}}))\index{subsegmentp} $\wedge$ ($\neg$ {\rm{definedp}}\,({\rm{caar}}\,({\it{y\/}}), {\it{x\/}})\index{definedp})) $\rightarrow$ {\rm{subsegmentp}}\,({\it{x\/}}, {\it{y\/}})\index{subsegmentp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subsegmentp-reflexive \\ \index{subsegmentp-reflexive}
{\rm{proper-i-usr-data-segmentp}}\,({\it{segment\/}}, {\it{i\/}})\index{proper-i-usr-data-segmentp} $\rightarrow$ {\rm{subsegmentp}}\,({\it{segment\/}}, {\it{segment\/}})\index{subsegmentp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-type-lst \\ \index{length-type-lst}
{\rm{length}}\,({\rm{type-lst}}\,({\it{area\/}})\index{type-lst})\index{length} $=$ {\rm{length}}\,({\it{area\/}})\index{length}
\end{tabbing}


\begin{verbatim}; The following theorem is key step (a) above, when the theorem is
; instantiated with segment replaced by usr-data-segment.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-areas-link-mem \\ \index{get-areas-link-mem}
\=\+(({\it{load-addr\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{subsegmentp}}\,({\it{segment\/}}, {\it{usr-data-segment\/}})\index{subsegmentp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get-areas}}\,(\=\+{\rm{type-specification}}\,({\it{segment\/}})\index{type-specification}, \\ 
{\rm{link-table-for-segment}}\,({\it{usr-data-segment\/}}, {\it{load-addr\/}})\index{link-table-for-segment}, \\ 
{\rm{append}}\,(\=\+{\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{load-addr\/}}, {\it{word-size\/}})\index{boot-code}, \\ 
{\rm{append}}\,(\=\+{\rm{link-segment}}\,(\=\+{\it{usr-data-segment\/}}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-segment}, \\ 
{\it{rest\/}})\-)\-)\-\index{get-areas} \\ 
$=$$\;\;\;\;${\rm{link-areas}}\,({\it{segment\/}}, {\it{tables\/}}, {\it{word-size\/}})\index{link-areas})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-icode-instructionp \\ \index{not-icode-instructionp}
{\rm{i-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-objectp} $\rightarrow$ ($\neg$ {\rm{icode-instructionp}}\,({\it{x\/}})\index{icode-instructionp})
\end{tabbing}


\begin{verbatim}; We now have to prove that if i-state-okp holds then i-word-size is
; non-0.  This is necessary because otherwise booleans don't invert!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  cstk-implies-not-zerop-segment-length \\ \index{cstk-implies-not-zerop-segment-!length}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{segment-length}}\,({\it{segment\/}})\index{segment-length} $\not\simeq {\tt{0}}$)\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-loadablep-and-cstk-implies-not-zerop-i-word-size \\ \index{i-loadablep-and-cstk-implies-not!-zerop-i-word-size}
\=\+(\=\+{\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{i-cfp}}\,({\it{i\/}})\index{i-cfp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $\in\;${\bf{N}}${}$) $\wedge$ ({\tt{0}} $<$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-cdr-elim-accelerator \\ \index{car-cdr-elim-accelerator}
\=\+({\rm{listp}}\,({\it{x\/}}) $\wedge$ ({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) $\wedge$ ({\it{type\/}} $=$ {\rm{car}}\,({\it{x\/}}))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{list}}\,({\it{type\/}}, {\rm{cadr}}\,({\it{x\/}})) $=$ {\it{x\/}})\-
\end{tabbing}


\begin{verbatim}; Here is the key invertibility lemma.

; The list of disabled functions, after icode-instructionp, in the
; hint below was mechanically generated.  It contains all the
; functions used to link and unlink individual data types.  The list
; could be shortened.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  unlink-data-word-link-data-word \\ \index{unlink-data-word-link-data-word}
\=\+(({\it{load-addr\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{i-usr-data-objectp}}\,({\it{x\/}}, {\it{i\/}})\index{i-usr-data-objectp} $\wedge$ {\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlink-data-word}}\,(\=\+{\rm{type}}\,({\it{x\/}})\index{type}, \\ 
{\rm{link-data-word}}\,(\=\+{\it{x\/}}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{link-data-word}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\index{unlink-data-word} \\ 
$=$$\;\;\;\;${\it{x\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlink-data-word-array-link-area \\ \index{unlink-data-word-array-link-are!a}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{all-i-usr-data-objectps}}\,({\it{array\/}}, {\it{i\/}})\index{all-i-usr-data-objectps} \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlink-data-word-array}}\,(\=\+{\rm{type-lst}}\,({\it{array\/}})\index{type-lst}, \\ 
{\rm{link-area}}\,(\=\+{\it{array\/}}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{link-area}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\index{unlink-data-word-array} \\ 
$=$$\;\;\;\;${\it{array\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlink-areas-link-areas \\ \index{unlink-areas-link-areas}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\it{segment\/}}, {\it{i\/}})\index{proper-i-usr-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlink-areas}}\,(\=\+{\rm{type-specification}}\,({\it{segment\/}})\index{type-specification}, \\ 
{\rm{link-areas}}\,(\=\+{\it{segment\/}}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}, \\ 
{\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\-\index{link-areas}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\index{unlink-areas} \\ 
$=$$\;\;\;\;${\it{segment\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  display-m-data-segment-inverts-i-$>$m \\ \index{display-m-data-segment-inverts-i!-$>$m}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{i\/}})\index{proper-i-usr-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{display-m-data-segment}}\,(\=\+{\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m}, \\ 
{\rm{type-specification}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{type-specification}, \\ 
{\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\index{display-m-data-segment} \\ 
$=$$\;\;\;\;${\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\-\-
\end{tabbing}
 
\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_x\_x \\ \index{i-link-tables-step-move\_x\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_x-okp}}\,({\it{i\/}})\index{i-move\_x\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_x\_x-step}}\,({\it{i\/}})\index{i-move\_x\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-cpush\_* \\ \index{i-link-tables-step-cpush\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_*-okp}}\,({\it{i\/}})\index{i-cpush\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-cpush\_*-step}}\,({\it{i\/}})\index{i-cpush\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_$<$tsp$>$\{i\}\_x\{i\} \\ \index{i-link-tables-step-add\_$<$tsp$>$!\{i\}\_x\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-cpush\_cfp \\ \index{i-link-tables-step-cpush\_cfp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_cfp-okp}}\,({\it{i\/}})\index{i-cpush\_cfp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_cfp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-cpush\_cfp-step}}\,({\it{i\/}})\index{i-cpush\_cfp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_cfp\_csp \\ \index{i-link-tables-step-move\_cfp\_c!sp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_cfp\_csp-okp}}\,({\it{i\/}})\index{i-move\_cfp\_csp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_cfp\_csp-step}}\,({\it{i\/}})\index{i-move\_cfp\_csp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-cpush\_$<$tsp$>$+ \\ \index{i-link-tables-step-cpush\_$<$tsp!$>$+}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpush\_$<$tsp$>$+-okp}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-cpush\_$<$tsp$>$+-step}}\,({\it{i\/}})\index{i-cpush\_$<$tsp$>$+-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_csp\_cfp \\ \index{i-link-tables-step-move\_csp\_c!fp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_csp\_cfp-okp}}\,({\it{i\/}})\index{i-move\_csp\_cfp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_csp\_cfp-step}}\,({\it{i\/}})\index{i-move\_csp\_cfp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_x\_tsp \\ \index{i-link-tables-step-move\_x\_tsp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_tsp-okp}}\,({\it{i\/}})\index{i-move\_x\_tsp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_tsp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_x\_tsp-step}}\,({\it{i\/}})\index{i-move\_x\_tsp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-cpop\_cfp \\ \index{i-link-tables-step-cpop\_cfp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpop\_cfp-okp}}\,({\it{i\/}})\index{i-cpop\_cfp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpop\_cfp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-cpop\_cfp-step}}\,({\it{i\/}})\index{i-cpop\_cfp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_x\_* \\ \index{i-link-tables-step-move\_x\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_*-okp}}\,({\it{i\/}})\index{i-move\_x\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_x\_*-step}}\,({\it{i\/}})\index{i-move\_x\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_y\_* \\ \index{i-link-tables-step-move\_y\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_*-okp}}\,({\it{i\/}})\index{i-move\_y\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_y\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_y\_*-step}}\,({\it{i\/}})\index{i-move\_y\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_x\{n\}\_csp \\ \index{i-link-tables-step-add\_x\{n\}\_!csp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_x\{n\}\_csp-okp}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_x\{n\}\_csp-step}}\,({\it{i\/}})\index{i-add\_x\{n\}\_csp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_x\_$<$x\{s\}$>$ \\ \index{i-link-tables-step-move\_x\_$<$!x\{s\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_x\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_x\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_x\_$<$x\{s\}$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_y\_$<$y\{s\}$>$ \\ \index{i-link-tables-step-move\_y\_$<$!y\{s\}$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_$<$y\{s\}$>$-okp}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_y\_$<$y\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_y\_$<$y\{s\}$>$-step}}\,({\it{i\/}})\index{i-move\_y\_$<$y\{s\}$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_y\_tsp \\ \index{i-link-tables-step-move\_y\_tsp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_y\_tsp-okp}}\,({\it{i\/}})\index{i-move\_y\_tsp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_y\_tsp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_y\_tsp-step}}\,({\it{i\/}})\index{i-move\_y\_tsp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpush\_csp \\ \index{i-link-tables-step-tpush\_csp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_csp-okp}}\,({\it{i\/}})\index{i-tpush\_csp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_csp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpush\_csp-step}}\,({\it{i\/}})\index{i-tpush\_csp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpush\_tsp \\ \index{i-link-tables-step-tpush\_tsp}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_tsp-okp}}\,({\it{i\/}})\index{i-tpush\_tsp-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_tsp}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpush\_tsp-step}}\,({\it{i\/}})\index{i-tpush\_tsp-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpush\_x \\ \index{i-link-tables-step-tpush\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_x-okp}}\,({\it{i\/}})\index{i-tpush\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpush\_x-step}}\,({\it{i\/}})\index{i-tpush\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpush\_$<$x\{s\}$>$ \\ \index{i-link-tables-step-tpush\_$<$x\{s\}!$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpush\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{s\}$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpush\_$<$x\{a\}$>$ \\ \index{i-link-tables-step-tpush\_$<$x\{a\}!$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpush\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpush\_$<$x\{a\}$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpush\_* \\ \index{i-link-tables-step-tpush\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpush\_*-okp}}\,({\it{i\/}})\index{i-tpush\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpush\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpush\_*-step}}\,({\it{i\/}})\index{i-tpush\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\_x \\ \index{i-link-tables-step-tpop\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_x-okp}}\,({\it{i\/}})\index{i-tpop\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\_x-step}}\,({\it{i\/}})\index{i-tpop\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\_y \\ \index{i-link-tables-step-tpop\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_y-okp}}\,({\it{i\/}})\index{i-tpop\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\_y-step}}\,({\it{i\/}})\index{i-tpop\_y-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\_$<$x\{s\}$>$ \\ \index{i-link-tables-step-tpop\_$<$x\{s\}!$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$x\{s\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\_$<$x\{s\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{s\}$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\_$<$x\{a\}$>$ \\ \index{i-link-tables-step-tpop\_$<$x\{a\}!$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$x\{a\}$>$-okp}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\_$<$x\{a\}$>$-step}}\,({\it{i\/}})\index{i-tpop\_$<$x\{a\}$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-jump\_* \\ \index{i-link-tables-step-jump\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump\_*-okp}}\,({\it{i\/}})\index{i-jump\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-jump\_*-step}}\,({\it{i\/}})\index{i-jump\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-cpop\_pc \\ \index{i-link-tables-step-cpop\_pc}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-cpop\_pc-okp}}\,({\it{i\/}})\index{i-cpop\_pc-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{cpop\_pc}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-cpop\_pc-step}}\,({\it{i\/}})\index{i-cpop\_pc-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_$<$x\{s\}$>$\_$<$tsp$>$ \\ \index{i-link-tables-step-move\_$<$x\{s\}!$>$\_$<$tsp$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_$<$x\{s\}$>$\_$<$tsp$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_$<$x\{a\}$>$\_$<$tsp$>$ \\ \index{i-link-tables-step-move\_$<$x\{a\}!$>$\_$<$tsp$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_$<$x\{a\}$>$\_$<$tsp$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-jump\_x\{subr\} \\ \index{i-link-tables-step-jump\_x\{subr\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump\_x\{subr\}-okp}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump\_x\{subr\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-jump\_x\{subr\}-step}}\,({\it{i\/}})\index{i-jump\_x\{subr\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-jump-n\_x \\ \index{i-link-tables-step-jump-n\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-n\_x-okp}}\,({\it{i\/}})\index{i-jump-n\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-jump-n\_x-step}}\,({\it{i\/}})\index{i-jump-n\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-jump-nn\_x \\ \index{i-link-tables-step-jump-nn\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-nn\_x-okp}}\,({\it{i\/}})\index{i-jump-nn\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-nn\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-jump-nn\_x-step}}\,({\it{i\/}})\index{i-jump-nn\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-jump-z\_x \\ \index{i-link-tables-step-jump-z\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-z\_x-okp}}\,({\it{i\/}})\index{i-jump-z\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-jump-z\_x-step}}\,({\it{i\/}})\index{i-jump-z\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-jump-nz\_x \\ \index{i-link-tables-step-jump-nz\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-jump-nz\_x-okp}}\,({\it{i\/}})\index{i-jump-nz\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-jump-nz\_x-step}}\,({\it{i\/}})\index{i-jump-nz\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\_pc \\ \index{i-link-tables-step-tpop\_pc}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_pc-okp}}\,({\it{i\/}})\index{i-tpop\_pc-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_pc}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\_pc-step}}\,({\it{i\/}})\index{i-tpop\_pc-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\_$<$c$>$\_x \\ \index{i-link-tables-step-tpop\_$<$c$>$!\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\_$<$c$>$\_x-okp}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\_$<$c$>$\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\_$<$c$>$\_x-step}}\,({\it{i\/}})\index{i-tpop\_$<$c$>$\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\{n\}\_$<$z$>$\_y \\ \index{i-link-tables-step-tpop\{n\}\_$<$!z$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{n\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\{n\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{n\}\_$<$z$>$\_y-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\{i\}\_$<$zn$>$\_y \\ \index{i-link-tables-step-tpop\{i\}\_$<$!zn$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{i\}\_$<$zn$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\{i\}\_$<$zn$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{i\}\_$<$zn$>$\_y-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\{b\}\_$<$z$>$\_y \\ \index{i-link-tables-step-tpop\{b\}\_$<$!z$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{b\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\{b\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{b\}\_$<$z$>$\_y-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-tpop\{v\}\_$<$z$>$\_y \\ \index{i-link-tables-step-tpop\{v\}\_$<$!z$>$\_y}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-tpop\{v\}\_$<$z$>$\_y-okp}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-tpop\{v\}\_$<$z$>$\_y-step}}\,({\it{i\/}})\index{i-tpop\{v\}\_$<$z$>$\_y-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_$<$tsp$>$\{a\}\_x\{n\} \\ \index{i-link-tables-step-add\_$<$tsp$>$!\{a\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_tsp\_*\{n\} \\ \index{i-link-tables-step-add\_tsp\_*\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_tsp\_*\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_tsp\_*\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_tsp\_*\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_*\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_tsp\_x\{n\} \\ \index{i-link-tables-step-add\_tsp\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_tsp\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_tsp\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_tsp\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_tsp\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$tsp$>$\{a\}\_x\{n\} \\ \index{i-link-tables-step-sub\_$<$tsp$>$!\{a\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_x\{s\}\_y\{n\} \\ \index{i-link-tables-step-sub\_x\{s\}\_!y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_x\{s\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_x\{s\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-sub\_x\{s\}\_y\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-xor\_$<$z$>$\_$<$tsp$>$\_x \\ \index{i-link-tables-step-xor\_$<$z$>$!\_$<$tsp$>$\_x}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp}}\,({\it{i\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$z$>$\_$<$tsp$>$\_x}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-xor\_$<$tsp$>$\_$<$tsp$>$ \\ \index{i-link-tables-step-xor\_$<$tsp$>$!\_$<$tsp$>$}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move-z\_$<$tsp$>$\_* \\ \index{i-link-tables-step-move-z\_$<$t!sp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-z\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-z\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move-z\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-z\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move-n\_x\_* \\ \index{i-link-tables-step-move-n\_x\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-n\_x\_*-okp}}\,({\it{i\/}})\index{i-move-n\_x\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-n\_x\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move-n\_x\_*-step}}\,({\it{i\/}})\index{i-move-n\_x\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move\_$<$tsp$>$\_* \\ \index{i-link-tables-step-move\_$<$tsp!$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-incr\_$<$tsp$>$\_$<$tsp$>$\{i\} \\ \index{i-link-tables-step-incr\_$<$tsp!$>$\_$<$tsp$>$\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$tsp$>$\{i\}\_x\{i\} \\ \index{i-link-tables-step-sub\_$<$tsp$>$!\{i\}\_x\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-decr\_$<$tsp$>$\_$<$tsp$>$\{i\} \\ \index{i-link-tables-step-decr\_$<$tsp!$>$\_$<$tsp$>$\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-neg\_$<$tsp$>$\_$<$tsp$>$\{i\} \\ \index{i-link-tables-step-neg\_$<$tsp$>$!\_$<$tsp$>$\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\it{i\/}})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\} \\ \index{i-link-tables-step-asr\_$<$c$>$!\_$<$tsp$>$\_$<$tsp$>$\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-okp}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step}}\,({\it{i\/}})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-addc\_$<$c$>$\_x\{n\}\_y\{n\} \\ \index{i-link-tables-step-addc\_$<$c$>$!\_x\{n\}\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{addc\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_$<$tsp$>$\{n\}\_x\{n\} \\ \index{i-link-tables-step-add\_$<$tsp$>$!\{n\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-incr\_$<$tsp$>$\_$<$tsp$>$\{n\} \\ \index{i-link-tables-step-incr\_$<$tsp!$>$\_$<$tsp$>$\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-incr\_y\_y\{n\} \\ \index{i-link-tables-step-incr\_y\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-incr\_y\_y\{n\}-okp}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-incr\_y\_y\{n\}-step}}\,({\it{i\/}})\index{i-incr\_y\_y\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-int-to-nat \\ \index{i-link-tables-step-int-to-nat}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-int-to-nat-okp}}\,({\it{i\/}})\index{i-int-to-nat-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{int-to-nat}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-int-to-nat-step}}\,({\it{i\/}})\index{i-int-to-nat-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-decr\_$<$tsp$>$\_$<$tsp$>$\{n\} \\ \index{i-link-tables-step-decr\_$<$tsp!$>$\_$<$tsp$>$\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_$<$c$>$\_x\_x\{n\} \\ \index{i-link-tables-step-add\_$<$c$>$!\_x\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$c$>$\_x\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_$<$tsp$>$\_$<$tsp$>$\{n\} \\ \index{i-link-tables-step-add\_$<$tsp$>$!\_$<$tsp$>$\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-lsr\_$<$c$>$\_x\_x\{n\} \\ \index{i-link-tables-step-lsr\_$<$c$>$!\_x\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{lsr\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-subb\_$<$c$>$\_x\{n\}\_y\{n\} \\ \index{i-link-tables-step-subb\_$<$c$>$!\_x\{n\}\_y\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{subb\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\it{i\/}})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\} \\ \index{i-link-tables-step-sub\_$<$c$>$!\_$<$tsp$>$\{n\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\} \\ \index{i-link-tables-step-sub\_$<$nv$>$!\_$<$tsp$>$\{i\}\_x\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\it{i\/}})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$tsp$>$\{n\}\_x\{n\} \\ \index{i-link-tables-step-sub\_$<$tsp$>$!\{n\}\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\} \\ \index{i-link-tables-step-sub\_$<$c$>$!\_$<$tsp$>$\{a\}\_x\{a\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step}}\,({\it{i\/}})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$tsp$>$\{s\}\_x\{s\} \\ \index{i-link-tables-step-sub\_$<$tsp$>$!\{s\}\_x\{s\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-sub\_$<$z$>$\_x\{s\}\_y\{s\} \\ \index{i-link-tables-step-sub\_$<$z$>$!\_x\{s\}\_y\{s\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-okp}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step}}\,({\it{i\/}})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move-c\_$<$tsp$>$\_* \\ \index{i-link-tables-step-move-c\_$<$t!sp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-c\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move-c\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-c\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-move-v\_$<$tsp$>$\_* \\ \index{i-link-tables-step-move-v\_$<$t!sp$>$\_*}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-move-v\_$<$tsp$>$\_*-okp}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-move-v\_$<$tsp$>$\_*-step}}\,({\it{i\/}})\index{i-move-v\_$<$tsp$>$\_*-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-or\_$<$tsp$>$\{v\}\_x\{v\} \\ \index{i-link-tables-step-or\_$<$tsp$>$!\{v\}\_x\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-and\_$<$tsp$>$\{v\}\_x\{v\} \\ \index{i-link-tables-step-and\_$<$tsp$>$!\{v\}\_x\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-not\_$<$tsp$>$\_$<$tsp$>$\{v\} \\ \index{i-link-tables-step-not\_$<$tsp$>$!\_$<$tsp$>$\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{not\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-xor\_$<$tsp$>$\{v\}\_x\{v\} \\ \index{i-link-tables-step-xor\_$<$tsp$>$!\{v\}\_x\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\} \\ \index{i-link-tables-step-lsr\_$<$tsp$>$!\_$<$tsp$>$\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_$<$tsp$>$\_$<$tsp$>$\{v\} \\ \index{i-link-tables-step-add\_$<$tsp$>$!\_$<$tsp$>$\{v\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\it{i\/}})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-or\_$<$tsp$>$\{b\}\_x\{b\} \\ \index{i-link-tables-step-or\_$<$tsp$>$!\{b\}\_x\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-and\_$<$tsp$>$\{b\}\_x\{b\} \\ \index{i-link-tables-step-and\_$<$tsp$>$!\{b\}\_x\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-xor\_$<$tsp$>$\{b\}\_*\{b\} \\ \index{i-link-tables-step-xor\_$<$tsp$>$!\{b\}\_*\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_*\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-xor\_$<$tsp$>$\{b\}\_x\{b\} \\ \index{i-link-tables-step-xor\_$<$tsp$>$!\{b\}\_x\{b\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\it{i\/}})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_pc\_x\{n\} \\ \index{i-link-tables-step-add\_pc\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_pc\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_pc\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_pc\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_pc\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-add\_x\_x\{n\} \\ \index{i-link-tables-step-add\_x\_x\{n\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-add\_x\_x\{n\}-okp}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{add\_x\_x\{n\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-add\_x\_x\{n\}-step}}\,({\it{i\/}})\index{i-add\_x\_x\{n\}-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-addc\_$<$v$>$\_x\{i\}\_y\{i\} \\ \index{i-link-tables-step-addc\_$<$v$>$!\_x\{i\}\_y\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{addc\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step-subb\_$<$v$>$\_x\{i\}\_y\{i\} \\ \index{i-link-tables-step-subb\_$<$v$>$!\_x\{i\}\_y\{i\}}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction} $=$ {\tt{'}}{\tt{(}}{\tt{subb\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\it{i\/}})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-ins-okp-step \\ \index{i-link-tables-ins-okp-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{i-ins-okp}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}})\index{i-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,(\=\+{\rm{i-ins-step}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step}, \\ 
{\it{load-addr\/}})\-\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-step \\ \index{i-link-tables-step}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i-step}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-step}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-link-tables-i \\ \index{i-link-tables-i}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  read-mem-ram-tree-is-get \\ \index{read-mem-ram-tree-is-get}
\=\+(({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{read-mem}}\,({\rm{nat-to-v}}\,({\it{n\/}}, {\it{word-size\/}})\index{nat-to-v}, {\rm{ram-tree}}\,({\it{lst\/}}, {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp})\index{ram-tree})\index{read-mem} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  one-way-correspondence-display-array \\ \index{one-way-correspondence-display-!array}
\=\+(\=\+{\rm{bvp-listp}}\,({\it{mem\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{mem\/}})\index{length} $\not<$ ({\it{n\/}} $+$ {\rm{length}}\,({\it{type-lst\/}})\index{length})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{display-fm9001-array}}\,({\it{type-lst\/}}, {\it{n\/}}, {\rm{ram-tree}}\,({\it{mem\/}}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree}, {\it{link-tables\/}})\index{display-fm9001-array} \\ 
$=$$\;\;\;\;${\rm{display-array}}\,({\it{type-lst\/}}, {\it{n\/}}, {\it{mem\/}}, {\it{link-tables\/}})\index{display-array})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{plausible-data-link-tablep} \\  
\=\+{\rm{plausible-data-link-tablep}}\,({\it{type-spec\/}}, {\it{n\/}}, {\it{usr-data-link-table\/}})\index{plausible-data-link-tablep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type-spec\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+({\it{n\/}} $\not<$ (\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\rm{caar}}\,({\it{type-spec\/}}), {\it{usr-data-link-table\/}})) \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{cdar}}\,({\it{type-spec\/}}))\index{length})\-) \\ 
$\wedge$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\rm{cdr}}\,({\it{type-spec\/}}), \\ 
{\it{n\/}}, \\ 
{\it{usr-data-link-table\/}})\-\index{plausible-data-link-tablep}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  one-way-correspondence-display-fm9001-data-segment1 \\ \index{one-way-correspondence-display-!fm9001-data-segment1}
\=\+(\=\+{\rm{bvp-listp}}\,({\it{mem\/}})\index{bvp-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp} $\not<$ {\rm{length}}\,({\it{mem\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\it{type-spec\/}}, \\ 
{\rm{length}}\,({\it{mem\/}})\index{length}, \\ 
{\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links})\-\index{plausible-data-link-tablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{display-fm9001-data-segment1}}\,(\=\+{\it{type-spec\/}}, \\ 
{\rm{ram-tree}}\,({\it{mem\/}}, {\rm{exp}}\,({\tt{2}}, {\tt{32}})\index{exp})\index{ram-tree}, \\ 
{\it{link-tables\/}})\-\index{display-fm9001-data-segment1} \\ 
$=$$\;\;\;\;${\rm{display-data-segment}}\,({\it{type-spec\/}}, {\it{mem\/}}, {\it{link-tables\/}})\index{display-data-segment})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  display-fm9001-data-segment-m-$>$fm9001 \\ \index{display-fm9001-data-segment-m-$>$!fm9001}
\=\+(\=\+{\rm{proper-m-statep}}\,({\it{m\/}})\index{proper-m-statep} \\ 
$\wedge$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\it{type-spec\/}}, \\ 
{\rm{length}}\,({\rm{m-mem}}\,({\it{m\/}})\index{m-mem})\index{length}, \\ 
{\rm{usr-data-links}}\,({\it{link-tables\/}})\index{usr-data-links})\-\index{plausible-data-link-tablep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{display-fm9001-data-segment}}\,({\rm{m-$>$fm9001}}\,({\it{m\/}})\index{m-$>$fm9001}, {\it{type-spec\/}}, {\it{link-tables\/}})\index{display-fm9001-data-segment} \\ 
$=$$\;\;\;\;${\rm{display-m-data-segment}}\,({\it{m\/}}, {\it{type-spec\/}}, {\it{link-tables\/}})\index{display-m-data-segment})\-\-
\end{tabbing}

\begin{verbatim}; We will have to return to the question of a plausible data link table once we have
; finished the other levels.  The problem is that we have to show that the
; actual data link table generated is plausible and we will do that with
; arguments about the various levels preserving the signatures of the
; the various segments.  But these concepts are not available yet and so
; we complete our work at the m v. fm9001 level by just leaving plausibility
; for later.

; Book:  r.events.  Now we introduce the r machine.

\end{verbatim}
\noindent{\sc Event}:   Set the status of all events.  The status of each event is to be set as follows.  Each `boot-strap' satellite is to be returned to the initial condition.  Each `add-shell' satellite is to be enabled.  enabled.  Anything not otherwise mentioned is to be disabled.   Name this event `close-data-base-3'.\index{close-data-base-3}

\addvspace{18pt}

\begin{verbatim}; We now build r-i.events from its subbooks.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{strip-cadrs} \\  
\=\+{\rm{strip-cadrs}}\,({\it{alist\/}})\index{strip-cadrs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,({\rm{cadar}}\,({\it{alist\/}}), {\rm{strip-cadrs}}\,({\rm{cdr}}\,({\it{alist\/}}))\index{strip-cadrs})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pcpp} \\  
\=\+{\rm{pcpp}}\,({\it{x\/}}, {\it{segment\/}})\index{pcpp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{definition}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{segment\/}})\index{definition})\index{program-body})\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{not-bool} \\  
\=\+{\rm{not-bool}}\,({\it{x\/}})\index{not-bool} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $=$ {\tt{'}}{\tt{f}}$\;\;${\bf then }{\tt{'}}{\tt{t}} \\ 
{\bf else }{\tt{'}}{\tt{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-natp} \\  
\=\+{\rm{p-test-natp}}\,({\it{flg\/}}, {\it{x\/}})\index{p-test-natp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flg\/}} $=$ {\tt{'}}{\tt{zero}}$\;\;${\bf then }{\it{x\/}} $=$ {\tt{0}} \\ 
{\bf else }{\it{x\/}} $\not=$ {\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-intp} \\  
\=\+{\rm{p-test-intp}}\,({\it{flg\/}}, {\it{x\/}})\index{p-test-intp} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\it{flg\/}}: \\ 
{\bf case = }{\it{zero\/}} \\ 
{\bf then }{\it{x\/}} $=$ {\tt{0}} \\ 
{\bf case = }{\it{not-zero\/}} \\ 
{\bf $\;\;$then }{\it{x\/}} $\not=$ {\tt{0}} \\ 
{\bf case = }{\it{neg\/}} \\ 
{\bf $\;\;$then }{\rm{negativep}}\,({\it{x\/}}) \\ 
{\bf case = }{\it{not-neg\/}} \\ 
{\bf $\;\;$then }$\neg$ {\rm{negativep}}\,({\it{x\/}}) \\ 
{\bf case = }{\it{pos\/}} \\ 
{\bf $\;\;$then }({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{x\/}} $\not=$ {\tt{0}}) \\ 
{\bf otherwise }({\it{x\/}} $=$ {\tt{0}}) $\vee$ {\rm{negativep}}\,({\it{x\/}})$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-boolp} \\  
\=\+{\rm{p-test-boolp}}\,({\it{flg\/}}, {\it{x\/}})\index{p-test-boolp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flg\/}} $=$ {\tt{'}}{\tt{t}}$\;\;${\bf then }{\it{x\/}} $=$ {\tt{'}}{\tt{t}} \\ 
{\bf else }{\it{x\/}} $=$ {\tt{'}}{\tt{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-bitvp} \\  
\=\+{\rm{p-test-bitvp}}\,({\it{flg\/}}, {\it{x\/}})\index{p-test-bitvp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flg\/}} $=$ {\tt{'}}{\tt{all-zero}}$\;\;${\bf then }{\rm{all-zero-bitvp}}\,({\it{x\/}})\index{all-zero-bitvp} \\ 
{\bf else }$\neg$ {\rm{all-zero-bitvp}}\,({\it{x\/}})\index{all-zero-bitvp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{piton-opcodes} \\  
\=\+{\sc{piton-opcodes}}\index{piton-opcodes} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{call}}{\tt{ }}{\tt{ret}}{\tt{ }}{\tt{locn}}{\tt{ }}{\tt{push-constant}}{\tt{ }}{\tt{push-local}}{\tt{ }}{\tt{push-global}} \\ 
{\tt{push-ctrl-stk-free-size}}{\tt{ }}{\tt{push-temp-stk-free-size}} \\ 
{\tt{push-temp-stk-index}}{\tt{ }}{\tt{jump-if-temp-stk-full}} \\ 
{\tt{jump-if-temp-stk-empty}}{\tt{ }}{\tt{pop}}{\tt{ }}{\tt{pop*}}{\tt{ }}{\tt{popn}}{\tt{ }}{\tt{pop-local}} \\ 
{\tt{pop-global}}{\tt{ }}{\tt{pop-locn}}{\tt{ }}{\tt{pop-call}}{\tt{ }}{\tt{fetch-temp-stk}} \\ 
{\tt{deposit-temp-stk}}{\tt{ }}{\tt{jump}}{\tt{ }}{\tt{jump-case}}{\tt{ }}{\tt{pushj}}{\tt{ }}{\tt{popj}}{\tt{ }}{\tt{set-local}} \\ 
{\tt{set-global}}{\tt{ }}{\tt{test-nat-and-jump}}{\tt{ }}{\tt{test-int-and-jump}} \\ 
{\tt{test-bool-and-jump}}{\tt{ }}{\tt{test-bitv-and-jump}}{\tt{ }}{\tt{no-op}}{\tt{ }}{\tt{add-addr}} \\ 
{\tt{sub-addr}}{\tt{ }}{\tt{eq}}{\tt{ }}{\tt{lt-addr}}{\tt{ }}{\tt{fetch}}{\tt{ }}{\tt{deposit}}{\tt{ }}{\tt{add-int}} \\ 
{\tt{add-int-with-carry}}{\tt{ }}{\tt{add1-int}}{\tt{ }}{\tt{sub-int}}{\tt{ }}{\tt{sub-int-with-carry}} \\ 
{\tt{sub1-int}}{\tt{ }}{\tt{neg-int}}{\tt{ }}{\tt{lt-int}}{\tt{ }}{\tt{int-to-nat}}{\tt{ }}{\tt{add-nat}} \\ 
{\tt{add-nat-with-carry}}{\tt{ }}{\tt{add1-nat}}{\tt{ }}{\tt{sub-nat}}{\tt{ }}{\tt{sub-nat-with-carry}} \\ 
{\tt{sub1-nat}}{\tt{ }}{\tt{lt-nat}}{\tt{ }}{\tt{mult2-nat}}{\tt{ }}{\tt{mult2-nat-with-carry-out}} \\ 
{\tt{div2-nat}}{\tt{ }}{\tt{or-bitv}}{\tt{ }}{\tt{and-bitv}}{\tt{ }}{\tt{not-bitv}}{\tt{ }}{\tt{xor-bitv}}{\tt{ }}{\tt{rsh-bitv}} \\ 
{\tt{lsh-bitv}}{\tt{ }}{\tt{or-bool}}{\tt{ }}{\tt{and-bool}}{\tt{ }}{\tt{not-bool}}{\tt{)}}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{legal-labelp} \\  
{\rm{legal-labelp}}\,({\it{ins\/}})\index{legal-labelp} $=$ ({\rm{labelledp}}\,({\it{ins\/}})\index{labelledp} $\rightarrow$ {\rm{litatom}}\,({\rm{cadr}}\,({\it{ins\/}})))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-objectp} \\  
\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{type}}\,({\it{x\/}})\index{type}: \\ 
{\bf case = }{\it{nat\/}} \\ 
{\bf then }{\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{small-naturalp} \\ 
{\bf case = }{\it{int\/}} \\ 
{\bf $\;\;$then }{\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{small-integerp} \\ 
{\bf case = }{\it{bitv\/}} \\ 
{\bf $\;\;$then }{\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{bit-vectorp} \\ 
{\bf case = }{\it{bool\/}} \\ 
{\bf $\;\;$then }{\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp} \\ 
{\bf case = }{\it{addr\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{adpp} \\ 
{\bf case = }{\it{pc\/}} \\ 
{\bf $\;\;$then }{\rm{pcpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{pcpp} \\ 
{\bf case = }{\it{subr\/}} \\ 
{\bf $\;\;$then }{\rm{definedp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
{\bf case = }{\it{sys-addr\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-objectp-type} \\  
{\rm{r-objectp-type}}\,({\it{type\/}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} $=$ (({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\it{type\/}}) $\wedge$ {\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-r-objectps} \\  
\=\+{\rm{all-r-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-objectps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }{\rm{r-objectp}}\,({\rm{car}}\,({\it{lst\/}}), {\it{r\/}})\index{r-objectp} $\wedge$ {\rm{all-r-objectps}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{r\/}})\index{all-r-objectps}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-usr-data-typep} \\  
\=\+{\rm{r-usr-data-typep}}\,({\it{type\/}})\index{r-usr-data-typep} \\ 
$=$$\;\;\;\;$({\it{type\/}} $\in$ {\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{int}}{\tt{ }}{\tt{bitv}}{\tt{ }}{\tt{bool}}{\tt{ }}{\tt{addr}}{\tt{ }}{\tt{subr}}{\tt{ }}{\tt{pc}}{\tt{)}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-usr-data-objectp} \\  
{\rm{r-usr-data-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-usr-data-objectp} $=$ ({\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} $\wedge$ {\rm{r-usr-data-typep}}\,({\rm{type}}\,({\it{x\/}})\index{type})\index{r-usr-data-typep})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{push-stk-n}$\;\;$
{\rm{push-stk-n}}\,({\it{n\/}}, {\it{sys-addr\/}})\index{push-stk-n} $=$ {\rm{sub-addr}}\,({\it{sys-addr\/}}, {\it{n\/}})\index{sub-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pop-stk-n}$\;\;$
{\rm{pop-stk-n}}\,({\it{n\/}}, {\it{sys-addr\/}})\index{pop-stk-n} $=$ {\rm{add-addr}}\,({\it{sys-addr\/}}, {\it{n\/}})\index{add-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fetch-n} \\  
\=\+{\rm{fetch-n}}\,({\it{n\/}}, {\it{addr\/}}, {\it{segment\/}})\index{fetch-n} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{fetch}}\,({\it{addr\/}}, {\it{segment\/}})\index{fetch}, \\ 
{\rm{fetch-n}}\,({\it{n\/}} $-\;1$, {\rm{pop-stk}}\,({\it{addr\/}})\index{pop-stk}, {\it{segment\/}})\index{fetch-n})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{deposit-lst} \\  
\=\+{\rm{deposit-lst}}\,({\it{lst\/}}, {\it{addr\/}}, {\it{segment\/}})\index{deposit-lst} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{segment\/}} \\ 
{\bf else }{\rm{deposit-lst}}\,(\=\+{\rm{cdr}}\,({\it{lst\/}}), \\ 
{\rm{push-stk}}\,({\it{addr\/}})\index{push-stk}, \\ 
{\rm{deposit}}\,({\rm{car}}\,({\it{lst\/}}), {\it{addr\/}}, {\it{segment\/}})\index{deposit})\-\index{deposit-lst}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{total-r-system-size} \\  
\=\+{\rm{total-r-system-size}}\,({\it{r\/}}, {\it{load-addr\/}})\index{total-r-system-size} \\ 
$=$$\;\;\;\;$(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-loadablep} \\  
\=\+{\rm{r-loadablep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{r-loadablep} \\ 
$=$$\;\;\;\;$({\rm{total-r-system-size}}\,({\it{r\/}}, {\it{load-addr\/}})\index{total-r-system-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-instructionp} \\  
\=\+{\rm{r-instructionp}}\,({\it{ins\/}})\index{r-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $\in$ {\sc{piton-opcodes}}\index{piton-opcodes}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{labelledp}}\,({\rm{cadr}}\,({\it{ins\/}}))\index{labelledp}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-program-bodyp} \\  
\=\+{\rm{r-program-bodyp}}\,({\it{lst\/}})\index{r-program-bodyp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{legal-labelp}}\,({\rm{car}}\,({\it{lst\/}}))\index{legal-labelp} \\ 
$\wedge$$\;\;\;\;${\rm{r-instructionp}}\,({\rm{unlabel}}\,({\rm{car}}\,({\it{lst\/}}))\index{unlabel})\index{r-instructionp} \\ 
$\wedge$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{r-program-bodyp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-temp-var-dclsp} \\  
\=\+{\rm{r-temp-var-dclsp}}\,({\it{temp-var-dcls\/}})\index{r-temp-var-dclsp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{temp-var-dcls\/}}) \\ 
{\bf then }\=\+($\neg$ {\rm{labelledp}}\,({\rm{cadar}}\,({\it{temp-var-dcls\/}}))\index{labelledp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-temp-var-dclsp}}\,({\rm{cdr}}\,({\it{temp-var-dcls\/}}))\index{r-temp-var-dclsp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-programp} \\  
\=\+{\rm{r-programp}}\,({\it{prog\/}})\index{r-programp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{litatom}}\,({\rm{name}}\,({\it{prog\/}})\index{name}) \\ 
$\wedge$$\;\;\;\;${\rm{r-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls})\index{r-temp-var-dclsp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body}) \\ 
$\wedge$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{r-program-bodyp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-prog-segmentp} \\  
\=\+{\rm{r-prog-segmentp}}\,({\it{segment\/}})\index{r-prog-segmentp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{segment\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{r-programp}}\,({\rm{car}}\,({\it{segment\/}}))\index{r-programp} \\ 
$\wedge$$\;\;\;\;${\rm{r-prog-segmentp}}\,({\rm{cdr}}\,({\it{segment\/}}))\index{r-prog-segmentp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-r-usr-data-objectps} \\  
\=\+{\rm{all-r-usr-data-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-usr-data-objectps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{r-usr-data-objectp}}\,({\rm{car}}\,({\it{lst\/}}), {\it{r\/}})\index{r-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{r\/}})\index{all-r-usr-data-objectps}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-r-usr-data-area} \\  
\=\+{\rm{proper-r-usr-data-area}}\,({\it{area\/}}, {\it{r\/}})\index{proper-r-usr-data-area} \\ 
$=$$\;\;\;\;$(\=\+{\rm{litatom}}\,({\rm{car}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,({\rm{cdr}}\,({\it{area\/}}), {\it{r\/}})\index{all-r-usr-data-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-r-usr-data-segmentp} \\  
\=\+{\rm{proper-r-usr-data-segmentp}}\,({\it{data-segment\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{data-segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{data-segment\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{proper-r-usr-data-area}}\,({\rm{car}}\,({\it{data-segment\/}}), {\it{r\/}})\index{proper-r-usr-data-area} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\rm{caar}}\,({\it{data-segment\/}}), {\rm{cdr}}\,({\it{data-segment\/}}))\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\rm{cdr}}\,({\it{data-segment\/}}), {\it{r\/}})\index{proper-r-usr-data-segmentp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-r-statep} \\  
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{r-statep}}\,({\it{r\/}})\index{r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{tstkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{tstkp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{definition}}\,({\tt{'}}{\tt{full-ctrl-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definition} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{full-ctrl-stk-addr}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{cstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{definition}}\,({\tt{'}}{\tt{full-temp-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definition} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{full-temp-stk-addr}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{definition}}\,({\tt{'}}{\tt{empty-temp-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definition} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{definiens}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{definiens})\index{length} $-\;1$)\-)\-\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-prog-segmentp}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{r\/}})\index{proper-r-usr-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{r-loadablep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{r-loadablep})\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable pathological-difference.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{stk-equal} \\  
\=\+{\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment1\/}}, {\it{segment2\/}})\index{stk-equal} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{empty-stkp}}\,({\it{sp\/}}, {\it{segment1\/}})\index{empty-stkp}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+({\rm{fetch}}\,({\it{sp\/}}, {\it{segment1\/}})\index{fetch} $=$ {\rm{fetch}}\,({\it{sp\/}}, {\it{segment2\/}})\index{fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\rm{pop-stk}}\,({\it{sp\/}})\index{pop-stk}, {\it{segment1\/}}, {\it{segment2\/}})\index{stk-equal}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{signature}$\;\;$
{\rm{signature}}\,({\it{area\/}})\index{signature} $=$ {\rm{cons}}\,({\rm{car}}\,({\it{area\/}}), {\rm{length}}\,({\it{area\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{same-signature} \\  
\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{segment1\/}}) \\ 
{\bf then }\=\+{\rm{listp}}\,({\it{segment2\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{signature}}\,({\rm{car}}\,({\it{segment1\/}}))\index{signature} $=$ {\rm{signature}}\,({\rm{car}}\,({\it{segment2\/}}))\index{signature}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{cdr}}\,({\it{segment1\/}}), {\rm{cdr}}\,({\it{segment2\/}}))\index{same-signature}\- \\ 
{\bf else }{\it{segment2\/}} $\simeq\;${{\bf{nil}}}${}$$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-equal} \\  
\=\+{\rm{r-equal}}\,({\it{r1\/}}, {\it{r2\/}})\index{r-equal} \\ 
$=$$\;\;\;\;$(\=\+{\rm{r-statep}}\,({\it{r1\/}})\index{r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-statep}}\,({\it{r2\/}})\index{r-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{r-pc}}\,({\it{r1\/}})\index{r-pc} $=$ {\rm{r-pc}}\,({\it{r2\/}})\index{r-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-cfp}}\,({\it{r1\/}})\index{r-cfp} $=$ {\rm{r-cfp}}\,({\it{r2\/}})\index{r-cfp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-csp}}\,({\it{r1\/}})\index{r-csp} $=$ {\rm{r-csp}}\,({\it{r2\/}})\index{r-csp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp} $=$ {\rm{r-tsp}}\,({\it{r2\/}})\index{r-tsp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-prog-segment}}\,({\it{r1\/}})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r2\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-usr-data-segment}}\,({\it{r1\/}})\index{r-usr-data-segment} $=$ {\rm{r-usr-data-segment}}\,({\it{r2\/}})\index{r-usr-data-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{r-csp}}\,({\it{r1\/}})\index{r-csp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\-\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\-\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r1\/}})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r2\/}})\index{r-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\rm{r-psw}}\,({\it{r2\/}})\index{r-psw}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-r-pc}$\;\;$
{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc} $=$ {\rm{add1-addr}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{add1-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-r-pcp} \\  
{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} $=$ {\rm{pcpp}}\,({\rm{untag}}\,({\rm{add1-addr}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{add1-addr})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{pcpp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-current-program} \\  
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program} $=$ {\rm{definition}}\,({\rm{area-name}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{area-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definition}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-current-instruction} \\  
\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction} \\ 
$=$$\;\;\;\;${\rm{unlabel}}\,({\rm{get}}\,({\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, {\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\index{get})\index{unlabel}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-halt} \\  
\=\+{\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\it{psw\/}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-call-okp} \\  
\=\+{\rm{r-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{free-stk-size}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{free-stk-size} \\ 
$\not<$$\;\;\;\;$($1\;+$ ($1\;+$ {\rm{length}}\,({\rm{local-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{local-vars})\index{length})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{stk-length}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{stk-length} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{formal-vars})\index{length})\- \\ 
$\wedge$$\;\;\;\;${\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{all-r-objectps}}\,(\=\+{\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{temp-var-dcls})\index{strip-cadrs}, \\ 
{\it{r\/}})\-\index{all-r-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-call-step} \\  
\=\+{\rm{r-call-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{push-stk-n}}\,({\tt{2}}, {\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{push-stk-n}, \\ 
{\rm{push-stk-n}}\,(\=\+\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{temp-var-dcls})\index{length}\-, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\-\index{push-stk-n}, \\ 
{\rm{pop-stk-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{formal-vars})\index{length}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\-\index{pop-stk-n}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit-lst}}\,(\=\+{\rm{append}}\,(\=\+{\rm{list}}\,({\rm{add1-addr}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{add1-addr}, {\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}), \\ 
{\rm{append}}\,(\=\+{\rm{rev}}\,({\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{temp-var-dcls})\index{strip-cadrs})\index{rev}, \\ 
{\rm{fetch-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{formal-vars})\index{length}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-n})\-)\-, \\ 
{\rm{push-stk}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit-lst}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-call-step-clock} \\  
\=\+{\rm{r-call-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-step-clock} \\ 
$=$$\;\;\;\;$(\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{definition}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definition})\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definition})\index{formal-vars})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ret-okp} \\  
\=\+{\rm{r-ret-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-okp} \\ 
$=$$\;\;\;\;$(\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{area-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{area-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{offset} $\not<$ {\rm{offset}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,(\=\+{\rm{fetch}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{cstkp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ret-step} \\  
\=\+{\rm{r-ret-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{pop-stk})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp} \\ 
{\bf then }{\rm{r-halt}}\,({\it{r\/}}, {\tt{'}}{\tt{halt}})\index{r-halt} \\ 
{\bf else }{\rm{r-state}}\,(\=\+{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{fetch}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ret-step-clock} \\  
\=\+{\rm{r-ret-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-step-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{pop-stk})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp} \\ 
{\bf then }{\tt{0}} \\ 
{\bf else }{\tt{1}} $+$ {\tt{3}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-locn-okp} \\  
\=\+{\rm{r-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-locn-step} \\  
\=\+{\rm{r-locn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-locn-step-clock}$\;\;$
{\rm{r-locn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-step-clock} $=$ {\tt{5}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-constant-okp} \\  
\=\+{\rm{r-push-constant-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{r\/}})\index{r-objectp} \\ 
$\vee$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pc}}) \\ 
$\vee$$\;\;\;\;$(\=\+({\rm{cadr}}\,({\it{ins\/}}) $\simeq\;${{\bf{nil}}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\-\index{find-labelp})\-)\- \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-constant-step} \\  
\=\+{\rm{r-push-constant-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+\=\+{\bf if }{\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pc}}$\;\;${\bf then }{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc} \\ 
{\bf elseif }{\rm{cadr}}\,({\it{ins\/}}) $\simeq\;${{\bf{nil}}}${}$ \\ 
{\bf then }{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc} \\ 
{\bf else }{\rm{cadr}}\,({\it{ins\/}})$\;${\bf  endif}\-, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-constant-step-clock}$\;\;$
{\rm{r-push-constant-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-local-okp} \\  
\=\+{\rm{r-push-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-local-step} \\  
\=\+{\rm{r-push-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-local-step-clock}$\;\;$
{\rm{r-push-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-step-clock} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-global-okp} \\  
\=\+{\rm{r-push-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{definiens}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{definiens}) \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-global-step} \\  
\=\+{\rm{r-push-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\-\index{fetch}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-global-step-clock}$\;\;$
{\rm{r-push-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-ctrl-stk-free-size-okp} \\  
\=\+{\rm{r-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp} \\ 
$=$$\;\;\;\;$({\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} $\wedge$ ({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-ctrl-stk-free-size-step} \\  
\=\+{\rm{r-push-ctrl-stk-free-size-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{fetch}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{full-ctrl-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{free-stk-size}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{free-stk-size})\index{tag}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-ctrl-stk-free-size-step-!clock}$\;\;$
{\rm{r-push-ctrl-stk-free-size-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step-!clock} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-temp-stk-free-size-okp} \\  
\=\+{\rm{r-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp} \\ 
$=$$\;\;\;\;$({\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} $\wedge$ ({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-temp-stk-free-size-step} \\  
\=\+{\rm{r-push-temp-stk-free-size-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{fetch}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{full-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size})\index{tag}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-temp-stk-free-size-step-!clock}$\;\;$
{\rm{r-push-temp-stk-free-size-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-step-!clock} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-temp-stk-index-okp} \\  
\=\+{\rm{r-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $<$ {\rm{stk-length}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{stk-length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-temp-stk-index-step} \\  
\=\+{\rm{r-push-temp-stk-index-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, $1\;+$ {\rm{cadr}}\,({\it{ins\/}}))\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+({\rm{stk-length}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{stk-length} $-\;1$) \\ 
$-$$\;\;\;\;${\rm{cadr}}\,({\it{ins\/}})\-)\-\index{tag}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-push-temp-stk-index-step-cloc!k}$\;\;$
{\rm{r-push-temp-stk-index-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-step-cloc!k} $=$ {\tt{7}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-if-temp-stk-full-okp} \\  
\=\+{\rm{r-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\simeq {\tt{0}}$ \\ 
{\bf then }{\rm{find-labelp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\index{find-labelp} \\ 
{\bf else }{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-if-temp-stk-full-step} \\  
\=\+{\rm{r-jump-if-temp-stk-full-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+\=\+{\bf if }{\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\simeq {\tt{0}}$ \\ 
{\bf then }{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc} \\ 
{\bf else }{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}$\;${\bf  endif}\-, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{bool}}\,({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\simeq {\tt{0}}$)\index{bool}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-if-temp-stk-full-step-cl!ock}$\;\;$
{\rm{r-jump-if-temp-stk-full-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step-cl!ock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-if-temp-stk-empty-okp} \\  
\=\+{\rm{r-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp} \\ 
{\bf then }{\rm{find-labelp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\index{find-labelp} \\ 
{\bf else }{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-if-temp-stk-empty-step} \\  
\=\+{\rm{r-jump-if-temp-stk-empty-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+\=\+{\bf if }{\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp} \\ 
{\bf then }{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc} \\ 
{\bf else }{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}$\;${\bf  endif}\-, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{bool}}\,({\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp})\index{bool}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-if-temp-stk-empty-step-c!lock}$\;\;$
{\rm{r-jump-if-temp-stk-empty-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step-c!lock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-okp} \\  
\=\+{\rm{r-pop-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-step} \\  
\=\+{\rm{r-pop-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-step-clock}$\;\;$
{\rm{r-pop-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop*-okp} \\  
\=\+{\rm{r-pop*-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{pop-stk-n}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk-n}, {\it{r\/}})\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop*-step} \\  
\=\+{\rm{r-pop*-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk-n}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk-n}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop*-step-clock}$\;\;$
{\rm{r-pop*-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-popn-okp} \\  
\=\+{\rm{r-popn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{pop-stk-n}}\,(\=\+$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\-\index{pop-stk-n}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-popn-step} \\  
\=\+{\rm{r-popn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk-n}}\,(\=\+$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\-\index{pop-stk-n}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-popn-step-clock}$\;\;$
{\rm{r-popn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-local-okp} \\  
\=\+{\rm{r-pop-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-local-step} \\  
\=\+{\rm{r-pop-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-local-step-clock}$\;\;$
{\rm{r-pop-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-step-clock} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-global-okp} \\  
\=\+{\rm{r-pop-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{definiens}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{definiens}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-usr-data-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-global-step} \\  
\=\+{\rm{r-pop-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\-\index{deposit}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-global-step-clock}$\;\;$
{\rm{r-pop-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-locn-okp} \\  
\=\+{\rm{r-pop-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-locn-step} \\  
\=\+{\rm{r-pop-locn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-locn-step-clock}$\;\;$
{\rm{r-pop-locn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-step-clock} $=$ {\tt{5}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-call-okp} \\  
\=\+{\rm{r-pop-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-okp} \\ 
$=$$\;\;\;\;$(\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{subr}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-call-okp}}\,(\=\+{\rm{list}}\,(\=\+{\tt{'}}{\tt{call}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-, \\ 
{\rm{r-state}}\,(\=\+{\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state})\-\index{r-call-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-call-step} \\  
\=\+{\rm{r-pop-call-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-step} \\ 
$=$$\;\;\;\;${\rm{r-call-step}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}), \\ 
{\rm{r-state}}\,(\=\+{\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state})\-\index{r-call-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pop-call-step-clock} \\  
\=\+{\rm{r-pop-call-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-step-clock} \\ 
$=$$\;\;\;\;$(\=\+{\tt{3}} \\ 
$+$$\;\;\;\;${\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{definition}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{formal-vars})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-fetch-temp-stk-okp} \\  
\=\+{\rm{r-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{stk-length}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{stk-length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-fetch-temp-stk-step} \\  
\=\+{\rm{r-fetch-temp-stk-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{sub-addr}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{definiens}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{definiens})\index{length} $-\;1$)\-)\-\index{tag}, \\ 
$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{sub-addr}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, $1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\index{tag}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{sub-addr}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{definiens}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{definiens})\index{length} $-\;1$)\-)\-\index{tag}, \\ 
$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{sub-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-fetch-temp-stk-step-clock}$\;\;$
{\rm{r-fetch-temp-stk-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-step-clock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-deposit-temp-stk-okp} \\  
\=\+{\rm{r-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{stk-length}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{stk-length})\- \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-usr-data-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-deposit-temp-stk-step} \\  
\=\+{\rm{r-deposit-temp-stk-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{sub-addr}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{definiens}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{definiens})\index{length} $-\;1$)\-)\-\index{tag}, \\ 
$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{sub-addr}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, $1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\index{tag}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{sub-addr}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{definiens}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{definiens})\index{length} $-\;1$)\-)\-\index{tag}, \\ 
$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{sub-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-deposit-temp-stk-step-clock}$\;\;$
{\rm{r-deposit-temp-stk-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-step-clock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-okp} \\  
\=\+{\rm{r-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-okp} \\ 
$=$$\;\;\;\;${\rm{find-labelp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\index{find-labelp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-step} \\  
\=\+{\rm{r-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-step-clock}$\;\;$
{\rm{r-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-case-okp} \\  
\=\+{\rm{r-jump-case-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-okp} \\ 
$=$$\;\;\;\;$(\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\it{ins\/}}))\index{length})\- \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{cdr}}\,({\it{ins\/}}))\-\index{get}, \\ 
{\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-case-step} \\  
\=\+{\rm{r-jump-case-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{pc}}\,(\=\+{\rm{get}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}, {\rm{cdr}}\,({\it{ins\/}}))\index{get}, \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\index{tag}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-jump-case-step-clock}$\;\;$
{\rm{r-jump-case-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-step-clock} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pushj-okp} \\  
\=\+{\rm{r-pushj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\index{find-labelp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pushj-step} \\  
\=\+{\rm{r-pushj-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,({\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, {\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-pushj-step-clock}$\;\;$
{\rm{r-pushj-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-popj-okp} \\  
\=\+{\rm{r-popj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-popj-step} \\  
\=\+{\rm{r-popj-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-popj-step-clock}$\;\;$
{\rm{r-popj-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-set-local-okp} \\  
\=\+{\rm{r-set-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-set-local-step} \\  
\=\+{\rm{r-set-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{offset-from-csp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\-\index{offset-from-csp})\-\index{add-addr}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-set-local-step-clock}$\;\;$
{\rm{r-set-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-step-clock} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-set-global-okp} \\  
\=\+{\rm{r-set-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{definiens}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{definiens}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-usr-data-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-set-global-step} \\  
\=\+{\rm{r-set-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\-\index{deposit}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-set-global-step-clock}$\;\;$
{\rm{r-set-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-and-jump-okp} \\  
\=\+{\rm{r-test-and-jump-okp}}\,({\it{ins\/}}, {\it{type\/}}, {\it{test\/}}, {\it{r\/}})\index{r-test-and-jump-okp} \\ 
$=$$\;\;\;\;$(\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\it{type\/}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$\=\+{\bf if }{\it{test\/}} \\ 
{\bf then }{\rm{find-labelp}}\,(\=\+{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\-\index{find-labelp} \\ 
{\bf else }{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-and-jump-step} \\  
\=\+{\rm{r-test-and-jump-step}}\,({\it{test\/}}, {\it{lab\/}}, {\it{x\/}}, {\it{y\/}}, {\it{c\/}}, {\it{v\/}}, {\it{n\/}}, {\it{z\/}}, {\it{r\/}})\index{r-test-and-jump-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{test\/}} \\ 
{\bf then }{\rm{r-state}}\,(\=\+{\rm{pc}}\,({\it{lab\/}}, {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state} \\ 
{\bf else }{\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c\/}}, \\ 
{\it{v\/}}, \\ 
{\it{n\/}}, \\ 
{\it{z\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-nat-and-jump-okp} \\  
\=\+{\rm{r-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{nat}}, \\ 
{\rm{p-test-natp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-natp}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-nat-and-jump-step} \\  
\=\+{\rm{r-test-nat-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-step}}\,(\=\+{\rm{p-test-natp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-natp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$=$$\;\;\;\;${\tt{0}}\-)\index{bool}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-nat-and-jump-step-clock}$\;\;$
{\rm{r-test-nat-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-step-clock} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-int-and-jump-okp} \\  
\=\+{\rm{r-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{int}}, \\ 
{\rm{p-test-intp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-intp}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-int-and-jump-step} \\  
\=\+{\rm{r-test-int-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-step}}\,(\=\+{\rm{p-test-intp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-intp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
\=\+{\bf if }{\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pos}}$\;\;${\bf then }{\rm{add1-addr}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{add1-addr} \\ 
{\bf else }{\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}$\;${\bf  endif}\-, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{bool}}\,({\rm{negativep}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}))\index{bool}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$=$$\;\;\;\;${\tt{0}}\-)\index{bool}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-int-and-jump-step-clock} \\  
\=\+{\rm{r-test-int-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-step-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\rm{cdr}}\,({\it{ins\/}})): \\ 
{\bf case = }{\it{zero\/}} \\ 
{\bf then }{\tt{3}} \\ 
{\bf case = }{\it{not-zero\/}} \\ 
{\bf $\;\;$then }{\tt{3}} \\ 
{\bf case = }{\it{neg\/}} \\ 
{\bf $\;\;$then }{\tt{3}} \\ 
{\bf case = }{\it{not-neg\/}} \\ 
{\bf $\;\;$then }{\tt{3}} \\ 
{\bf case = }{\it{pos\/}} \\ 
{\bf $\;\;$then }{\tt{2}} $+$ \=\+{\bf if }{\rm{negativep}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}) \\ 
{\bf then }{\tt{1}} \\ 
{\bf elseif }{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} $\simeq {\tt{0}}$ \\ 
{\bf then }{\tt{2}} \\ 
{\bf else }{\tt{3}}$\;${\bf  endif}\- \\ 
{\bf otherwise }\=\+{\bf if }{\rm{negativep}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}) \\ 
{\bf then }{\tt{3}} \\ 
{\bf else }{\tt{4}}$\;${\bf  endif}\-$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-bool-and-jump-okp} \\  
\=\+{\rm{r-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{bool}}, \\ 
{\rm{p-test-boolp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-boolp}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-bool-and-jump-step} \\  
\=\+{\rm{r-test-bool-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-step}}\,(\=\+{\rm{p-test-boolp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-boolp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{not-bool}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{not-bool})\-\index{tag}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-bool-and-jump-step-clock}$\;\;$
{\rm{r-test-bool-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-step-clock} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-bitv-and-jump-okp} \\  
\=\+{\rm{r-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{bitv}}, \\ 
{\rm{p-test-bitvp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-bitvp}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-bitv-and-jump-step} \\  
\=\+{\rm{r-test-bitv-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{r-test-and-jump-step}}\,(\=\+{\rm{p-test-bitvp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{p-test-bitvp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{pc}}\,({\rm{caddr}}\,({\it{ins\/}}), {\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{pc}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{bool}}\,({\rm{all-zero-bitvp}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{all-zero-bitvp})\index{bool}, \\ 
{\it{r\/}})\-\index{r-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-test-bitv-and-jump-step-clock}$\;\;$
{\rm{r-test-bitv-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-step-clock} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-no-op-okp}$\;\;$
{\rm{r-no-op-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-okp} $=$ {\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-no-op-step} \\  
\=\+{\rm{r-no-op-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-no-op-step-clock}$\;\;$
{\rm{r-no-op-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-addr-okp} \\  
\=\+{\rm{r-add-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-addr-step} \\  
\=\+{\rm{r-add-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{add-addr}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-addr-step-clock}$\;\;$
{\rm{r-add-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-addr-okp} \\  
\=\+{\rm{r-sub-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{offset} \\ 
$\not<$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-addr-step} \\  
\=\+{\rm{r-sub-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{sub-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{sub-addr}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-addr-step-clock}$\;\;$
{\rm{r-sub-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-eq-okp} \\  
\=\+{\rm{r-eq-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\rm{type}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{type})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-eq-step} \\  
\=\+{\rm{r-eq-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$=$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}\-)\index{bool}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$=$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-)\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-eq-step-clock}$\;\;$
{\rm{r-eq-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-step-clock} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-addr-okp} \\  
\=\+{\rm{r-lt-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{area-name}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{area-name} \\ 
$=$$\;\;\;\;${\rm{area-name}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{area-name})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-addr-step} \\  
\=\+{\rm{r-lt-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{bool}}\,(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;${\rm{offset}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{offset}\-)\index{bool}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{offset}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;${\rm{offset}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{offset}\-)\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-addr-step-clock}$\;\;$
{\rm{r-lt-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-step-clock} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-fetch-okp} \\  
\=\+{\rm{r-fetch-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-fetch-step} \\  
\=\+{\rm{r-fetch-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\-\index{fetch}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-fetch-step-clock}$\;\;$
{\rm{r-fetch-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-deposit-okp} \\  
\=\+{\rm{r-deposit-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-usr-data-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-deposit-step} \\  
\=\+{\rm{r-deposit-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\-\index{deposit}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-deposit-step-clock}$\;\;$
{\rm{r-deposit-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-int-okp} \\  
\=\+{\rm{r-add-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-int-step} \\  
\=\+{\rm{r-add-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{iplus})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-int-step-clock}$\;\;$
{\rm{r-add-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-int-with-carry-okp} \\  
\=\+{\rm{r-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-int-with-carry-step} \\  
\=\+{\rm{r-add-int-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-int-with-carry-step-clock}$\;\;$
{\rm{r-add-int-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-step-clock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add1-int-okp} \\  
\=\+{\rm{r-add1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\tt{1}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add1-int-step} \\  
\=\+{\rm{r-add1-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{iplus}}\,(\=\+{\tt{1}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{iplus})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add1-int-step-clock}$\;\;$
{\rm{r-add1-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-int-okp} \\  
\=\+{\rm{r-sub-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-int-step} \\  
\=\+{\rm{r-sub-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{idifference})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-int-step-clock}$\;\;$
{\rm{r-sub-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-int-with-carry-okp} \\  
\=\+{\rm{r-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-int-with-carry-step} \\  
\=\+{\rm{r-sub-int-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-int-with-carry-step-clock}$\;\;$
{\rm{r-sub-int-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-step-clock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub1-int-okp} \\  
\=\+{\rm{r-sub1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\tt{1}})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub1-int-step} \\  
\=\+{\rm{r-sub1-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\tt{1}})\-\index{idifference})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub1-int-step-clock}$\;\;$
{\rm{r-sub1-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-neg-int-okp} \\  
\=\+{\rm{r-neg-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{inegate}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{inegate}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-neg-int-step} \\  
\=\+{\rm{r-neg-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{inegate}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{inegate})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-neg-int-step-clock}$\;\;$
{\rm{r-neg-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-int-okp} \\  
\=\+{\rm{r-lt-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-int-step} \\  
\=\+{\rm{r-lt-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{bool}}\,({\rm{negativep}}\,({\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-integer}))\index{bool}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{bool}}\,({\rm{negativep}}\,({\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{idifference}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-integer}))\index{bool}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,({\rm{ilessp}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{ilessp})\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-int-step-clock}$\;\;$
{\rm{r-lt-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-step-clock} $=$ {\tt{7}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-int-to-nat-okp} \\  
\=\+{\rm{r-int-to-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-int-to-nat-step} \\  
\=\+{\rm{r-int-to-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-int-to-nat-step-clock}$\;\;$
{\rm{r-int-to-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-nat-okp} \\  
\=\+{\rm{r-add-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-nat-step} \\  
\=\+{\rm{r-add-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}\-)\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-nat-step-clock}$\;\;$
{\rm{r-add-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-nat-with-carry-okp} \\  
\=\+{\rm{r-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-nat-with-carry-step} \\  
\=\+{\rm{r-add-nat-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add-nat-with-carry-step-clock}$\;\;$
{\rm{r-add-nat-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-step-clock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add1-nat-okp} \\  
\=\+{\rm{r-add1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add1-nat-step} \\  
\=\+{\rm{r-add1-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
$1\;+$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-add1-nat-step-clock}$\;\;$
{\rm{r-add1-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub1-nat-okp} \\  
\=\+{\rm{r-sub1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub1-nat-step} \\  
\=\+{\rm{r-sub1-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} $-\;1$)\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub1-nat-step-clock}$\;\;$
{\rm{r-sub1-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-nat-okp} \\  
\=\+{\rm{r-sub-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$\not<$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-nat-step} \\  
\=\+{\rm{r-sub-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}\-)\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-nat-step-clock}$\;\;$
{\rm{r-sub-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-nat-with-carry-okp} \\  
\=\+{\rm{r-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-nat-with-carry-step} \\  
\=\+{\rm{r-sub-nat-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\bf if }\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\-\- \\ 
{\bf then }\=\+{\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\- \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\- \\ 
{\bf else }\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$-$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\-\-$\;${\bf  endif}\-)\-\index{tag}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\-\-)\index{bool}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\bf if }\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\-\- \\ 
{\bf then }\=\+{\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\- \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\- \\ 
{\bf else }\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$-$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\-\-$\;${\bf  endif}\-)\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{bool-to-nat})\-\-)\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-sub-nat-with-carry-step-clock}$\;\;$
{\rm{r-sub-nat-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-step-clock} $=$ {\tt{6}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-nat-okp} \\  
\=\+{\rm{r-lt-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-nat-step} \\  
\=\+{\rm{r-lt-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}\-)\index{bool}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$<$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}\-)\index{bool}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lt-nat-step-clock}$\;\;$
{\rm{r-lt-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-step-clock} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-mult2-nat-okp} \\  
\=\+{\rm{r-mult2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-mult2-nat-step} \\  
\=\+{\rm{r-mult2-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-mult2-nat-step-clock}$\;\;$
{\rm{r-mult2-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-mult2-nat-with-carry-out-okp} \\  
\=\+{\rm{r-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-mult2-nat-with-carry-out-step} \\  
\=\+{\rm{r-mult2-nat-with-carry-out-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-mult2-nat-with-carry-out-step!-clock}$\;\;$
{\rm{r-mult2-nat-with-carry-out-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step!-clock} $=$ {\tt{5}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-div2-nat-okp} \\  
\=\+{\rm{r-div2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-div2-nat-step} \\  
\=\+{\rm{r-div2-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, \=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
$\div$$\;\;\;\;${\tt{2}}\-)\index{tag}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{bool}}\,(\=\+({\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} ${}${\bf{mod}}${}$ {\tt{2}}) \\ 
$=$$\;\;\;\;${\tt{1}}\-)\index{bool}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag} \\ 
${}${\bf{mod}}${}$$\;\;\;\;${\tt{2}}\-)\-\index{tag}, \\ 
{\rm{push-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{push-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag} \\ 
$\div$$\;\;\;\;${\tt{2}}\-)\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-div2-nat-step-clock}$\;\;$
{\rm{r-div2-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-step-clock} $=$ {\tt{5}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-or-bitv-okp} \\  
\=\+{\rm{r-or-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-or-bitv-step} \\  
\=\+{\rm{r-or-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{or-bitv}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{or-bitv})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-or-bitv-step-clock}$\;\;$
{\rm{r-or-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-and-bitv-okp} \\  
\=\+{\rm{r-and-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-and-bitv-step} \\  
\=\+{\rm{r-and-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{and-bitv}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{and-bitv})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-and-bitv-step-clock}$\;\;$
{\rm{r-and-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-not-bitv-okp} \\  
\=\+{\rm{r-not-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-not-bitv-step} \\  
\=\+{\rm{r-not-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{not-bitv}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{not-bitv})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-not-bitv-step-clock}$\;\;$
{\rm{r-not-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-xor-bitv-okp} \\  
\=\+{\rm{r-xor-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-xor-bitv-step} \\  
\=\+{\rm{r-xor-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{xor-bitv}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{xor-bitv})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-xor-bitv-step-clock}$\;\;$
{\rm{r-xor-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-rsh-bitv-okp} \\  
\=\+{\rm{r-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-rsh-bitv-step} \\  
\=\+{\rm{r-rsh-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{rsh-bitv}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{rsh-bitv})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-rsh-bitv-step-clock}$\;\;$
{\rm{r-rsh-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lsh-bitv-okp} \\  
\=\+{\rm{r-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lsh-bitv-step} \\  
\=\+{\rm{r-lsh-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{lsh-bitv}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{lsh-bitv})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-lsh-bitv-step-clock}$\;\;$
{\rm{r-lsh-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-or-bool-okp} \\  
\=\+{\rm{r-or-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-or-bool-step} \\  
\=\+{\rm{r-or-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{or-bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{or-bool})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-or-bool-step-clock}$\;\;$
{\rm{r-or-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-and-bool-okp} \\  
\=\+{\rm{r-and-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-and-bool-step} \\  
\=\+{\rm{r-and-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{and-bool}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\-\index{and-bool})\-\index{tag}, \\ 
{\rm{pop-stk}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{pop-stk}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-and-bool-step-clock}$\;\;$
{\rm{r-and-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-step-clock} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-not-bool-okp} \\  
\=\+{\rm{r-not-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch}, \\ 
{\it{r\/}})\-\index{r-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-not-bool-step} \\  
\=\+{\rm{r-not-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-step} \\ 
$=$$\;\;\;\;${\rm{r-state}}\,(\=\+{\rm{add1-r-pc}}\,({\it{r\/}})\index{add1-r-pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{not-bool}}\,({\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch})\index{untag})\index{not-bool})\-\index{tag}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{deposit}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{r-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-not-bool-step-clock}$\;\;$
{\rm{r-not-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-step-clock} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-okp} \\  
\=\+{\rm{r-ins-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{r-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-okp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{r-ret-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-okp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-okp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-constant-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-okp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-okp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-okp} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-okp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop*-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-okp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{r-popn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-okp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-okp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-okp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-okp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-okp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-okp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-okp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-okp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-case-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-okp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{r-pushj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-okp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{r-popj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-okp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-okp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-okp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-okp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-okp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-okp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-okp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{r-no-op-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-okp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-okp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-okp} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{r-eq-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-okp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-okp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-okp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-okp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-okp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-okp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-okp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-okp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-okp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-okp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-neg-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-okp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-okp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-int-to-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-okp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-okp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-okp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-okp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-okp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-okp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-okp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-okp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-okp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-div2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-okp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-okp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-okp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-okp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-xor-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-okp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-okp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-okp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-okp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-okp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-okp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-step} \\  
\=\+{\rm{r-ins-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{r-call-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-step} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{r-ret-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-step} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-locn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-step} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-constant-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-step} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-step} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-step} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-ctrl-stk-free-size-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-free-size-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-index-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-full-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-empty-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-step} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop*-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-step} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{r-popn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-step} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-step} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-step} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-locn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-step} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-call-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-step} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-temp-stk-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-step} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-temp-stk-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-step} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-step} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-case-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-step} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{r-pushj-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-step} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{r-popj-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-step} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-step} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-step} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-nat-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-step} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-int-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-step} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bool-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-step} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bitv-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-step} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{r-no-op-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-step} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-step} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-step} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{r-eq-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-step} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-step} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-step} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-step} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-step} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-step} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-step} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-step} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-step} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-step} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-neg-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-step} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-step} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-int-to-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-step} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-step} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-step} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-step} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-step} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-step} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-step} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-step} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-step} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-with-carry-out-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-div2-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-step} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-step} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-step} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-step} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-xor-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-step} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-rsh-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-step} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-lsh-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-step} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-step} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-step} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-step} \\ 
{\bf otherwise }{\rm{r-halt}}\,({\it{r\/}}, {\tt{'}}{\tt{run}})\index{r-halt}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-step1} \\  
\=\+{\rm{r-step1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-step1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{r-ins-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp}$\;\;${\bf then }{\rm{r-ins-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step} \\ 
{\bf else }{\rm{r-halt}}\,({\it{r\/}}, {\rm{x-y-error-msg}}\,({\tt{'}}{\tt{r}}, {\rm{car}}\,({\it{ins\/}}))\index{x-y-error-msg})\index{r-halt}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-step} \\  
\=\+{\rm{r-step}}\,({\it{r\/}})\index{r-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\rm{r-step1}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-step1} \\ 
{\bf else }{\it{r\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r} \\  
\=\+{\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{r\/}} \\ 
{\bf else }{\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-step-clock} \\  
\=\+{\rm{r-ins-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{r-call-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-step-clock} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{r-ret-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-step-clock} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-locn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-step-clock} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-constant-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-step-clock} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-step-clock} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-step-clock} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-ctrl-stk-free-size-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step-!clock} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-free-size-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-step-!clock} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-index-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-step-cloc!k} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-full-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step-cl!ock} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-empty-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step-c!lock} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-step-clock} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop*-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-step-clock} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{r-popn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-step-clock} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-step-clock} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-step-clock} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-locn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-step-clock} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-call-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-step-clock} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-temp-stk-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-step-clock} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-temp-stk-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-step-clock} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-step-clock} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-case-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-step-clock} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{r-pushj-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-step-clock} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{r-popj-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-step-clock} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-step-clock} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-step-clock} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-nat-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-step-clock} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-int-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-step-clock} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bool-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-step-clock} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bitv-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-step-clock} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{r-no-op-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-step-clock} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-step-clock} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-step-clock} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{r-eq-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-step-clock} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-step-clock} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-step-clock} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-step-clock} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-step-clock} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-step-clock} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-step-clock} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-step-clock} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-step-clock} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-step-clock} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-neg-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-step-clock} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-step-clock} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-int-to-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-step-clock} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-step-clock} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-step-clock} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-step-clock} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-step-clock} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-step-clock} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-step-clock} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-step-clock} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-step-clock} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-with-carry-out-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step!-clock} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-div2-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-step-clock} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-step-clock} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-step-clock} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-step-clock} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-xor-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-step-clock} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-rsh-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-step-clock} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-lsh-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-step-clock} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-step-clock} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-step-clock} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-step-clock} \\ 
{\bf otherwise }{\tt{0}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-step1-clock} \\  
\=\+{\rm{r-step1-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-step1-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{r-ins-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp}$\;\;${\bf then }{\rm{r-ins-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-step-clock} \\  
\=\+{\rm{r-step-clock}}\,({\it{r\/}})\index{r-step-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\rm{r-step1-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-step1-clock} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{clock} \\  
\=\+{\rm{clock}}\,({\it{r\/}}, {\it{n\/}})\index{clock} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\rm{r-step-clock}}\,({\it{r\/}})\index{r-step-clock} $+$ {\rm{clock}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{clock}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Book: r-i.events.  In this section we prove that the r machine
; is correctly implemented on the i machine.

\end{verbatim}
\noindent{\sc Event}:   Disable unlabel.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-usr-data-typep.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable i-usr-data-typep.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  r-instructionp-observation \\ \index{r-instructionp-observation}
{\rm{r-instructionp}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel})\index{r-instructionp} $\rightarrow$ ({\rm{car}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}) $\not=$ {\tt{'}}{\tt{dcl}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-push-constant-observation \\ \index{r-push-constant-observation}
\=\+(\=\+{\rm{r-instructionp}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel})\index{r-instructionp} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}) $=$ {\tt{'}}{\tt{push-constant}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{caadr}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}) $\not=$ {\tt{'}}{\tt{dl}})\-
\end{tabbing}

\begin{verbatim}; This section is stolen from im.events.

\end{verbatim}
\noindent{\sc Event}:   Enable i-objectp-type-simplifier.

\addvspace{18pt}

\noindent{\sc Event}:   Disable i-objectp-type.

\addvspace{18pt}

\begin{verbatim}; I will disable type, tag and untag for sanity's sake,
; but prove the obvious relationships first.

\end{verbatim}
\noindent{\sc Event}:   Enable type-tag.

\addvspace{18pt}


\noindent{\sc Event}:   Enable untag-tag.

\addvspace{18pt}


\noindent{\sc Event}:   Disable type.

\addvspace{18pt}

\noindent{\sc Event}:   Disable tag.

\addvspace{18pt}

\noindent{\sc Event}:   Disable untag.

\addvspace{18pt}

\begin{verbatim}; And I will do a similar thing for the adp handlers

\end{verbatim}
\noindent{\sc Event}:   Enable adp-name-cons.

\addvspace{18pt}

\noindent{\sc Event}:   Enable adp-offset-cons.

\addvspace{18pt}

\noindent{\sc Event}:   Enable adp-name-add-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Enable adp-offset-add-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Enable adp-name-sub-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Enable adp-offset-sub-adp.

\addvspace{18pt}


\noindent{\sc Event}:   Disable sub-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable add-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable adp-name.

\addvspace{18pt}

\noindent{\sc Event}:   Disable adp-offset.

\addvspace{18pt}

\begin{verbatim}; The function BOOLEANP is a killer because it
; causes everything to split.  I will disable it
; and prove what I need about it as necessary.

\end{verbatim}
\noindent{\sc Event}:   Disable booleanp.

\addvspace{18pt}


\noindent{\sc Event}:   Disable bool-to-logical.

\addvspace{18pt}

\begin{verbatim}; Some accellerators for psw handling...

\end{verbatim}
\noindent{\sc Event}:   Enable not-equal-x-y-error-msg-run.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-equal-x-y-error-msg-halt \\ \index{not-equal-x-y-error-msg-halt}
{\rm{x-y-error-msg}}\,({\it{x\/}}, {\it{y\/}})\index{x-y-error-msg} $\not=$ {\tt{'}}{\tt{halt}}
\end{tabbing}


\noindent{\sc Event}:   Disable x-y-error-msg.

\addvspace{18pt}


\noindent{\sc Event}:   Enable i-psw-i-halt.

\addvspace{18pt}


\noindent{\sc Event}:   Disable i-halt.

\addvspace{18pt}

\begin{verbatim}; Now I repeat the i-objectp-type exercise for r-objectp-type:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-objectp-type-simplifier \\ \index{r-objectp-type-simplifier}
\=\+(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{small-naturalp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{int}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{small-integerp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{bit-vectorp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{adpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{pcpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{pcpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{subr}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{subr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{sys-addr}}, {\it{x\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-objectp-type.

\addvspace{18pt}

\begin{verbatim}; The notion of r-usr-data-objectp is important in the definition
; of proper r states.  It is defined as a conjunction of
; r-objectp and r-usr-data-typep.  We do not allow either of those
; to expand in our proofs, except under careful control because they
; case case splits.

\end{verbatim}
\noindent{\sc Event}:   Disable r-objectp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-usr-data-typep.

\addvspace{18pt}


\begin{verbatim}; I disable icode1 and will enable it when it is needed.

\end{verbatim}
\noindent{\sc Event}:   Disable icode1.

\addvspace{18pt}


\begin{verbatim}; We now prove a lemma that is basically equivalent to

; (implies (proper-r-statep r load-addr) body-of-proper-r-statep)

; except that the body has been simplified so that it is
; in normal form.  The point is to permit me
; to keep proper-r-statep disabled but to allow each of
; its conjuncts to be proved by backchaining into the
; (proper-r-statep r load-addr) hypothesis that governs every main
; theorem.  I have also tossed in few other facts that
; follow from those conjuncts.

; The following embarrassing rule is needed to cause the
; rewriter to replace the (assoc & &) by the nearly
; explicit albeit larger list expression.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equality-stuffer \\ \index{equality-stuffer}
\=\+({\rm{assoc}}\,({\it{name\/}}, {\it{alist\/}}) $=$ {\rm{list}}\,({\it{name\/}}, {\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{alist\/}})) $=$ {\rm{list}}\,({\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-assoc-implies-definedp \\ \index{listp-assoc-implies-definedp}
{\rm{listp}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{alist\/}})) $\rightarrow$ {\rm{definedp}}\,({\it{name\/}}, {\it{alist\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-properties \\ \index{proper-r-statep-properties}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-statep}}\,({\it{r\/}})\index{r-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}))) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag})\index{adp-name} $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}))) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{full-ctrl-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}) \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{full-ctrl-stk-addr}} \\ 
{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{cstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}{\tt{)}}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{full-temp-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}) \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{full-temp-stk-addr}} \\ 
{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}{\tt{)}}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{empty-temp-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}) \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-))\index{length} $-\;1$)\-)\-\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\tt{'}}{\tt{(}}{\tt{full-ctrl-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\tt{'}}{\tt{(}}{\tt{full-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\tt{'}}{\tt{(}}{\tt{empty-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{full-ctrl-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{cstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{full-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{empty-temp-stk-addr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-))\index{length} $-\;1$)\-)\-\index{tag})\- \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg})\index{untag})\index{booleanp} \\ 
$\wedge$$\;\;\;\;${\rm{r-prog-segmentp}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{r\/}})\index{proper-r-usr-data-segmentp} \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable listp-assoc-implies-definedp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable equality-stuffer.

\addvspace{18pt}

\begin{verbatim}; Having proved that, we will

\end{verbatim}
\noindent{\sc Event}:   Disable proper-r-statep.

\addvspace{18pt}

\begin{verbatim}; I now begin the study of find-label and pc mapping

\end{verbatim}\begin{tabbing}{\sc Theorem}:  find-labelp-is-find-label \\ \index{find-labelp-is-find-label}
{\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp} $=$ ({\rm{find-label}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-label} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-append \\ \index{find-label-append}
\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{find-label} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{find-labelp}}\,({\it{lab\/}}, {\it{a\/}})\index{find-labelp}$\;\;${\bf then }{\rm{find-label}}\,({\it{lab\/}}, {\it{a\/}})\index{find-label} \\ 
{\bf else }{\rm{length}}\,({\it{a\/}})\index{length} $+$ {\rm{find-label}}\,({\it{lab\/}}, {\it{b\/}})\index{find-label}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable difference-x-x.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-append.

\addvspace{18pt}

\begin{verbatim}; The following odd rule is needed because we sometimes treat
; a tagged object, e.g., the constant following a move_x_*,
; as an instruction and ask if it is labelled.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  car-tag \\ \index{car-tag}
{\rm{car}}\,({\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag}) $=$ {\it{type\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-jump\_*-lst \\ \index{find-label-jump\_*-lst}
{\rm{find-label}}\,({\it{lab\/}}, {\rm{jump\_*-lst}}\,({\it{lst\/}}, {\it{program\/}})\index{jump\_*-lst})\index{find-label} $=$ {\rm{length}}\,({\rm{jump\_*-lst}}\,({\it{lst\/}}, {\it{program\/}})\index{jump\_*-lst})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-if \\ \index{find-label-if}
\=\+{\rm{find-label}}\,(\=\+{\it{lab\/}}, \\ 
\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-)\-\index{find-label} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{find-label}}\,({\it{lab\/}}, {\it{b\/}})\index{find-label} \\ 
{\bf else }{\rm{find-label}}\,({\it{lab\/}}, {\it{c\/}})\index{find-label}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-if\{jsm\} \\ \index{length-if\{jsm\}}
\=\+{\rm{length}}\,(\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-)\index{length} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{length}}\,({\it{b\/}})\index{length} \\ 
{\bf else }{\rm{length}}\,({\it{c\/}})\index{length}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; The icode1 fn is too big for the theorem prover's rewriter to
; explore on the standard akcl stack.   So I cut the function
; into two parts:

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{icode12} \\  
\=\+{\rm{icode12}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode12} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{icode-eq}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-eq} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-addr} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{icode-fetch}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-fetch} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{icode-deposit}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-deposit} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-int} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-int-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-int-with-carry} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add1-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add1-int} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-int} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-int-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-int-with-carry} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub1-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub1-int} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-neg-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-neg-int} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-int}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-int} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-int-to-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-int-to-nat} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-nat} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-nat-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-nat-with-carry} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add1-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add1-nat} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-nat} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-nat-with-carry}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-nat-with-carry} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub1-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub1-nat} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-nat} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-mult2-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-mult2-nat} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{icode-mult2-nat-with-carry-out}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-mult2-nat-with-carry-out} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-div2-nat}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-div2-nat} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-or-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-or-bitv} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-and-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-and-bitv} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-not-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-not-bitv} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-xor-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-xor-bitv} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-rsh-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-rsh-bitv} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lsh-bitv}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lsh-bitv} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-or-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-or-bool} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-and-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-and-bool} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-not-bool}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-not-bool} \\ 
{\bf otherwise }{\tt{'}}{\tt{(}}{\tt{(}}{\tt{error}}{\tt{)}}{\tt{)}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{icode11} \\  
\=\+{\rm{icode11}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode11} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{icode-call}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-call} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{icode-ret}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-ret} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-locn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-locn} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-constant}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-constant} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-local} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-global} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-ctrl-stk-free-size}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-ctrl-stk-free-size} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-temp-stk-free-size}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-temp-stk-free-size} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-temp-stk-index}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-temp-stk-index} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-if-temp-stk-full}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-if-temp-stk-full} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-if-temp-stk-empty}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-if-temp-stk-empty} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop*}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop*} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-popn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-popn} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-local} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-global} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-locn}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-locn} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-call}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-call} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{icode-fetch-temp-stk}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-fetch-temp-stk} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{icode-deposit-temp-stk}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-deposit-temp-stk} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-case}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-case} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pushj}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pushj} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{icode-popj}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-popj} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-set-local}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-set-local} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-set-global}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-set-global} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-nat-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-nat-and-jump} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-int-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-int-and-jump} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-bool-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-bool-and-jump} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-bitv-and-jump}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-bitv-and-jump} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{icode-no-op}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-no-op} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-addr} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-addr}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-addr} \\ 
{\bf otherwise }{\rm{icode12}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode12}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  icode1-is-icode11 \\ \index{icode1-is-icode11}
{\rm{icode1}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode1} $=$ {\rm{icode11}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode11}
\end{tabbing}


\noindent{\sc Event}:   Disable icode11.

\addvspace{18pt}

\noindent{\sc Event}:   Disable icode12.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  find-label-icode12 \\ \index{find-label-icode12}
\=\+{\rm{r-instructionp}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel})\index{r-instructionp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{icode12}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{program\/}})\index{icode12})\index{find-label} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{icode12}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{program\/}})\index{icode12})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-icode1 \\ \index{find-label-icode1}
\=\+{\rm{r-instructionp}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel})\index{r-instructionp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{icode1}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{program\/}})\index{icode1})\index{find-label} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{icode1}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{program\/}})\index{icode1})\index{length})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable icode1-is-icode11.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  find-label-failure-extends-to-cdr \\ \index{find-label-failure-extends-to-c!dr}
\=\+({\rm{find-label}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-label} $=$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{find-label}}\,({\it{lab\/}}, {\rm{cdr}}\,({\it{lst\/}}))\index{find-label} $=$ {\rm{length}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-icode \\ \index{find-label-icode}
\=\+{\rm{r-instructionp}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel})\index{r-instructionp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{icode}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode})\index{find-label} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lab\/}} $=$ {\rm{cons}}\,({\rm{name}}\,({\it{program\/}})\index{name}, {\it{pcn\/}})$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\rm{length}}\,({\rm{icode}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icode})\index{length}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-icompile-program-body-lemma1 \\ \index{find-label-icompile-program-bod!y-lemma1}
\=\+({\rm{listp}}\,({\it{lab\/}}) $\wedge$ ({\rm{car}}\,({\it{lab\/}}) $=$ {\rm{car}}\,({\it{program\/}})) $\wedge$ ({\rm{cdr}}\,({\it{lab\/}}) $=$ {\it{pcn\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{find-label}}\,({\it{lab\/}}, {\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body})\index{find-label} $=$ {\tt{0}})\-
\end{tabbing}


\noindent{\sc Event}:   Enable equal-length-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  listp-first-n \\ \index{listp-first-n}
{\rm{listp}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{x\/}})\index{first-n}) $=$ ({\it{n\/}} $\not\simeq {\tt{0}}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-first-n \\ \index{length-first-n}
{\rm{length}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{x\/}})\index{first-n})\index{length} $=$ {\rm{fix}}\,({\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  zerop-difference \\ \index{zerop-difference}
(({\it{x\/}} $-$ {\it{y\/}}) $=$ {\tt{0}}) $=$ ({\it{y\/}} $\not<$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-first-n \\ \index{car-first-n}
\=\+{\rm{car}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{x\/}})\index{first-n}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\rm{car}}\,({\it{x\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-icompile-program-body-lemma2 \\ \index{find-label-icompile-program-bod!y-lemma2}
\=\+({\it{pcn\/}} $<$ {\it{n\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{first-n}}\,(({\it{n\/}} $-\;1$) $-$ {\it{pcn\/}}, {\rm{cdr}}\,({\it{b\/}}))\index{first-n} $=$ {\rm{cdr}}\,({\rm{first-n}}\,({\it{n\/}} $-$ {\it{pcn\/}}, {\it{b\/}})\index{first-n}))\-
\end{tabbing}

\begin{verbatim}; The following hackish lemma is dangerous because it folds up
; difference.  I'll disable it as soon as it has done its bit.
; The term (cdr lab) could be replaced by n and the four hyps could
; be replaced by (lessp pcn n), but things are this way so it
; finds immediate use in the next proof.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  find-label-icompile-program-body-lemma3 \\ \index{find-label-icompile-program-bod!y-lemma3}
\=\+(\=\+{\rm{listp}}\,({\it{lab\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\it{lab\/}}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{pcn\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\it{lab\/}}) $\not<$ {\it{pcn\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{lab\/}} $\not=$ {\rm{cons}}\,({\rm{car}}\,({\it{lab\/}}), {\it{pcn\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{first-n}}\,(({\rm{cdr}}\,({\it{lab\/}}) $-\;1$) $-$ {\it{pcn\/}}, {\rm{cdr}}\,({\it{b\/}}))\index{first-n} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{first-n}}\,({\rm{cdr}}\,({\it{lab\/}}) $-$ {\it{pcn\/}}, {\it{b\/}})\index{first-n}))\-\-
\end{tabbing}

\begin{verbatim}; In the useful statement of the relationship below, lab is an pcpp,
; namely an untagged r-level pc.  But for the proof itself lab is
; a cons pair.  So we have to enable adp-name and adp-offset.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  find-label-icompile-program-body \\ \index{find-label-icompile-program-bod!y}
\=\+(\=\+{\rm{listp}}\,({\it{lab\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name} $=$ {\rm{name}}\,({\it{program\/}})\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{pcn\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset} $\not<$ {\it{pcn\/}}) \\ 
$\wedge$$\;\;\;\;$(({\it{pcn\/}} $+$ {\rm{length}}\,({\it{body\/}})\index{length}) $\not<$ {\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset}) \\ 
$\wedge$$\;\;\;\;${\rm{r-program-bodyp}}\,({\it{body\/}})\index{r-program-bodyp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body})\index{find-label} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,(\=\+{\rm{first-n}}\,(\=\+{\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset} $-$ {\it{pcn\/}}, \\ 
{\it{body\/}})\-\index{first-n}, \\ 
{\it{pcn\/}}, \\ 
{\it{program\/}})\-\index{icompile-program-body})\index{length})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable find-label-icompile-program-body-lemma3.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  assoc-of-append \\ \index{assoc-of-append}
{\rm{append}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}), {\it{c\/}}) $=$ {\rm{append}}\,({\it{a\/}}, {\rm{append}}\,({\it{b\/}}, {\it{c\/}}))
\end{tabbing}

\begin{verbatim}; !!! Here we enable plus-add1 (which is a conjunct that hits an add1
; in either side of a plus) to replace a lemma that hit (plus x (add1 y))
; only.

\end{verbatim}
\noindent{\sc Event}:   Enable plus-add1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  icompile-program-body-append \\ \index{icompile-program-body-append}
\=\+({\it{pcn\/}} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{icompile-program-body}}\,({\rm{append}}\,({\it{body1\/}}, {\it{body2\/}}), {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{icompile-program-body}}\,({\it{body1\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body}, \\ 
{\rm{icompile-program-body}}\,(\=\+{\it{body2\/}}, \\ 
{\rm{length}}\,({\it{body1\/}})\index{length} $+$ {\it{pcn\/}}, \\ 
{\it{program\/}})\-\index{icompile-program-body})\-)\-\-
\end{tabbing}
\begin{verbatim}; !!! Plus-0 is more powerful than the rule we're replacing,
; (plus x 0) = (fix x).

\end{verbatim}
\noindent{\sc Event}:   Enable plus-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  plus-difference \\ \index{plus-difference}
\=\+(({\it{x\/}} $-$ {\it{y\/}}) $+$ {\it{y\/}}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}} $<$ {\it{y\/}}$\;\;${\bf then }{\rm{fix}}\,({\it{y\/}}) \\ 
{\bf else }{\rm{fix}}\,({\it{x\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; The next two lemmas are of questionable value in indiscriminant
; use so they will be disabled as soon as they've been used where needed.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-add1 \\ \index{difference-add1}
({\it{x\/}} $\not<$ {\it{y\/}}) $\rightarrow$ ((($1\;+$ {\it{x\/}}) $-$ {\it{y\/}}) $=$ ($1\;+$ ({\it{x\/}} $-$ {\it{y\/}})))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  open-first-n-at-high-end \\ \index{open-first-n-at-high-end}
{\rm{first-n}}\,($1\;+$ {\it{n\/}}, {\it{x\/}})\index{first-n} $=$ {\rm{append}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{x\/}})\index{first-n}, {\rm{list}}\,({\rm{get}}\,({\it{n\/}}, {\it{x\/}})\index{get}))
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  find-label-add-adp-1-icompile-program-body \\ \index{find-label-add-adp-1-icompile-p!rogram-body}
\=\+(\=\+{\rm{listp}}\,({\it{r-pc\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{name}}\,({\it{program\/}})\index{name} $=$ {\rm{adp-name}}\,({\it{r-pc\/}})\index{adp-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{r-pc\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{pcn\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{r-pc\/}})\index{adp-offset} $\not<$ {\it{pcn\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{r-pc\/}})\index{adp-offset} $<$ ({\it{pcn\/}} $+$ {\rm{length}}\,({\it{body\/}})\index{length})) \\ 
$\wedge$$\;\;\;\;${\rm{r-program-bodyp}}\,({\it{body\/}})\index{r-program-bodyp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\rm{add-adp}}\,({\it{r-pc\/}}, {\tt{1}})\index{add-adp}, {\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body})\index{find-label} \\ 
$=$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{r-pc\/}}, {\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{program\/}})\index{icompile-program-body})\index{find-label} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,(\=\+{\rm{get}}\,({\rm{adp-offset}}\,({\it{r-pc\/}})\index{adp-offset} $-$ {\it{pcn\/}}, {\it{body\/}})\index{get}, \\ 
{\rm{adp-offset}}\,({\it{r-pc\/}})\index{adp-offset}, \\ 
{\it{program\/}})\-\index{icode})\index{length})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable difference-add1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable open-first-n-at-high-end.

\addvspace{18pt}

\begin{verbatim}; We are next headed for the result that no labels occur in the prelude
; (at least, no labels of the form (cons name n) where n is numeric).

; However, we will first

\end{verbatim}
\noindent{\sc Event}:   Disable name.

\addvspace{18pt}

\noindent{\sc Event}:   Disable formal-vars.

\addvspace{18pt}

\noindent{\sc Event}:   Disable temp-var-dcls.

\addvspace{18pt}

\noindent{\sc Event}:   Disable program-body.

\addvspace{18pt}

\begin{verbatim}; This probably could be done much earlier.

\end{verbatim}
\noindent{\sc Event}:   Enable length-rev.

\addvspace{18pt}

\noindent{\sc Event}:   Enable associativity-of-plus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  find-label-generate-prelude1 \\ \index{find-label-generate-prelude1}
\=\+{\rm{r-temp-var-dclsp}}\,({\it{var-dcls\/}})\index{r-temp-var-dclsp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{generate-prelude1}}\,({\it{var-dcls\/}})\index{generate-prelude1})\index{find-label} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{generate-prelude1}}\,({\it{var-dcls\/}})\index{generate-prelude1})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-find-label-generate-prelude2 \\ \index{not-find-label-generate-prelude!2}
\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{generate-prelude2}}\,({\it{formal-vars\/}})\index{generate-prelude2})\index{find-label} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{generate-prelude2}}\,({\it{formal-vars\/}})\index{generate-prelude2})\index{length}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-temp-var-dclsp-append \\ \index{r-temp-var-dclsp-append}
\=\+{\rm{r-temp-var-dclsp}}\,({\rm{append}}\,({\it{var-dcls1\/}}, {\it{var-dcls2\/}}))\index{r-temp-var-dclsp} \\ 
$=$$\;\;\;\;$({\rm{r-temp-var-dclsp}}\,({\it{var-dcls1\/}})\index{r-temp-var-dclsp} $\wedge$ {\rm{r-temp-var-dclsp}}\,({\it{var-dcls2\/}})\index{r-temp-var-dclsp})\-
\end{tabbing}



\begin{tabbing}{\sc Theorem}:  r-temp-var-dclsp-rev \\ \index{r-temp-var-dclsp-rev}
{\rm{r-temp-var-dclsp}}\,({\rm{rev}}\,({\it{var-dcls\/}})\index{rev})\index{r-temp-var-dclsp} $=$ {\rm{r-temp-var-dclsp}}\,({\it{var-dcls\/}})\index{r-temp-var-dclsp}
\end{tabbing}

\begin{verbatim}; The following is necessary because generate-prelude was defined
; with REVERSE (which is REV1) rather than with REV.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  reverse-is-rev \\ \index{reverse-is-rev}
{\rm{reverse}}\,({\it{x\/}})\index{reverse} $=$ {\rm{rev}}\,({\it{x\/}})\index{rev}
\end{tabbing}


\noindent{\sc Event}:   Disable reverse.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  find-label-generate-prelude \\ \index{find-label-generate-prelude}
\=\+({\rm{r-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls})\index{r-temp-var-dclsp} $\wedge$ ({\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{generate-prelude}}\,({\it{prog\/}})\index{generate-prelude})\index{find-label} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{generate-prelude}}\,({\it{prog\/}})\index{generate-prelude})\index{length})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable generate-prelude.

\addvspace{18pt}

\noindent{\sc Event}:   Disable generate-postlude.

\addvspace{18pt}

\begin{verbatim}; Now we begin the study of labels in the icompiled body

\end{verbatim}\begin{tabbing}{\sc Theorem}:  member-assoc \\ \index{member-assoc}
{\rm{definedp}}\,({\it{x\/}}, {\it{a\/}})\index{definedp} $\rightarrow$ ({\rm{assoc}}\,({\it{x\/}}, {\it{a\/}}) $\in$ {\it{a\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-x-0 \\ \index{difference-x-0}
({\it{x\/}} $-$ {\tt{0}}) $=$ {\rm{fix}}\,({\it{x\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable car-assoc.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-cons.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  listp-if \\ \index{listp-if}
\=\+{\rm{listp}}\,(\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{listp}}\,({\it{b\/}}) \\ 
{\bf else }{\rm{listp}}\,({\it{c\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Note that the following lemma is stored as a type-prescription and
; hence the dependency of subsequent facts on this may not be apparent.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  listp-icode12 \\ \index{listp-icode12}
{\rm{listp}}\,({\rm{icode12}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode12})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-icode1 \\ \index{listp-icode1}
{\rm{listp}}\,({\rm{icode1}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode1})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-icompile-program-body \\ \index{listp-icompile-program-body}
{\rm{listp}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body}) $=$ {\rm{listp}}\,({\it{body\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint1} \\  
\=\+{\rm{induct-hint1}}\,({\it{n\/}}, {\it{body\/}}, {\it{pcn\/}})\index{induct-hint1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{body\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint1}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{body\/}}), $1\;+$ {\it{pcn\/}})\index{induct-hint1}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  weak-monotonicity-of-icompile-program-body \\ \index{weak-monotonicity-of-icompile-p!rogram-body}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) $\wedge$ ({\it{pcn\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{n\/}} $+$ {\it{pcn\/}}, {\it{prog\/}})\index{icode})\index{length})\-)\-\-
\end{tabbing}

\begin{verbatim}; The next major goal is R->I_PC-TAG-ADD-ADP-1, which has the hypothesis
; that R is a proper-r-statep.  We need to be able to recover various
; things from that.  We get those lemmas now.  The trick to the lemmas
; below is that we don't want free vars in them.  So I prove the
; interesting fact as a lemma of class nil and then instantiate
; it to components of the proper-r-statep r.  In the "instantiated"
; version I also backchain through the proper-r-statep-observations
; to get the single hypothesis (proper-r-statep r load-addr).

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-program-bodyp-program-body-lemma \\ \index{r-program-bodyp-program-body-le!mma}
\=\+({\rm{r-prog-segmentp}}\,({\it{prog-segment\/}})\index{r-prog-segmentp} $\wedge$ ({\it{prog\/}} $\in$ {\it{prog-segment\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{r-program-bodyp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-program-bodyp-program-body \\ \index{r-program-bodyp-program-body}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\index{r-program-bodyp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-temp-var-dclsp-temp-var-dcls-lemma \\ \index{r-temp-var-dclsp-temp-var-dcls-!lemma}
\=\+({\rm{r-prog-segmentp}}\,({\it{prog-segment\/}})\index{r-prog-segmentp} $\wedge$ ({\it{prog\/}} $\in$ {\it{prog-segment\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls})\index{r-temp-var-dclsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-temp-var-dclsp-temp-var-dcls \\ \index{r-temp-var-dclsp-temp-var-dcls}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{r-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{r-temp-var-dclsp}\-
\end{tabbing}

\begin{verbatim}; Now we begin our attack directly on the lemma that says
; you can map down an incremented r-pc by mapping down the
; the r-pc and then incrementing by the length of icode.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equal-tag \\ \index{equal-tag}
({\rm{tag}}\,({\it{t1\/}}, {\it{obj1\/}})\index{tag} $=$ {\rm{tag}}\,({\it{t2\/}}, {\it{obj2\/}})\index{tag}) $=$ (({\it{t1\/}} $=$ {\it{t2\/}}) $\wedge$ ({\it{obj1\/}} $=$ {\it{obj2\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-adp-cons \\ \index{add-adp-cons}
{\rm{add-adp}}\,({\rm{cons}}\,({\it{name\/}}, {\it{n\/}}), {\it{m\/}})\index{add-adp} $=$ {\rm{cons}}\,({\it{name\/}}, {\it{n\/}} $+$ {\it{m\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  name-assoc \\ \index{name-assoc}
{\rm{definedp}}\,({\it{name\/}}, {\it{alist\/}})\index{definedp} $\rightarrow$ ({\rm{name}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{alist\/}}))\index{name} $=$ {\it{name\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-generate-postlude \\ \index{find-label-generate-postlude}
\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{generate-postlude}}\,({\it{prog\/}})\index{generate-postlude})\index{find-label} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lab\/}} $=$ {\rm{cons}}\,({\rm{name}}\,({\it{prog\/}})\index{name}, {\rm{length}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{length})$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\rm{length}}\,({\rm{generate-postlude}}\,({\it{prog\/}})\index{generate-postlude})\index{length}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-add-adp-cons-adp-name \\ \index{equal-add-adp-cons-adp-name}
({\rm{add-adp}}\,({\it{x\/}}, {\it{n\/}})\index{add-adp} $=$ {\rm{cons}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{y\/}})) $=$ (({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $+$ {\it{n\/}}) $=$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  weak-monotonicity-of-icompile-program-body-0 \\ \index{weak-monotonicity-of-icompile-p!rogram-body-0}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{n\/}}, {\it{prog\/}})\index{icode})\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  leq-means-lessp-is-not-equal \\ \index{leq-means-lessp-is-not-equal}
\=\+(({\it{b\/}} $\not<$ ({\it{a\/}} $+$ {\it{i\/}})) $\wedge$ ({\it{b\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$((({\it{a\/}} $+$ {\it{i\/}}) $<$ {\it{b\/}}) $=$ (({\it{a\/}} $+$ {\it{i\/}}) $\not=$ {\it{b\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-plus-cancellation1 \\ \index{equal-plus-cancellation1}
({\it{x\/}} $=$ ({\it{x\/}} $+$ {\it{y\/}})) $=$ (({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{y\/}} $\simeq {\tt{0}}$))
\end{tabbing}
                  
\begin{tabbing}{\sc Theorem}:  last-instruction \\ \index{last-instruction}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{pcn\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{n\/}} $+$ {\it{pcn\/}}, {\it{prog\/}})\index{icode})\index{length})\- \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length})\- \\ 
$=$$\;\;\;\;$({\it{n\/}} $=$ ({\rm{length}}\,({\it{body\/}})\index{length} $-\;1$)))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  last-instruction-0 \\ \index{last-instruction-0}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{n\/}}, {\it{prog\/}})\index{icode})\index{length})\- \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length})\- \\ 
$=$$\;\;\;\;$({\it{n\/}} $=$ ({\rm{length}}\,({\it{body\/}})\index{length} $-\;1$)))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-plus-cancellation2 \\ \index{equal-plus-cancellation2}
(({\it{x\/}} $+$ {\it{y\/}}) $=$ ({\it{x\/}} $+$ {\it{z\/}})) $=$ ({\rm{fix}}\,({\it{y\/}}) $=$ {\rm{fix}}\,({\it{z\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-tag-add-adp-1-lemma1 \\ \index{r-$>$i\_pc-tag-add-adp-1-lemma1}
\=\+((($1\;+$ {\it{n\/}}) $=$ {\rm{length}}\,({\it{body\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{pcn\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{n\/}} $+$ {\it{pcn\/}}, {\it{prog\/}})\index{icode})\index{length})\-)\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-tag-add-adp-1-lemma1-0 \\ \index{r-$>$i\_pc-tag-add-adp-1-lemma1!-0}
\=\+((($1\;+$ {\it{n\/}}) $=$ {\rm{length}}\,({\it{body\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{n\/}}, {\it{prog\/}})\index{icode})\index{length})\-)\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-tag-add-adp-1-lemma2 \\ \index{r-$>$i\_pc-tag-add-adp-1-lemma2}
\=\+(({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{pcn\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length})\- \\ 
$=$$\;\;\;\;$({\it{n\/}} $=$ {\rm{length}}\,({\it{body\/}})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-tag-add-adp-1 \\ \index{r-$>$i\_pc-tag-add-adp-1}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i\_pc}}\,({\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}, {\tt{1}})\index{add-adp})\index{tag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,(\=\+{\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc}, \\ 
{\rm{length}}\,({\rm{icode}}\,(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{r-current-program}}\,({\it{r\/}})\index{r-current-program})\index{program-body})\-\index{get}, \\ 
{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{definition}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\-\index{icode})\index{length})\-\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-icompile \\ \index{assoc-icompile}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{progs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\it{name\/}}, {\rm{icompile}}\,({\it{progs\/}})\index{icompile}) \\ 
$=$$\;\;\;\;${\rm{icompile-program}}\,({\rm{definition}}\,({\it{name\/}}, {\it{progs\/}})\index{definition})\index{icompile-program})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-car-cdr-n \\ \index{get-car-cdr-n}
{\rm{get}}\,({\it{n\/}}, {\it{x\/}})\index{get} $=$ {\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{x\/}})\index{cdr-n})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-plus \\ \index{cdr-n-plus}
{\rm{cdr-n}}\,({\it{m\/}} $+$ {\it{n\/}}, {\it{x\/}})\index{cdr-n} $=$ {\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr-n}}\,({\it{m\/}}, {\it{x\/}})\index{cdr-n})\index{cdr-n}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-append \\ \index{cdr-n-append}
({\rm{length}}\,({\it{a\/}})\index{length} $\not<$ {\it{n\/}}) $\rightarrow$ ({\rm{cdr-n}}\,({\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{cdr-n} $=$ {\rm{append}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{a\/}})\index{cdr-n}, {\it{b\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-cdr-n \\ \index{listp-cdr-n}
{\rm{listp}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{x\/}})\index{cdr-n}) $=$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{x\/}})\index{length})
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  not-lessp-length-find-label \\ \index{not-lessp-length-find-label}
{\rm{length}}\,({\it{x\/}})\index{length} $\not<$ {\rm{find-label}}\,({\it{lab\/}}, {\it{x\/}})\index{find-label}
\end{tabbing}


\begin{verbatim}; I used to prove this but I'm not sure I'll use it so it has been skipped
;(prove-lemma first-n-cdr-n (rewrite)
;  (implies (lessp n (length x))
;          (equal (append (first-n n x) (cdr-n n x)) x)))


\end{verbatim}\begin{tabbing}{\sc Theorem}:  car-append \\ \index{car-append}
{\rm{listp}}\,({\it{a\/}}) $\rightarrow$ ({\rm{car}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}})) $=$ {\rm{car}}\,({\it{a\/}}))
\end{tabbing}

\begin{verbatim}; here is my new version of what is shown below...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  cdr-n-length-icompile-program-body-first-n \\ \index{cdr-n-length-icompile-program-b!ody-first-n}
\=\+(({\rm{length}}\,({\it{body\/}})\index{length} $\not<$ {\it{n\/}}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{pcn\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr-n}}\,(\=\+{\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{body\/}})\index{first-n}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\index{length}, \\ 
{\rm{icompile-program-body}}\,({\it{body\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\-\index{cdr-n} \\ 
$=$$\;\;\;\;${\rm{icompile-program-body}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{body\/}})\index{cdr-n}, {\it{n\/}} $+$ {\it{pcn\/}}, {\it{prog\/}})\index{icompile-program-body})\-\-
\end{tabbing}



\begin{tabbing}{\sc Theorem}:  icompile-program-body-cdr-n-expander \\ \index{icompile-program-body-cdr-n-exp!ander}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{icompile-program-body}}\,(\=\+{\rm{cdr-n}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{cdr-n}, \\ 
{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\-\index{icompile-program-body} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{icode}}\,(\=\+{\rm{car}}\,({\rm{cdr-n}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{cdr-n}), \\ 
{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{assoc}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\-\index{icode}, \\ 
{\rm{icompile-program-body}}\,(\=\+{\rm{cdr}}\,({\rm{cdr-n}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{cdr-n}), \\ 
$1\;+$ {\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\-\index{icompile-program-body})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-add-adp-untag-r-$>$i \\ \index{fetch-adp-add-adp-untag-r-$>$i}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{icode}}\,(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{definition}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{program-body})\-\index{get}, \\ 
{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{definition}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\-\index{icode})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc})\index{untag}, {\it{n\/}})\index{add-adp}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{get}}\,(\=\+{\it{n\/}}, \\ 
{\rm{icode}}\,(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{definition}}\,(\=\+{\rm{area-name}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{area-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{program-body})\-\index{get}, \\ 
{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{area-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definition})\-\index{icode})\-\index{get})\-\-
\end{tabbing}

\begin{verbatim}; This is really a crucial result because it tells us how to get the i-level
; instruction corresponding to a given r level one.  In the future I prefer
; to see get rather than cdr-n, so now that cdr-n has done its job I'm going
; to disable to rewrite rule that introduces it.

\end{verbatim}
\noindent{\sc Event}:   Disable get-car-cdr-n.

\addvspace{18pt}

\begin{verbatim}; In order for the above lemma to be used, R->I_PC must be disabled.
; We need the following about it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adp-name-untag-r-$>$i\_pc \\ \index{adp-name-untag-r-$>$i\_pc}
\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc})\index{untag})\index{adp-name} \\ 
$=$$\;\;\;\;${\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}\-
\end{tabbing}
 

\noindent{\sc Event}:   Disable r-$>$i\_pc.

\addvspace{18pt}





\begin{tabbing}{\sc Theorem}:  definedp-icompile \\ \index{definedp-icompile}
{\rm{definedp}}\,({\it{name\/}}, {\rm{icompile}}\,({\it{list\/}})\index{icompile})\index{definedp} $=$ {\rm{definedp}}\,({\it{name\/}}, {\it{list\/}})\index{definedp}
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  length-generate-prelude1 \\ \index{length-generate-prelude1}
{\rm{length}}\,({\rm{generate-prelude1}}\,({\it{temp-var-dcls\/}})\index{generate-prelude1})\index{length} $=$ ({\rm{length}}\,({\it{temp-var-dcls\/}})\index{length} $*$ {\tt{2}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-generate-prelude2 \\ \index{length-generate-prelude2}
{\rm{length}}\,({\rm{generate-prelude2}}\,({\it{formal-vars\/}})\index{generate-prelude2})\index{length} $=$ {\rm{length}}\,({\it{formal-vars\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-generate-prelude \\ \index{length-generate-prelude}
\=\+{\rm{length}}\,({\rm{generate-prelude}}\,({\it{program\/}})\index{generate-prelude})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\tt{2}} \\ 
$+$$\;\;\;\;$({\rm{length}}\,({\rm{temp-var-dcls}}\,({\it{program\/}})\index{temp-var-dcls})\index{length} $*$ {\tt{2}}) \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\it{program\/}})\index{formal-vars})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-generate-postlude \\ \index{length-generate-postlude}
{\rm{length}}\,({\rm{generate-postlude}}\,({\it{prog\/}})\index{generate-postlude})\index{length} $=$ {\tt{3}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-cdr-icompile-program \\ \index{find-label-cdr-icompile-program}
\=\+(\=\+(($1\;+$ {\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset}) $<$ {\rm{length}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{r-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls})\index{r-temp-var-dclsp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{r-program-bodyp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name} $=$ {\rm{name}}\,({\it{prog\/}})\index{name}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{lab\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+($1\;+$ {\rm{find-label}}\,({\it{lab\/}}, {\rm{cdr}}\,({\rm{icompile-program}}\,({\it{prog\/}})\index{icompile-program}))\index{find-label}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{icompile-program}}\,({\it{prog\/}})\index{icompile-program}))\index{length})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable length-generate-prelude.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  addp-add-adp-untag-r-$>$i\_pc \\ \index{addp-add-adp-untag-r-$>$i\_pc}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icode}}\,(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{definition}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{program-body})\-\index{get}, \\ 
{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{definition}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definition})\-\index{icode})\index{length} \\ 
$\not<$$\;\;\;\;${\it{n\/}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,(\=\+{\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc})\index{untag}, {\it{n\/}})\index{add-adp}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{adpp}\-
\end{tabbing}

\begin{verbatim}; The following disable is necessary because adpp is used in the concl above.
; This could have been done earlier, when we disabled the other adp fns.
; If it is moved, however, we must remember to enable it for the proof above.


\end{verbatim}
\noindent{\sc Event}:   Disable adpp.

\addvspace{18pt}

\begin{verbatim}; The following lemma establishes that every label of the form
; (cons name n) where name is less than the length of the program
; occurs in the icompiled program.  It follows from our
; FIND-LABEL-ICOMPILE-PROGRAM-BODY but we wish to have that
; rewrite rule disabled so as not to rewrite FIND-LABEL
; expressions in the future.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-find-label-icompile-program \\ \index{lessp-find-label-icompile-progr!am}
\=\+(\=\+{\rm{listp}}\,({\it{lab\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\it{lab\/}})\index{adp-name} $=$ {\rm{name}}\,({\it{program\/}})\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{program-body}}\,({\it{program\/}})\index{program-body})\index{length} $\not<$ {\rm{adp-offset}}\,({\it{lab\/}})\index{adp-offset}) \\ 
$\wedge$$\;\;\;\;${\rm{r-programp}}\,({\it{program\/}})\index{r-programp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\it{lab\/}}, {\rm{cdr}}\,({\rm{icompile-program}}\,({\it{program\/}})\index{icompile-program}))\index{find-label} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{icompile-program}}\,({\it{program\/}})\index{icompile-program}))\index{length})\-\-
\end{tabbing}
        
\begin{verbatim}; To relieve the hypothesis about r-programp we will need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-prog-segmentp-contains-r-programp \\ \index{r-prog-segmentp-contains-r-prog!ramp}
({\rm{r-prog-segmentp}}\,({\it{segment\/}})\index{r-prog-segmentp} $\wedge$ ({\it{prog\/}} $\in$ {\it{segment\/}})) $\rightarrow$ {\rm{r-programp}}\,({\it{prog\/}})\index{r-programp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-r-programp \\ \index{proper-r-statep-implies-r-progr!amp}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-programp}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{r-programp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-programp.

\addvspace{18pt}

\begin{verbatim}; At this point I think we have completely dealt with all issues concerning
; FIND-LABEL and we will disable the lemmas surrounding it.

\end{verbatim}
\noindent{\sc Event}:   Disable find-label-generate-postlude.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-generate-prelude.

\addvspace{18pt}

\noindent{\sc Event}:   Disable not-find-label-generate-prelude2.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-generate-prelude1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-add-adp-1-icompile-program-body.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-icompile-program-body.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-icompile-program-body-lemma1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-icode.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-failure-extends-to-cdr.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-icode1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-jump\_*-lst.

\addvspace{18pt}

\noindent{\sc Event}:   Disable find-label-append.

\addvspace{18pt}

\begin{verbatim}; We have also exhausted our patience with icompile-program and will
; shut it down.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  name-cons \\ \index{name-cons}
{\rm{name}}\,({\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{name} $=$ {\it{x\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  name-icompile-program \\ \index{name-icompile-program}
{\rm{name}}\,({\rm{icompile-program}}\,({\it{program\/}})\index{icompile-program})\index{name} $=$ {\rm{name}}\,({\it{program\/}})\index{name}
\end{tabbing}



\noindent{\sc Event}:   Disable icompile-program.

\addvspace{18pt}



\begin{verbatim}; Now in order for these lemmas mentioning (icode (get & &) ...) to be used
; we have to force icode to expand when we know what the instr opcode is.
; That is what the following theorems do:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  icode-opener \\ \index{icode-opener}
\=\+({\rm{car}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}) $=$ {\rm{pack}}\,({\it{xxx\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{icode}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{prog\/}})\index{icode} \\ 
$=$$\;\;\;\;${\rm{dl-block}}\,(\=\+{\rm{cons}}\,({\rm{name}}\,({\it{prog\/}})\index{name}, {\it{pcn\/}}), \\ 
{\it{ins\/}}, \\ 
\=\+{\bf case on }{\rm{car}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{icode-call}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-call} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{icode-ret}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-ret} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-locn}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-locn} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-constant}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-constant} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-local}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-local} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-global}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-push-global} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-ctrl-stk-free-size}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-push-ctrl-stk-free-size} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-temp-stk-free-size}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-push-temp-stk-free-size} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{icode-push-temp-stk-index}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-push-temp-stk-index} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-if-temp-stk-full}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-jump-if-temp-stk-full} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-if-temp-stk-empty}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-jump-if-temp-stk-empty} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop*}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop*} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-popn}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-popn} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-local}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-local} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-global}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-global} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-locn}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-locn} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pop-call}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pop-call} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{icode-fetch-temp-stk}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-fetch-temp-stk} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{icode-deposit-temp-stk}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-deposit-temp-stk} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{icode-jump-case}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-jump-case} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{icode-pushj}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-pushj} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{icode-popj}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-popj} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{icode-set-local}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-set-local} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{icode-set-global}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-set-global} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-nat-and-jump}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-nat-and-jump} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-int-and-jump}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-test-int-and-jump} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-bool-and-jump}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-test-bool-and-jump} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{icode-test-bitv-and-jump}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-test-bitv-and-jump} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{icode-no-op}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-no-op} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-addr}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-addr} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-addr}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-addr} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{icode-eq}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-eq} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-addr}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-addr} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{icode-fetch}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-fetch} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{icode-deposit}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-deposit} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-int}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-int} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-int-with-carry}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-add-int-with-carry} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add1-int}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add1-int} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-int}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-int} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-int-with-carry}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-sub-int-with-carry} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub1-int}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub1-int} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-neg-int}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-neg-int} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-int}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-int} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-int-to-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-int-to-nat} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add-nat} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add-nat-with-carry}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-add-nat-with-carry} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-add1-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-add1-nat} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub-nat} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub-nat-with-carry}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-sub-nat-with-carry} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-sub1-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-sub1-nat} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lt-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lt-nat} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-mult2-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-mult2-nat} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{icode-mult2-nat-with-carry-out}}\,(\=\+{\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, \\ 
{\it{pcn\/}}, \\ 
{\it{prog\/}})\-\index{icode-mult2-nat-with-carry-out} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{icode-div2-nat}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-div2-nat} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-or-bitv}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-or-bitv} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-and-bitv}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-and-bitv} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-not-bitv}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-not-bitv} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-xor-bitv}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-xor-bitv} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-rsh-bitv}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-rsh-bitv} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{icode-lsh-bitv}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-lsh-bitv} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-or-bool}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-or-bool} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-and-bool}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-and-bool} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{icode-not-bool}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}, {\it{pcn\/}}, {\it{prog\/}})\index{icode-not-bool} \\ 
{\bf otherwise }{\tt{'}}{\tt{(}}{\tt{(}}{\tt{error}}{\tt{)}}{\tt{)}}$\;${\bf  endcase}\-)\-\index{dl-block})\-\-
\end{tabbing}



\noindent{\sc Event}:   Disable icode.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  fetch-adp-add-adp-untag-r-$>$i-0 \\ \index{fetch-adp-add-adp-untag-r-$>$i-!0}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc})\index{untag}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{car}}\,({\rm{icode}}\,(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{definition}}\,(\=\+{\rm{area-name}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{area-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{program-body})\-\index{get}, \\ 
{\rm{offset}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{offset}, \\ 
{\rm{definition}}\,({\rm{area-name}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{area-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definition})\-\index{icode}))\-\-
\end{tabbing}

\begin{verbatim}; I also want to disable deposit-adp.  But I need to prove the
; fundamental relationships between fetch and deposit first.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-put-assoc\{gen\} \\ \index{assoc-put-assoc\{gen\}}
\=\+{\rm{assoc}}\,({\it{u1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{u2\/}}, {\it{segment\/}})\index{put-assoc}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{u1\/}} $=$ {\it{u2\/}} \\ 
{\bf then }\=\+{\bf if }{\rm{definedp}}\,({\it{u1\/}}, {\it{segment\/}})\index{definedp}$\;\;${\bf then }{\rm{cons}}\,({\it{u1\/}}, {\it{val\/}}) \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{assoc}}\,({\it{u1\/}}, {\it{segment\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-nlistp \\ \index{get-nlistp}
({\it{x\/}} $\simeq\;${{\bf{nil}}}${}$) $\rightarrow$ ({\rm{get}}\,({\it{n\/}}, {\it{x\/}})\index{get} $=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-put \\ \index{get-put}
\=\+(({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{k\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{n\/}}, {\rm{put}}\,({\it{val\/}}, {\it{k\/}}, {\it{lst\/}})\index{put})\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $=$ {\it{k\/}}$\;\;${\bf then }{\it{val\/}} \\ 
{\bf else }{\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-put-assoc \\ \index{put-assoc-put-assoc}
\=\+{\rm{put-assoc}}\,({\it{val1\/}}, {\it{name\/}}, {\rm{put-assoc}}\,({\it{val2\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc})\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{put-assoc}}\,({\it{val1\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-put \\ \index{put-put}
{\rm{put}}\,({\it{val1\/}}, {\it{n\/}}, {\rm{put}}\,({\it{val2\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{put} $=$ {\rm{put}}\,({\it{val1\/}}, {\it{n\/}}, {\it{lst\/}})\index{put}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-put-assoc \\ \index{adpp-put-assoc}
\=\+({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{definiens}}\,({\it{name\/}}, {\it{alist\/}})\index{definiens})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{adpp}}\,({\it{x\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc})\index{adpp} $=$ {\rm{adpp}}\,({\it{x\/}}, {\it{alist\/}})\index{adpp})\-
\end{tabbing}


\noindent{\sc Event}:   Enable length-put.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-deposit-adp \\ \index{adpp-deposit-adp}
\=\+{\rm{adpp}}\,({\it{adp2\/}}, {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{adpp}}\,({\it{adp1\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp2\/}}, {\it{segment\/}})\index{deposit-adp})\index{adpp} $=$ {\rm{adpp}}\,({\it{adp1\/}}, {\it{segment\/}})\index{adpp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-deposit-adp \\ \index{fetch-adp-deposit-adp}
\=\+({\rm{adpp}}\,({\it{adp1\/}}, {\it{segment\/}})\index{adpp} $\wedge$ {\rm{adpp}}\,({\it{adp2\/}}, {\it{segment\/}})\index{adpp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,({\it{adp1\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp2\/}}, {\it{segment\/}})\index{deposit-adp})\index{fetch-adp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{adp1\/}} $=$ {\it{adp2\/}}$\;\;${\bf then }{\it{val\/}} \\ 
{\bf else }{\rm{fetch-adp}}\,({\it{adp1\/}}, {\it{segment\/}})\index{fetch-adp}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-adp-deposit-adp \\ \index{deposit-adp-deposit-adp}
\=\+{\rm{deposit-adp}}\,({\it{val1\/}}, {\it{adp\/}}, {\rm{deposit-adp}}\,({\it{val2\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp})\index{deposit-adp} \\ 
$=$$\;\;\;\;${\rm{deposit-adp}}\,({\it{val1\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp}\-
\end{tabbing}

\begin{verbatim}; That concludes our first pass at fetch-adp and deposit-adp lemmas.

\end{verbatim}
\noindent{\sc Event}:   Disable deposit-adp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fetch-adp.

\addvspace{18pt}


\begin{tabbing}{\sc Theorem}:  unlabel-dl \\ \index{unlabel-dl}
{\rm{unlabel}}\,({\rm{dl}}\,({\it{a\/}}, {\it{b\/}}, {\it{c\/}})\index{dl})\index{unlabel} $=$ {\it{c\/}}
\end{tabbing}


\noindent{\sc Event}:   Disable dl.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  type-r-$>$i\_pc \\ \index{type-r-$>$i\_pc}
{\rm{type}}\,({\rm{r-$>$i\_pc}}\,({\it{r-pc\/}}, {\it{r-prog-segment\/}})\index{r-$>$i\_pc})\index{type} $=$ {\tt{'}}{\tt{ipc}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-r-$>$i\_pc \\ \index{cddr-r-$>$i\_pc}
{\rm{cddr}}\,({\rm{r-$>$i\_pc}}\,({\it{r-pc\/}}, {\it{r-prog-segment\/}})\index{r-$>$i\_pc}) $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  addp-add-adp-untag-r-$>$i\_pc-0 \\ \index{addp-add-adp-untag-r-$>$i\_pc-0}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,(\=\+{\rm{untag}}\,({\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc})\index{untag}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-adp-add-adp \\ \index{add-adp-add-adp}
{\rm{add-adp}}\,({\rm{add-adp}}\,({\it{adp\/}}, {\it{i\/}})\index{add-adp}, {\it{j\/}})\index{add-adp} $=$ {\rm{add-adp}}\,({\it{adp\/}}, {\it{i\/}} $+$ {\it{j\/}})\index{add-adp}
\end{tabbing}

\begin{verbatim}; We are now headed into the block of lemmas that are responsible
; for expanding (i * 3 load-addr) for various 3's.  Very roughly speaking,
; we expand (I * 3 load-addr) to (I-STEP (I-STEP (I-STEP *))).  But there
; are various problems, all more or less having to do with the
; fact that we wish to simplify that nest of I-STEPs from the
; inside out, thus symbolically executing the i-level code.
; So imagine that * above is just any intermediate state produced
; in this process.

; The first problem is we call the "I-STATE-OKP problem."
; The sequence of function calls from I is

; I -> I-STEP -> I-STEP1 -> I-STATE-OKP, I-INS-OKP & I-INS-STEP.

; We will need to prove (I-STATE-OKP * load-addr).  But we have from the
; im level proofs:

\end{verbatim}
\noindent{\sc Event}:   Enable i-state-okp-i-ins-step.

\addvspace{18pt}


\noindent{\sc Event}:   Disable i-ins-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable i-ins-okp.

\addvspace{18pt}

\begin{verbatim}#|
(include-book i-m-book "i-m" t nil)

; Now we disable all of the just imported events except for
; i-state-okp-i-ins-step and we also disable i-ins-step and i-ins-okp.
; This inclusion also introduces many function symbols.  Most we
; keep disabled.  But we used PROPERP in a theorem far below (without
; really knowing when it came into the chronology) and then discovered
; when a proof failed that it was introduced here and was disabled.
; We need it enabled.  One way to look at this inclusion is that we
; looked at "i-m" and saw two things we need, i-state-okp-i-ins-step
; and properp.

(status i-m-book-status
        (set-difference (union (@ *e* add-adp-add-adp)
                               '(i-state-okp-i-ins-step properp))
                        '(i-ins-step i-ins-okp)))

|#
; Thus, on every unfolding of I we get for free the I-STATE-OKP
; if we have it initially (which we do).  But the invariant
; lemma above can't be used if * has been simplified out to
; an I-STATE shell.  So our first move is to replace (I * n load-addr)
; by (I* * n load-addr), where I* is like I but does not have the I-STATE-OKP
; check at all.  We prove that I is I* if the initial state is OKP.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{i*} \\  
\=\+{\rm{i*}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i*} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{i\/}} \\ 
{\bf elseif }{\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{i-ins-okp}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}})\index{i-ins-okp} \\ 
{\bf then }{\rm{i*}}\,(\=\+{\rm{i-ins-step}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}, {\it{i\/}}, {\it{load-addr\/}})\index{i-ins-step}, \\ 
{\it{n\/}} $-\;1$, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
{\bf else }{\rm{i-halt}}\,(\=\+{\it{i\/}}, \\ 
{\rm{x-y-error-msg}}\,(\=\+{\tt{'}}{\tt{i}}, \\ 
{\rm{car}}\,({\rm{i-current-instruction}}\,({\it{i\/}})\index{i-current-instruction}))\-\index{x-y-error-msg})\-\index{i-halt}$\;${\bf  endif}\- \\ 
{\bf else }{\it{i\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; A little lemma to deal with the fact that I* halts on the first non-RUN
; psw while I chugs onward.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-id-on-non-run \\ \index{i-id-on-non-run}
({\rm{i-psw}}\,({\it{i\/}})\index{i-psw} $\not=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i} $=$ {\it{i\/}})
\end{tabbing}

\begin{verbatim}; The solution to the I-STATE-OKP problem:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-state-okp-implies-i-is-i* \\ \index{i-state-okp-implies-i-is-i*}
\=\+(({\it{load-addr\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i} $=$ {\rm{i*}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i*})\-
\end{tabbing}


\noindent{\sc Event}:   Disable i.

\addvspace{18pt}

\begin{verbatim}; So now (I s n load-addr) stays in the problem until we can show that s is
; okp and then it changes to I*.

; There is only one s for which we need to prove i-state-okp, and
; that is the opened up version of (r->i r):


\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-i-state-okp-r-$>$i-opened \\ \index{proper-r-statep-implies-i-state!-okp-r-$>$i-opened}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,(\=\+{\rm{i-state}}\,(\=\+{\rm{r-$>$i\_pc}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc}, \\ 
{\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}, \\ 
{\rm{r-csp}}\,({\it{r\/}})\index{r-csp}, \\ 
{\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, \\ 
{\rm{r-x}}\,({\it{r\/}})\index{r-x}, \\ 
{\rm{r-y}}\,({\it{r\/}})\index{r-y}, \\ 
{\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}, \\ 
{\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}, \\ 
{\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}, \\ 
{\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-state-okp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable i-state-okp.

\addvspace{18pt}

\begin{verbatim}; Aside:  We will want the elegant version later so we prove it now:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-i-state-okp-r-$>$i \\ \index{proper-r-statep-implies-i-state!-okp-r-$>$i}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\it{r\/}})\index{r-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{verbatim}; Next we want to expand (I* s (ADD1 n) load-addr).  But we want this to
; happen only if s has been reduced to an explicit state.  That way
; we avoid a proliferation of case splits.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i*-opener \\ \index{i*-opener}
\=\+({\it{ins\/}} $=$ {\rm{i-current-instruction}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-current-instruction}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i*}}\,(\=\+{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
$1\;+$ {\it{n\/}}, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{i-psw\/}} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{i-ins-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
{\bf then }{\rm{i*}}\,(\=\+{\rm{i-ins-step}}\,(\=\+{\it{ins\/}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step}, \\ 
{\it{n\/}}, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
{\bf else }{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\rm{x-y-error-msg}}\,({\tt{'}}{\tt{i}}, {\rm{car}}\,({\it{ins\/}}))\index{x-y-error-msg})\-\index{i-state}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i*-done \\ \index{i*-done}
{\rm{i*}}\,({\it{i\/}}, {\tt{0}}, {\it{load-addr\/}})\index{i*} $=$ {\it{i\/}}
\end{tabbing}


\noindent{\sc Event}:   Disable i*.

\addvspace{18pt}

\begin{verbatim}; So now the only way (i* i n load-addr) will open is if n is 0 or n is an ADD1
; and i is an explicit state.

; Next we consider the problem of opening up I-INS-OKP and I-INS-STEP.
; We wish to open these fns only when the instruction is known and
; the state is explicit.

; Because the i machine has instructions that are all constants --
; there are no operands (unlike the r-level ICODE-OPENER case) --
; we just prove a set of unconditional equalities

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-ins-okp-opener \\ \index{i-ins-okp-opener}
\=\+(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$c$>$\_x\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$c$>$\_x\_x\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_tsp\_*\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_tsp\_*\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_tsp\_*\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_tsp\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_tsp\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_tsp\_x\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_pc\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_pc\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_pc\_x\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_x\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_x\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_x\_x\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-add\_x\{n\}\_csp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_x\{n\}\_csp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{addc\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{addc\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpop\_cfp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-cpop\_cfp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpop\_cfp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpop\_pc}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-cpop\_pc-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpop\_pc-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-cpush\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpush\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-cpush\_$<$tsp$>$+-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpush\_$<$tsp$>$+-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_cfp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-cpush\_cfp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpush\_cfp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-incr\_y\_y\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-incr\_y\_y\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{int-to-nat}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-int-to-nat-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-int-to-nat-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-jump-n\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-n\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-nn\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-jump-nn\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-nn\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-jump-nz\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-nz\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-jump-z\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-z\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-jump\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump\_x\{subr\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-jump\_x\{subr\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump\_x\{subr\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{lsr\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move-c\_$<$tsp$>$\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-c\_$<$tsp$>$\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move-v\_$<$tsp$>$\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-v\_$<$tsp$>$\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-z\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move-z\_$<$tsp$>$\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-z\_$<$tsp$>$\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-n\_x\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move-n\_x\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-n\_x\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_$<$tsp$>$\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_$<$tsp$>$\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_$<$x\{a\}$>$\_$<$tsp$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_$<$x\{s\}$>$\_$<$tsp$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_cfp\_csp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_cfp\_csp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_csp\_cfp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_csp\_cfp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_$<$x\{s\}$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_$<$x\{s\}$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_tsp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_tsp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_tsp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_y\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_y\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_$<$y\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_y\_$<$y\{s\}$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_y\_$<$y\{s\}$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_tsp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-move\_y\_tsp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_y\_tsp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{not\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_x\{s\}\_y\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_x\{s\}\_y\{n\}-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{subb\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{subb\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_$<$c$>$\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_$<$c$>$\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_$<$c$>$\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_$<$x\{a\}$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_$<$x\{a\}$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_$<$x\{s\}$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_$<$x\{s\}$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_pc}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_pc-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_pc-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_y-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_y-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{v\}\_$<$z$>$\_y-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{v\}\_$<$z$>$\_y-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{b\}\_$<$z$>$\_y-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{b\}\_$<$z$>$\_y-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{i\}\_$<$zn$>$\_y-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{i\}\_$<$zn$>$\_y-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{n\}\_$<$z$>$\_y-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{n\}\_$<$z$>$\_y-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_*-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_*-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_$<$x\{a\}$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_$<$x\{a\}$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_$<$x\{s\}$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_$<$x\{s\}$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_csp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_csp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_csp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_tsp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_tsp-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_tsp-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_x-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_*\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-o!kp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-okp}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$z$>$\_$<$tsp$>$\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-ins-okp} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-ins-step-opener \\ \index{i-ins-step-opener}
\=\+(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$c$>$\_x\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$c$>$\_x\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\{a\}\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_tsp\_*\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_tsp\_*\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_tsp\_*\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_tsp\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_tsp\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_tsp\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\{i\}\_x\{i\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_$<$tsp$>$\{n\}\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_pc\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_pc\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_pc\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_x\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_x\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_x\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{add\_x\{n\}\_csp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-add\_x\{n\}\_csp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-add\_x\{n\}\_csp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{addc\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-addc\_$<$c$>$\_x\{n\}\_y\{n\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{addc\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-addc\_$<$v$>$\_x\{i\}\_y\{i\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-and\_$<$tsp$>$\{v\}\_x\{v\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{and\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-and\_$<$tsp$>$\{b\}\_x\{b\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$tsp$>$\{b\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-asr\_$<$c$>$\_$<$tsp$>$\_$<$t!sp$>$\{b\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpop\_cfp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-cpop\_cfp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpop\_cfp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpop\_pc}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-cpop\_pc-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpop\_pc-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-cpush\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpush\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-cpush\_$<$tsp$>$+-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpush\_$<$tsp$>$+-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{cpush\_cfp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-cpush\_cfp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-cpush\_cfp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{decr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-decr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{incr\_$<$tsp$>$\_$<$tsp$>$\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-incr\_$<$tsp$>$\_$<$tsp$>$\{n\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{incr\_y\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-incr\_y\_y\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-incr\_y\_y\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{int-to-nat}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-int-to-nat-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-int-to-nat-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-n\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-jump-n\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-n\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-nn\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-jump-nn\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-nn\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-nz\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-jump-nz\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-nz\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump-z\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-jump-z\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump-z\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-jump\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{jump\_x\{subr\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-jump\_x\{subr\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-jump\_x\{subr\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{lsr\_$<$c$>$\_x\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-lsr\_$<$c$>$\_x\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-lsr\_$<$c$>$\_x\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-lsr\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-c\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move-c\_$<$tsp$>$\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-c\_$<$tsp$>$\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-v\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move-v\_$<$tsp$>$\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-v\_$<$tsp$>$\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-z\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move-z\_$<$tsp$>$\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-z\_$<$tsp$>$\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move-n\_x\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move-n\_x\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move-n\_x\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_$<$tsp$>$\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_$<$tsp$>$\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_$<$tsp$>$\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_$<$x\{a\}$>$\_$<$tsp$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_$<$x\{a\}$>$\_$<$tsp$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_$<$x\{a\}$>$\_$<$tsp$>$!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_$<$x\{s\}$>$\_$<$tsp$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_$<$x\{s\}$>$\_$<$tsp$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_$<$x\{s\}$>$\_$<$tsp$>$!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_cfp\_csp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_cfp\_csp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_csp\_cfp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_csp\_cfp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_$<$x\{s\}$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_$<$x\{s\}$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_tsp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_tsp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_tsp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_x\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_x\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_x\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_y\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_y\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_$<$y\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_y\_$<$y\{s\}$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_y\_$<$y\{s\}$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{move\_y\_tsp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-move\_y\_tsp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-move\_y\_tsp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{neg\_$<$tsp$>$\_$<$tsp$>$\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-neg\_$<$tsp$>$\_$<$tsp$>$\{i\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{not\_$<$tsp$>$\_$<$tsp$>$\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-not\_$<$tsp$>$\_$<$tsp$>$\{v\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-or\_$<$tsp$>$\{v\}\_x\{v\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{or\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-or\_$<$tsp$>$\{b\}\_x\{b\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_x\{a\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{a\}\_!x\{a\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$c$>$\_$<$tsp$>$\{n\}\_!x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$nv$>$\_$<$tsp$>$\{i\}!\_x\{i\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{a\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{a\}\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_x\{s\}\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_x\{s\}\_y\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_x\{s\}\_y\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{i\}\_x\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{i\}\_x\{i\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{n\}\_x\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{n\}\_x\{n\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$tsp$>$\{s\}\_x\{s\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$tsp$>$\{s\}\_x\{s\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sub\_$<$z$>$\_x\{s\}\_y\{s\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-sub\_$<$z$>$\_x\{s\}\_y\{s\}-!step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{subb\_$<$c$>$\_x\{n\}\_y\{n\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-subb\_$<$c$>$\_x\{n\}\_y\{n\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{subb\_$<$v$>$\_x\{i\}\_y\{i\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-subb\_$<$v$>$\_x\{i\}\_y\{i\}!-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_$<$c$>$\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_$<$c$>$\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_$<$c$>$\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{a\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_$<$x\{a\}$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_$<$x\{a\}$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_$<$x\{s\}$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_$<$x\{s\}$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_pc}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_pc-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_pc-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\_y-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\_y-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{v\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{v\}\_$<$z$>$\_y-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{v\}\_$<$z$>$\_y-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{b\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{b\}\_$<$z$>$\_y-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{b\}\_$<$z$>$\_y-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{i\}\_$<$zn$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{i\}\_$<$zn$>$\_y-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{i\}\_$<$zn$>$\_y-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpop\{n\}\_$<$z$>$\_y}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpop\{n\}\_$<$z$>$\_y-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpop\{n\}\_$<$z$>$\_y-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_*}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_*-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_*-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{a\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_$<$x\{a\}$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_$<$x\{a\}$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_$<$x\{s\}$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_$<$x\{s\}$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_$<$x\{s\}$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_csp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_csp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_csp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_tsp}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_tsp-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_tsp-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{tpush\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-tpush\_x-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-tpush\_x-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\_$<$tsp$>$}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\_$<$tsp$>$-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\_$<$tsp$>$-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{v\}\_x\{v\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\{v\}\_x\{v\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_*\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\{b\}\_*\{b\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$tsp$>$\{b\}\_x\{b\}}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step}}\,({\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state})\index{i-xor\_$<$tsp$>$\{b\}\_x\{b\}-step})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{i-ins-step}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{xor\_$<$z$>$\_$<$tsp$>$\_x}}{\tt{)}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-ins-step} \\ 
$=$$\;\;\;\;${\rm{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step}}\,(\=\+{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\it{i-prog-segment\/}}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\it{i-word-size\/}}, \\ 
{\it{i-psw\/}})\-\index{i-state}, \\ 
{\it{load-addr\/}})\-\index{i-xor\_$<$z$>$\_$<$tsp$>$\_x-step})\-\-
\end{tabbing}

\begin{verbatim}; Empty-stkp introduces difference, which slows things down a lot.
; We avoid opening it by proving:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  powerful-length-put \\ \index{powerful-length-put}
\=\+{\rm{length}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{length} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}$\;\;${\bf then }{\rm{length}}\,({\it{lst\/}})\index{length} \\ 
{\bf else }$1\;+$ {\it{n\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  empty-stkp-deposit-adp \\ \index{empty-stkp-deposit-adp}
\=\+($\neg$ {\rm{empty-stkp}}\,({\it{sp\/}}, {\it{segment\/}})\index{empty-stkp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\it{sp\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp})\index{empty-stkp})\-
\end{tabbing}

\begin{verbatim}; Under what conditions is a pushed stack empty?  What does empty
; mean?  It means there is no room left.  When is there no room?  When
; the stack pointer is one less than the length of the stack area.
; A push moves the stack pointer down -- provided the pointer is not
; zero (i.e., provided the stack is not already full).  So, summarizing,
; a pushed stack pointer is non-empty provided it wasn't full before
; the push.  In addition, it had better be a legal stack pointer
; initially or else the push could just bring it down onto the
; upper limit!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-empty-stkp-push \\ \index{not-empty-stkp-push}
\=\+({\rm{adpp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}, {\it{segment\/}})\index{adpp} $\wedge$ ({\rm{adp-offset}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})\index{adp-offset} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{sub-adp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}, $1\;+$ {\it{n\/}})\index{sub-adp})\index{tag}, {\it{segment\/}})\index{empty-stkp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable empty-stkp.

\addvspace{18pt}

\begin{verbatim}; The following lemma temporarily opens up adpp by backchaining into
; its defn.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adpp-backchainer \\ \index{adpp-backchainer}
\=\+(\=\+{\rm{listp}}\,({\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $<$ {\rm{length}}\,({\rm{definiens}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{segment\/}})\index{definiens})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\it{x\/}}, {\it{segment\/}})\index{adpp}\-
\end{tabbing}




\begin{verbatim}; We need to

\end{verbatim}
\noindent{\sc Event}:   Disable i-objectp.

\addvspace{18pt}

\begin{verbatim}; we will deduce what we have to from it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  unlabel-tag \\ \index{unlabel-tag}
\=\+{\rm{unlabel}}\,({\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag})\index{unlabel} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{type\/}} $=$ {\tt{'}}{\tt{dl}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\rm{tag}}\,({\it{type\/}}, {\it{obj\/}})\index{tag}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable cddr-tag.

\addvspace{18pt}

\begin{verbatim}; I am now heading for the lemma that states that if x is an r-objectp
; in r then it is an i-objectp in an appropriately corresponding i state.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-implies-adpp \\ \index{same-signature-implies-adpp}
\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$({\rm{adpp}}\,({\it{x\/}}, {\it{segment1\/}})\index{adpp} $=$ {\rm{adpp}}\,({\it{x\/}}, {\it{segment2\/}})\index{adpp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-program-bodyp-program-body-any \\ \index{r-program-bodyp-program-body-an!y}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\index{r-program-bodyp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-cdr-icompile-program \\ \index{listp-cdr-icompile-program}
{\rm{listp}}\,({\rm{cdr}}\,({\rm{icompile-program}}\,({\it{program\/}})\index{icompile-program}))
\end{tabbing}

\begin{verbatim}; So here is the r-objectp -> i-objectp lemma.

; The proper-r-statep below is required to show that the labels show up
; properly in the i-level code.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-objectp-implies-i-objectp \\ \index{r-objectp-implies-i-objectp}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{i-sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{i-usr-data-segment\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{i-objectp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{i-state}}\,(\=\+{\it{i-pc\/}}, \\ 
{\it{i-cfp\/}}, \\ 
{\it{i-csp\/}}, \\ 
{\it{i-tsp\/}}, \\ 
{\it{i-x\/}}, \\ 
{\it{i-y\/}}, \\ 
{\it{i-c-flg\/}}, \\ 
{\it{i-v-flg\/}}, \\ 
{\it{i-n-flg\/}}, \\ 
{\it{i-z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\it{i-usr-data-segment\/}}, \\ 
{\it{i-sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\it{i-psw\/}})\-\index{i-state})\-\index{i-objectp}\-
\end{tabbing}
                
\begin{tabbing}{\sc Theorem}:  same-signature-reflexive \\ \index{same-signature-reflexive}
{\rm{same-signature}}\,({\it{segment\/}}, {\it{segment\/}})\index{same-signature}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-put-assoc \\ \index{same-signature-put-assoc}
\=\+(\=\+{\rm{litatom}}\,({\it{name\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{definiens}}\,({\it{name\/}}, {\it{segment2\/}})\index{definiens})\index{length} $=$ {\rm{length}}\,({\it{val\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{segment2\/}})\index{put-assoc})\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{verbatim}; The litatom hyp in the same-signature lemma will be relieved, I think,
; by:

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{proper-alistp} \\  
\=\+{\rm{proper-alistp}}\,({\it{alist\/}})\index{proper-alistp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{alist\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{listp}}\,({\rm{car}}\,({\it{alist\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{caar}}\,({\it{alist\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-alistp}}\,({\rm{cdr}}\,({\it{alist\/}}))\index{proper-alistp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  litatom-adp-name \\ \index{litatom-adp-name}
\=\+({\rm{definedp}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}, {\it{segment\/}})\index{definedp} $\wedge$ {\rm{proper-alistp}}\,({\it{segment\/}})\index{proper-alistp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{litatom}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name})\-
\end{tabbing}

\begin{verbatim}; The lemma above has nothing to do with adp-name -- it could be generalized
; to an arbitrary name.  But it has been so instantiated to be useful.

; To establish the proper-alistp above we'll need something like the following
; two lemmas.  The first dives past all the modifications to the 
; usr-data-segment and the second (or third) backchains into the
; proper-r-statep.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-alistp-put-assoc \\ \index{proper-alistp-put-assoc}
{\rm{proper-alistp}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc})\index{proper-alistp} $=$ {\rm{proper-alistp}}\,({\it{alist\/}})\index{proper-alistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-usr-data-segmentp-implies-proper-alistp \\ \index{proper-r-usr-data-segmentp-implie!s-proper-alistp}
{\rm{proper-r-usr-data-segmentp}}\,({\it{segment\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp} $\rightarrow$ {\rm{proper-alistp}}\,({\it{segment\/}})\index{proper-alistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-alistp-r-usr-data-segment \\ \index{proper-alistp-r-usr-data-segment}
{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\rightarrow$ {\rm{proper-alistp}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{proper-alistp}
\end{tabbing}

\begin{verbatim}; The r-objectp hyp of the i-objectp lemma will often be relieved by the
; next lemma when fetching from the r-usr-data-segment.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-objectp-get-all-r-usr-data-objectps \\ \index{r-objectp-get-all-r-usr-data-ob!jectps}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\wedge$ {\rm{all-r-usr-data-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-usr-data-objectps}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-objectp}}\,({\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get}, {\it{r\/}})\index{r-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-r-usr-data-objectps-cdr-assoc \\ \index{all-r-usr-data-objectps-cdr-ass!oc}
\=\+({\rm{proper-r-usr-data-segmentp}}\,({\it{segment\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})), {\it{r\/}})\index{all-r-usr-data-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-objectp-fetch-adp-r-usr-data-segment \\ \index{r-objectp-fetch-adp-r-usr-data-!segment}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{adpp}}\,({\it{adp\/}}, {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{adpp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-objectp}}\,({\rm{fetch-adp}}\,({\it{adp\/}}, {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{fetch-adp}, {\it{r\/}})\index{r-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-objectp-opener \\ \index{r-objectp-opener}
\=\+(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{small-naturalp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{int}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{small-integerp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bitv}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{bit-vectorp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) $\wedge$ {\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{adpp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{pcpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{pcpp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{subr}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp})\-)\-)\-\-
\end{tabbing}




\begin{tabbing}{\sc Theorem}:  i-objectp-tag \\ \index{i-objectp-tag}
\=\+({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{small-naturalp}}\,({\it{x\/}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-naturalp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{int}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{small-integerp}}\,({\it{x\/}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{small-integerp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{bitv}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{bit-vectorp}}\,({\it{x\/}}, {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size})\index{bit-vectorp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{bool}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{booleanp}}\,({\it{x\/}})\index{booleanp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{adpp}}\,({\it{x\/}}, {\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{adpp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{icode-labelp}}\,({\it{x\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{icode-labelp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{subr}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{adpp}}\,({\rm{cons}}\,({\it{x\/}}, {\tt{0}}), {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{adpp}}\,({\it{x\/}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-objectp}}\,({\rm{tag}}\,({\tt{'}}{\tt{ipc}}, {\it{x\/}})\index{tag}, {\it{i\/}})\index{i-objectp} $=$ {\rm{adpp}}\,({\it{x\/}}, {\rm{i-prog-segment}}\,({\it{i\/}})\index{i-prog-segment})\index{adpp})\-
\end{tabbing}

\begin{verbatim}; Now we begin the one way correspondence proofs for each instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  no-op-one-way-correspondence-r-i \\ \index{no-op-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-no-op-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-no-op-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-no-op-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-global-one-way-correspondence-r-i \\ \index{push-global-one-way-corresponde!nce-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-push-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-push-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-push-global-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-find-position-of-var \\ \index{lessp-find-position-of-var}
{\rm{length}}\,({\it{x\/}})\index{length} $\not<$ {\rm{find-position-of-var}}\,({\it{name\/}}, {\it{x\/}})\index{find-position-of-var}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-length-icompile-program \\ \index{lessp-length-icompile-program}
\=\+({\it{prog\/}} $\in$ {\it{progs\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{segment-length}}\,({\rm{icompile}}\,({\it{progs\/}})\index{icompile})\index{segment-length} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{icompile-program}}\,({\it{prog\/}})\index{icompile-program}))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  times-add1\{gen\} \\ \index{times-add1\{gen\}}
({\it{x\/}} $*$ ($1\;+$ {\it{y\/}})) $=$ ({\it{x\/}} $+$ ({\it{x\/}} $*$ {\it{y\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-strip-cars \\ \index{length-strip-cars}
{\rm{length}}\,({\rm{strip-cars}}\,({\it{x\/}}))\index{length} $=$ {\rm{length}}\,({\it{x\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-length-local-vars \\ \index{lessp-length-local-vars}
{\rm{length}}\,({\rm{local-vars}}\,({\it{d\/}})\index{local-vars})\index{length} $<$ {\rm{length}}\,({\rm{generate-prelude}}\,({\it{d\/}})\index{generate-prelude})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-find-position-of-var-exp \\ \index{lessp-find-position-of-var-exp}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-position-of-var}}\,(\=\+{\it{var\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls}))\-)\-\index{find-position-of-var} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-local-one-way-correspondence-r-i \\ \index{push-local-one-way-corresponden!ce-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-push-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-push-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-push-local-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addp-1-folded \\ \index{add-addp-1-folded}
\=\+{\rm{cons}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, $1\;+$ {\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}) \\ 
$=$$\;\;\;\;${\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}, {\tt{1}})\index{add-adp}\-
\end{tabbing}
                  
\begin{tabbing}{\sc Theorem}:  unlabel-non-dl \\ \index{unlabel-non-dl}
({\rm{car}}\,({\it{x\/}}) $\not=$ {\tt{'}}{\tt{dl}}) $\rightarrow$ ({\rm{unlabel}}\,({\it{x\/}})\index{unlabel} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-program-bodyp-contains-r-instructionps \\ \index{r-program-bodyp-contains-r-inst!ructionps}
({\rm{r-program-bodyp}}\,({\it{lst\/}})\index{r-program-bodyp} $\wedge$ ({\it{ins\/}} $\in$ {\it{lst\/}})) $\rightarrow$ {\rm{r-instructionp}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel})\index{r-instructionp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-prog-segmentp-contains-r-program-bodyps \\ \index{r-prog-segmentp-contains-r-prog!ram-bodyps}
\=\+({\rm{r-prog-segmentp}}\,({\it{segment\/}})\index{r-prog-segmentp} $\wedge$ ({\it{prog\/}} $\in$ {\it{segment\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-program-bodyp}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{r-program-bodyp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-get \\ \index{member-get}
({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get} $\in$ {\it{lst\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-r-instructionp \\ \index{proper-r-statep-implies-r-instr!uctionp}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-instructionp}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\it{n\/}}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\-\index{get})\index{unlabel})\index{r-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pcpp-cons \\ \index{pcpp-cons}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{pcpp}}\,({\rm{cons}}\,({\it{name\/}}, {\it{n\/}}), {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{pcpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-r-objectp \\ \index{not-r-objectp}
($\neg$ {\rm{listp}}\,({\it{x\/}})) $\rightarrow$ ($\neg$ {\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-constant-one-way-correspondence-r-i \\ \index{push-constant-one-way-correspon!dence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-push-constant-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-push-constant-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-objectp-cons-sys-addr \\ \index{i-objectp-cons-sys-addr}
{\rm{i-objectp}}\,({\rm{list}}\,({\tt{'}}{\tt{sys-addr}}, {\it{adp\/}}), {\it{i\/}})\index{i-objectp} $=$ {\rm{adpp}}\,({\it{adp\/}}, {\rm{i-sys-data-segment}}\,({\it{i\/}})\index{i-sys-data-segment})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-adp-sub-adp \\ \index{sub-adp-sub-adp}
{\rm{sub-adp}}\,({\rm{sub-adp}}\,({\it{adp\/}}, {\it{i\/}})\index{sub-adp}, {\it{j\/}})\index{sub-adp} $=$ {\rm{sub-adp}}\,({\it{adp\/}}, {\it{i\/}} $+$ {\it{j\/}})\index{sub-adp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-sub-adp-cons-adp-name \\ \index{equal-sub-adp-cons-adp-name}
({\rm{sub-adp}}\,({\it{x\/}}, {\it{n\/}})\index{sub-adp} $=$ {\rm{cons}}\,({\rm{adp-name}}\,({\it{x\/}})\index{adp-name}, {\it{y\/}})) $=$ (({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $-$ {\it{n\/}}) $=$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-assoc-deposit-adp \\ \index{length-cdr-assoc-deposit-adp}
\=\+{\rm{adpp}}\,({\it{adp\/}}, {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-ctrl-stk-free-size-one-way-correspondence-r-i \\ \index{push-ctrl-stk-free-size-one-way!-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-push-ctrl-stk-free-size-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-push-ctrl-stk-free-size-step-clock}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-ctrl-stk-free-size-step-!clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-free-size-one-way-correspondence-r-i \\ \index{push-temp-stk-free-size-one-way!-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-push-temp-stk-free-size-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-free-size-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-push-temp-stk-free-size-step-clock}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-free-size-step-!clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-difference \\ \index{sub1-difference}
(({\it{x\/}} $-$ {\it{y\/}}) $-\;1$) $=$ (({\it{x\/}} $-\;1$) $-$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-length-assoc-segment-length \\ \index{lessp-length-assoc-segment-lengt!h}
{\rm{segment-length}}\,({\it{segment\/}})\index{segment-length} $\not<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-length-assoc-tstk-exp-2-word-size \\ \index{lessp-length-assoc-tstk-exp-2-w!ord-size}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length} \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-index-one-way-correspondence-r-i \\ \index{push-temp-stk-index-one-way-cor!respondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-push-temp-stk-index-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-index-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-push-temp-stk-index-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-index-step-cloc!k}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable sub1-difference.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  pop-one-way-correspondence-r-i \\ \index{pop-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pop-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pop-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; r-pop*-okp just checks that tsp + n is a stack address, but the
; i machine needs to know n is a small-naturalp.  The following
; lemma establishes that.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adpp-implies-lessp-exp-2-word-size \\ \index{adpp-implies-lessp-exp-2-word-si!ze}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{adpp}}\,({\rm{add-adp}}\,({\it{a\/}}, {\it{n\/}})\index{add-adp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp}) \\ 
$\rightarrow$$\;\;\;\;$(({\it{n\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp}) $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop*-one-way-correspondence-r-i \\ \index{pop*-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pop*-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pop*-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pop*-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plus-add1-first \\ \index{plus-add1-first}
(($1\;+$ {\it{i\/}}) $+$ {\it{j\/}}) $=$ ($1\;+$ ({\it{i\/}} $+$ {\it{j\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-one-way-correspondence-r-i \\ \index{popn-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-popn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-popn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-popn-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-local-one-way-correspondence-r-i \\ \index{pop-local-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pop-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pop-local-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-global-one-way-correspondence-r-i \\ \index{pop-global-one-way-corresponden!ce-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pop-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pop-global-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable get-add1-cons.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-0 \\ \index{get-0}
{\rm{get}}\,({\tt{0}}, {\it{lst\/}})\index{get} $=$ {\rm{car}}\,({\it{lst\/}})
\end{tabbing}
           
\begin{tabbing}{\sc Theorem}:  set-local-one-way-correspondence-r-i \\ \index{set-local-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-set-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-set-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-set-local-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-global-one-way-correspondence-r-i \\ \index{set-global-one-way-corresponden!ce-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-set-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-set-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-set-global-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma really just opens up r->i_pc in the
; special case that arises for the jump instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-opener-in-jump-case \\ \index{r-$>$i\_pc-opener-in-jump-case}
\=\+{\rm{r-$>$i\_pc}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
{\rm{find-label}}\,({\it{lab\/}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\index{find-label})\-)\-\index{tag}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{r-$>$i\_pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
{\rm{find-label}}\,(\=\+{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
{\rm{find-label}}\,(\=\+{\it{lab\/}}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{find-label})\-, \\ 
{\rm{cdr}}\,({\rm{icompile-program}}\,({\rm{definition}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{icompile-program}))\-\index{find-label})\-)\-\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-one-way-correspondence-r-i \\ \index{jump-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-jump-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pushj-one-way-correspondence-r-i \\ \index{pushj-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pushj-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pushj-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pushj-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-opener-in-popj-case \\ \index{r-$>$i\_pc-opener-in-popj-case}
\=\+{\rm{r-$>$i\_pc}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp})\index{area-name}, \\ 
{\rm{find-label}}\,(\=\+{\rm{untag}}\,({\rm{fetch-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp})\index{untag}, \\ 
{\rm{cdr}}\,({\rm{icompile-program}}\,({\rm{definition}}\,(\=\+{\rm{area-name}}\,({\rm{fetch-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp})\index{area-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{definition})\index{icompile-program}))\-\index{find-label})\-)\-\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popj-one-way-correspondence-r-i \\ \index{popj-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-popj-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-popj-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-popj-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-one-way-correspondence-r-i \\ \index{add-addr-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add-addr-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-one-way-correspondence-r-i \\ \index{sub-addr-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub-addr-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; In all of the xor instructions we should be careful not to
; expand the xors.  This also holds for the other boolean
; instructions.  It especially holds for any instruction involving
; the hideous:

\end{verbatim}
\noindent{\sc Event}:   Disable xor-xxx.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i-usr-data-typep-is-r-usr-data-typep \\ \index{i-usr-data-typep-is-r-usr-data-t!ypep}
{\rm{i-usr-data-typep}}\,({\it{x\/}})\index{i-usr-data-typep} $=$ {\rm{r-usr-data-typep}}\,({\it{x\/}})\index{r-usr-data-typep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-cdr-assoc-deposit-adp \\ \index{listp-cdr-assoc-deposit-adp}
\=\+{\rm{adpp}}\,({\it{adp\/}}, {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp}))) \\ 
$=$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-objectp-bool \\ \index{i-objectp-bool}
{\rm{i-objectp}}\,({\rm{bool}}\,({\it{x\/}})\index{bool}, {\it{s\/}})\index{i-objectp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  type-bool \\ \index{type-bool}
{\rm{type}}\,({\rm{bool}}\,({\it{x\/}})\index{bool})\index{type} $=$ {\tt{'}}{\tt{bool}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-bool \\ \index{cddr-bool}
{\rm{cddr}}\,({\rm{bool}}\,({\it{x\/}})\index{bool}) $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  booleanp-untag-bool \\ \index{booleanp-untag-bool}
{\rm{booleanp}}\,({\rm{untag}}\,({\rm{bool}}\,({\it{x\/}})\index{bool})\index{untag})\index{booleanp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-untag-bool-t \\ \index{equal-untag-bool-t}
\=\+({\rm{untag}}\,({\rm{bool}}\,({\it{x\/}})\index{bool})\index{untag} $=$ {\tt{'}}{\tt{t}}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{x\/}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-untag-bool-f \\ \index{equal-untag-bool-f}
({\rm{untag}}\,({\rm{bool}}\,({\it{x\/}})\index{bool})\index{untag} $=$ {\tt{'}}{\tt{f}}) $=$ ($\neg$ {\it{x\/}})
\end{tabbing}


\noindent{\sc Event}:   Disable bool.

\addvspace{18pt}

\begin{verbatim}; Despite the disabling of bool above, we still sometimes
; see '(bool t) because we write it explicitly in some
; definitions and assembly code.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-objectp-quote-bool \\ \index{i-objectp-quote-bool}
{\rm{i-objectp}}\,({\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}, {\it{s\/}})\index{i-objectp} $\wedge$ {\rm{i-objectp}}\,({\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, {\it{s\/}})\index{i-objectp}
\end{tabbing}
              

\begin{verbatim}; The following lemma has nothing to do with fetch-adp
; but is so instantiated to control its consideration.

; We first prove the general version.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-objectps-of-same-type-equal-iff-untags-equal \\ \index{r-objectps-of-same-type-equal-i!ff-untags-equal}
\=\+({\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} $\wedge$ {\rm{r-objectp}}\,({\it{y\/}}, {\it{r\/}})\index{r-objectp} $\wedge$ ({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\rm{type}}\,({\it{y\/}})\index{type})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{untag}}\,({\it{x\/}})\index{untag} $=$ {\rm{untag}}\,({\it{y\/}})\index{untag}) $=$ ({\it{x\/}} $=$ {\it{y\/}}))\-
\end{tabbing}

\begin{verbatim}; and then instantiate it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-objectps-of-same-type-equal-iff-untags-equal-rewrite \\ \index{r-objectps-of-same-type-equal-i!ff-untags-equal-rewrite}
\=\+(\=\+{\rm{r-objectp}}\,({\rm{fetch-adp}}\,({\it{adp1\/}}, {\it{segment1\/}})\index{fetch-adp}, {\it{r\/}})\index{r-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp}}\,({\rm{fetch-adp}}\,({\it{adp2\/}}, {\it{segment2\/}})\index{fetch-adp}, {\it{r\/}})\index{r-objectp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch-adp}}\,({\it{adp1\/}}, {\it{segment1\/}})\index{fetch-adp})\index{type} $=$ {\rm{type}}\,({\rm{fetch-adp}}\,({\it{adp2\/}}, {\it{segment2\/}})\index{fetch-adp})\index{type}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{untag}}\,({\rm{fetch-adp}}\,({\it{adp1\/}}, {\it{segment1\/}})\index{fetch-adp})\index{untag} $=$ {\rm{untag}}\,({\rm{fetch-adp}}\,({\it{adp2\/}}, {\it{segment2\/}})\index{fetch-adp})\index{untag}) \\ 
$=$$\;\;\;\;$({\rm{fetch-adp}}\,({\it{adp1\/}}, {\it{segment1\/}})\index{fetch-adp} $=$ {\rm{fetch-adp}}\,({\it{adp2\/}}, {\it{segment2\/}})\index{fetch-adp}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  eq-one-way-correspondence-r-i \\ \index{eq-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-eq-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-eq-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-eq-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-addr-one-way-correspondence-r-i \\ \index{lt-addr-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-lt-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-lt-addr-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; I might need a more general version of the following lemma.
; But right now I need this and the more general versions I have
; thought of are messy because they introduce cases on the
; relative magnitudes of the increment, decrement, and initial
; offset.

; The hypothesis below is weaker than (adpp adp segment) because
; that stronger hyp has the free variable segment in it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  sub1-adp-add1-adp \\ \index{sub1-adp-add1-adp}
\=\+({\rm{listp}}\,({\it{adp\/}}) $\wedge$ ({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{sub-adp}}\,({\rm{add-adp}}\,({\it{adp\/}}, {\tt{1}})\index{add-adp}, {\tt{1}})\index{sub-adp} $=$ {\it{adp\/}})\-
\end{tabbing}

\begin{verbatim}; The following lemma has free vars in the hyp that cannot be
; relieved in the actual application needed, so I use lemma class
; nil and instantiate it,  backchaining on into the proper-r-statep.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  tag-untag \\ \index{tag-untag}
({\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp} $\wedge$ ({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\it{type\/}})) $\rightarrow$ ({\rm{tag}}\,({\it{type\/}}, {\rm{untag}}\,({\it{x\/}})\index{untag})\index{tag} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  tag-untag-r-tsp \\ \index{tag-untag-r-tsp}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag})\index{tag} $=$ {\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-one-way-correspondence-r-i \\ \index{fetch-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-fetch-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-fetch-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-one-way-correspondence-r-i \\ \index{deposit-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-deposit-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-deposit-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-temp-stk-one-way-correspondence-r-i \\ \index{fetch-temp-stk-one-way-correspo!ndence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-fetch-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-fetch-temp-stk-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-temp-stk-one-way-correspondence-r-i \\ \index{deposit-temp-stk-one-way-corresp!ondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-deposit-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-deposit-temp-stk-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; Here is the second of the promised sub-adp-add-adp lemmas.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  sub1-adp-add2-adp \\ \index{sub1-adp-add2-adp}
\=\+({\rm{listp}}\,({\it{adp\/}}) $\wedge$ ({\rm{adp-offset}}\,({\it{adp\/}})\index{adp-offset} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{sub-adp}}\,({\rm{add-adp}}\,({\it{adp\/}}, {\tt{2}})\index{add-adp}, {\tt{1}})\index{sub-adp} $=$ {\rm{add-adp}}\,({\it{adp\/}}, {\tt{1}})\index{add-adp})\-
\end{tabbing}

\begin{verbatim}; The following simple identity needs the hypothesis that x is an integerp.
; But since we have that it is actually a small-integerp, I'll use that
; and save the trouble of backchaining through small-integerp implies
; integerp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  iplus-0\{special\} \\ \index{iplus-0\{special\}}
{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} $\rightarrow$ ({\rm{iplus}}\,({\tt{0}}, {\it{x\/}})\index{iplus} $=$ {\it{x\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable commutativity-of-iplus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  small-integerp-fix-small-integer-plus-case \\ \index{small-integerp-fix-small-intege!r-plus-case}
\=\+({\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} $\wedge$ {\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{fix-small-integer}}\,(\=\+{\rm{iplus}}\,({\rm{bool-to-nat}}\,({\it{c\/}})\index{bool-to-nat}, {\rm{iplus}}\,({\it{x\/}}, {\it{y\/}})\index{iplus})\index{iplus}, \\ 
{\it{word-size\/}})\-\index{fix-small-integer}, \\ 
{\it{word-size\/}})\-\index{small-integerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-integerp-fix-small-integer-difference-case \\ \index{small-integerp-fix-small-intege!r-difference-case}
\=\+({\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} $\wedge$ {\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\it{x\/}}, \\ 
{\rm{iplus}}\,({\it{y\/}}, {\rm{bool-to-nat}}\,({\it{c\/}})\index{bool-to-nat})\index{iplus})\-\index{idifference}, \\ 
{\it{word-size\/}})\-\index{fix-small-integer}, \\ 
{\it{word-size\/}})\-\index{small-integerp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable fix-small-integer.

\addvspace{18pt}

\noindent{\sc Event}:   Disable bool-to-nat.

\addvspace{18pt}

\noindent{\sc Event}:   Disable iplus.

\addvspace{18pt}

\noindent{\sc Event}:   Disable idifference.

\addvspace{18pt}

\noindent{\sc Event}:   Disable ilessp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable integerp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable small-integerp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  add-int-one-way-correspondence-r-i \\ \index{add-int-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add-int-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  add-int-with-carry-one-way-correspondence-r-i \\ \index{add-int-with-carry-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add-int-with-carry-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-int-one-way-correspondence-r-i \\ \index{add1-int-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add1-int-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-one-way-correspondence-r-i \\ \index{sub-int-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub-int-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-with-carry-one-way-correspondence-r-i \\ \index{sub-int-with-carry-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub-int-with-carry-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-int-one-way-correspondence-r-i \\ \index{sub1-int-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub1-int-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  neg-int-one-way-correspondence-r-i \\ \index{neg-int-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-neg-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-neg-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-neg-int-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable xor-bool.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-empty-stkp-implies-adpp-pop \\ \index{not-empty-stkp-implies-adpp-pop}
\=\+({\rm{adpp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}, {\it{segment\/}})\index{adpp} $\wedge$ ($\neg$ {\rm{empty-stkp}}\,({\it{sp\/}}, {\it{segment\/}})\index{empty-stkp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{add-adp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}, {\tt{1}})\index{add-adp}, {\it{segment\/}})\index{adpp}\-
\end{tabbing}

\begin{verbatim}; We are about to go into a really silly little section.  We need to
; know that the word-size is not 0.  To get that, we
; use R-LOADABLEP and the fact that the sys-data-segment is
; non-empty.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-loadablep-and-cstk-implies-not-zerop-r-word-size \\ \index{r-loadablep-and-cstk-implies-not!-zerop-r-word-size}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size} $\not\simeq {\tt{0}}$)\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-r-loadablep-and-cstk \\ \index{proper-r-statep-implies-r-loada!blep-and-cstk}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-loadablep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{r-loadablep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-lessp-0-r-word-size \\ \index{proper-r-statep-implies-lessp-0!-r-word-size}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(({\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size} $\in\;${\bf{N}}${}$) $\wedge$ ({\tt{0}} $<$ {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}))\-
\end{tabbing}


\begin{verbatim}; We now prove the key fact:  (ilessp x y) is equivalent to
; the xor of the v-flg and the n-flg.  Because of case splits
; caused by the paths through the icode-lt-int code, we need to
; prove this fact in 4 different versions, as though xor had
; opened up:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  ilessp-is-xor-case1 \\ \index{ilessp-is-xor-case1}
\=\+(\=\+{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{fix-small-integer}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{fix-small-integer}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ilessp}}\,({\it{x\/}}, {\it{y\/}})\index{ilessp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ilessp-is-xor-case2 \\ \index{ilessp-is-xor-case2}
\=\+(\=\+{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{small-integerp}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\wedge$$\;\;\;\;${\rm{negativep}}\,({\rm{fix-small-integer}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{fix-small-integer}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{ilessp}}\,({\it{x\/}}, {\it{y\/}})\index{ilessp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ilessp-is-xor-case3 \\ \index{ilessp-is-xor-case3}
\=\+(\=\+{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{fix-small-integer}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{fix-small-integer})))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{ilessp}}\,({\it{x\/}}, {\it{y\/}})\index{ilessp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ilessp-is-xor-case4 \\ \index{ilessp-is-xor-case4}
\=\+(\=\+{\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\it{y\/}}, {\it{word-size\/}})\index{small-integerp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{small-integerp}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{small-integerp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{fix-small-integer}}\,({\rm{idifference}}\,({\it{x\/}}, {\it{y\/}})\index{idifference}, {\it{word-size\/}})\index{fix-small-integer})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ilessp}}\,({\it{x\/}}, {\it{y\/}})\index{ilessp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-int-one-way-correspondence-r-i \\ \index{lt-int-one-way-correspondence-r!-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-lt-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-lt-int-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  int-to-nat-one-way-correspondence-r-i \\ \index{int-to-nat-one-way-corresponden!ce-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-int-to-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-int-to-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-int-to-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-one-way-correspondence-r-i \\ \index{add-nat-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-remainder\{special\} \\ \index{lessp-remainder\{special\}}
({\it{y\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ (({\it{x\/}} ${}${\bf{mod}}${}$ {\it{y\/}}) $<$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-with-carry-one-way-correspondence-r-i \\ \index{add-nat-with-carry-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add-nat-with-carry-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-nat-one-way-correspondence-r-i \\ \index{add1-nat-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-add1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-add1-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-one-way-correspondence-r-i \\ \index{sub-nat-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-with-carry-one-way-correspondence-r-i \\ \index{sub-nat-with-carry-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub-nat-with-carry-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-nat-one-way-correspondence-r-i \\ \index{sub1-nat-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-sub1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-sub1-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-nat-one-way-correspondence-r-i \\ \index{lt-nat-one-way-correspondence-r!-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-lt-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-lt-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-one-way-correspondence-r-i \\ \index{mult2-nat-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-mult2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-mult2-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-with-carry-out-one-way-correspondence-r-i \\ \index{mult2-nat-with-carry-out-one-wa!y-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-mult2-nat-with-carry-out-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-mult2-nat-with-carry-out-step-clock}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-with-carry-out-step!-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-quotient\{special\} \\ \index{lessp-quotient\{special\}}
{\it{x\/}} $\not<$ ({\it{x\/}} $\div$ {\it{y\/}})
\end{tabbing}

\begin{verbatim}; The following lemma is just an instance of the much prettier fact
; that (remainder x 2) is 0 or 1.  But I couldn't think of a way to
; state that fact without causing a lot of backchaining.  So I'll
; just do it this way.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  remainder-by-2-not-1-lemma \\ \index{remainder-by-2-not-1-lemma}
\=\+(({\rm{untag}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp})\index{untag} ${}${\bf{mod}}${}$ {\tt{2}}) $\not=$ {\tt{1}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{untag}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp})\index{untag} ${}${\bf{mod}}${}$ {\tt{2}}) \\ 
$=$$\;\;\;\;${\tt{0}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  exp-2-at-least-2 \\ \index{exp-2-at-least-2}
({\it{i\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ({\tt{1}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{i\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-objectp-nat-0 \\ \index{i-objectp-nat-0}
({\tt{0}} $<$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}) $\rightarrow$ {\rm{i-objectp}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}, {\it{i\/}})\index{i-objectp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-objectp-nat-1 \\ \index{i-objectp-nat-1}
({\tt{0}} $<$ {\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size}) $\rightarrow$ {\rm{i-objectp}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}, {\it{i\/}})\index{i-objectp}
\end{tabbing}

\begin{verbatim}; Thus ends the silly little section.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  div2-nat-one-way-correspondence-r-i \\ \index{div2-nat-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-div2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-div2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-div2-nat-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bitv-one-way-correspondence-r-i \\ \index{or-bitv-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-or-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-or-bitv-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bitv-one-way-correspondence-r-i \\ \index{and-bitv-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-and-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-and-bitv-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bitv-one-way-correspondence-r-i \\ \index{not-bitv-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-not-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-not-bitv-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bitv-one-way-correspondence-r-i \\ \index{xor-bitv-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-xor-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-xor-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-xor-bitv-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rsh-bitv-one-way-correspondence-r-i \\ \index{rsh-bitv-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-rsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-rsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-rsh-bitv-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-bitv-one-way-correspondence-r-i \\ \index{lsh-bitv-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-lsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-lsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-lsh-bitv-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable or-bool.

\addvspace{18pt}

\noindent{\sc Event}:   Disable and-bool.

\addvspace{18pt}

\noindent{\sc Event}:   Disable not-bool.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  or-bool-one-way-correspondence-r-i \\ \index{or-bool-one-way-correspondence-!r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-or-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-or-bool-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bool-one-way-correspondence-r-i \\ \index{and-bool-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-and-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-and-bool-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bool-t-is-not-bool \\ \index{xor-bool-t-is-not-bool}
{\rm{xor-bool}}\,({\it{x\/}}, {\tt{'}}{\tt{t}})\index{xor-bool} $=$ {\rm{not-bool}}\,({\it{x\/}})\index{not-bool}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bool-one-way-correspondence-r-i \\ \index{not-bool-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-not-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-not-bool-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-full-one-way-correspondence-r-i \\ \index{jump-if-temp-stk-full-one-way-c!orrespondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-jump-if-temp-stk-full-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-jump-if-temp-stk-full-step-clock}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-full-step-cl!ock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-empty-one-way-correspondence-r-i \\ \index{jump-if-temp-stk-empty-one-way-!correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-jump-if-temp-stk-empty-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-jump-if-temp-stk-empty-step-clock}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-empty-step-c!lock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-nat-and-jump-one-way-correspondence-r-i \\ \index{test-nat-and-jump-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-test-nat-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-test-nat-and-jump-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma recognizes a certain opened up
; r->i_pc and folds it back together.  This is needed
; in test-int-and-jump.  

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-folder-test-int-and-jump-case \\ \index{r-$>$i\_pc-folder-test-int-and-!jump-case}
\=\+{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{find-label}}\,(\=\+{\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}, {\tt{1}})\index{add-adp}, \\ 
{\rm{cdr}}\,({\rm{icompile-program}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{icompile-program}))\-\index{find-label})\- \\ 
$=$$\;\;\;\;${\rm{untag}}\,({\rm{r-$>$i\_pc}}\,({\rm{add1-addr}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{add1-addr}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc})\index{untag}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-integerp-subtypes \\ \index{small-integerp-subtypes}
\=\+({\rm{small-integerp}}\,({\rm{untag}}\,({\it{obj\/}})\index{untag}, {\it{word-size\/}})\index{small-integerp} $\wedge$ ({\rm{untag}}\,({\it{obj\/}})\index{untag} $\not\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;${\rm{negativep}}\,({\rm{untag}}\,({\it{obj\/}})\index{untag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-int-and-jump-one-way-correspondence-r-i \\ \index{test-int-and-jump-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-test-int-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-test-int-and-jump-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma makes the arbitrary convention that we'll represent
; all comparisions on Booleans as comparisons with 'F.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  booleanp-subtypes \\ \index{booleanp-subtypes}
{\rm{booleanp}}\,({\rm{untag}}\,({\it{obj\/}})\index{untag})\index{booleanp} $\rightarrow$ (({\rm{untag}}\,({\it{obj\/}})\index{untag} $=$ {\tt{'}}{\tt{t}}) $=$ ({\rm{untag}}\,({\it{obj\/}})\index{untag} $\not=$ {\tt{'}}{\tt{f}}))
\end{tabbing}

\begin{verbatim}; Now we'll pay for that decision:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-bool-of-non-f \\ \index{not-bool-of-non-f}
({\rm{untag}}\,({\it{obj\/}})\index{untag} $\not=$ {\tt{'}}{\tt{f}}) $\rightarrow$ ({\rm{not-bool}}\,({\rm{untag}}\,({\it{obj\/}})\index{untag})\index{not-bool} $=$ {\tt{'}}{\tt{f}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bool-and-jump-one-way-correspondence-r-i \\ \index{test-bool-and-jump-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-test-bool-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-test-bool-and-jump-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bitv-and-jump-one-way-correspondence-r-i \\ \index{test-bitv-and-jump-one-way-corre!spondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-test-bitv-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-test-bitv-and-jump-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-locn-one-way-correspondence-r-i \\ \index{pop-locn-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pop-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pop-locn-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locn-one-way-correspondence-r-i \\ \index{locn-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-locn-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; The code generated for the jump-case instruction pops a number, n,
; off the stack and doubles it, as part of the computation of the
; index into a jump table.  We must prove that 2n is representable.
; We do it by observing that 2n is less than the number of labels
; supplied in the jump-case, that the number of labels is dominated
; by the length of the icode, that the length of the icode for an instruction
; is dominated by the length of the icompile-program, that the length
; of the program is dominated by the segment-length, and that the
; segment length is representable.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-jump\_*-lst \\ \index{length-jump\_*-lst}
{\rm{length}}\,({\rm{jump\_*-lst}}\,({\it{labs\/}}, {\it{program\/}})\index{jump\_*-lst})\index{length} $=$ ({\tt{2}} $*$ {\rm{length}}\,({\it{labs\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-instruction-is-much-shorter-than-icode \\ \index{jump-case-instruction-is-much-s!horter-than-icode}
\=\+({\rm{car}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\rightarrow$$\;\;\;\;$(({\tt{2}} $*$ {\rm{length}}\,({\rm{cdr}}\,({\rm{unlabel}}\,({\it{ins\/}})\index{unlabel}))\index{length}) $<$ {\rm{length}}\,({\rm{icode}}\,({\it{ins\/}}, {\it{pcn\/}}, {\it{body\/}})\index{icode})\index{length})\-
\end{tabbing}
                  
\begin{tabbing}{\sc Theorem}:  icode-is-shorter-than-icompile-program \\ \index{icode-is-shorter-than-icompile-p!rogram}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{icode}}\,({\rm{get}}\,({\it{n\/}}, {\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{get}, {\it{n\/}}, {\it{prog\/}})\index{icode})\index{length} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program}}\,({\it{prog\/}})\index{icompile-program})\index{length})\-\-
\end{tabbing}

\begin{verbatim}; In the following theorem, the (untag (fetch-adp ...)) could
; be generalized to the variable case-number.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  jump-case-number-is-very-small \\ \index{jump-case-number-is-very-small}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel}) \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{jump-case}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp})\index{untag} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel}))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\tt{2}} $*$ {\rm{untag}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\index{exp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  times-0 \\ \index{times-0}
({\it{z\/}} $\simeq {\tt{0}}$) $\rightarrow$ (({\it{x\/}} $*$ {\it{z\/}}) $=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-2n-jump\_*-lst \\ \index{get-2n-jump\_*-lst}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{labs\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\tt{2}} $*$ {\it{n\/}}, {\rm{jump\_*-lst}}\,({\it{labs\/}}, {\it{prog\/}})\index{jump\_*-lst})\index{get} $=$ {\tt{'}}{\tt{(}}{\tt{jump\_*}}{\tt{)}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-add1-2n-jump\_*-lst \\ \index{get-add1-2n-jump\_*-lst}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{labs\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,($1\;+$ ({\tt{2}} $*$ {\it{n\/}}), {\rm{jump\_*-lst}}\,({\it{labs\/}}, {\it{prog\/}})\index{jump\_*-lst})\index{get} $=$ {\rm{pc}}\,({\rm{get}}\,({\it{n\/}}, {\it{labs\/}})\index{get}, {\it{prog\/}})\index{pc})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-one-way-correspondence-r-i \\ \index{jump-case-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-case-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-jump-case-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-jump-case-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-prelude \\ \index{find-label-prelude}
\=\+({\it{name\/}} $=$ {\rm{name}}\,({\it{program\/}})\index{name}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{'}}{\tt{(}}{\tt{prelude}}{\tt{)}}), {\rm{cdr}}\,({\rm{icompile-program}}\,({\it{program\/}})\index{icompile-program}))\index{find-label} \\ 
$=$$\;\;\;\;${\tt{0}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude-0 \\ \index{fetch-adp-prelude-0}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{0}}), {\rm{icompile}}\,({\it{prog-segment\/}})\index{icompile})\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{dl}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{'}}{\tt{(}}{\tt{prelude}}{\tt{)}}), {\tt{'}}{\tt{(}}{\tt{prelude}}{\tt{)}}, {\tt{'}}{\tt{(}}{\tt{cpush\_cfp}}{\tt{)}})\index{dl})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude-1 \\ \index{fetch-adp-prelude-1}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{1}}), {\rm{icompile}}\,({\it{prog-segment\/}})\index{icompile})\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{move\_cfp\_csp}}{\tt{)}})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  adpp-prelude \\ \index{adpp-prelude}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{generate-prelude}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-segment\/}}))\index{generate-prelude})\index{length} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{cons}}\,({\it{name\/}}, {\it{n\/}}), {\rm{icompile}}\,({\it{prog-segment\/}})\index{icompile})\index{adpp}\-
\end{tabbing}



\noindent{\sc Event}:   Enable length-generate-prelude.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  i*-plus \\ \index{i*-plus}
{\rm{i*}}\,({\it{s\/}}, {\it{i\/}} $+$ {\it{j\/}}, {\it{load-addr\/}})\index{i*} $=$ {\rm{i*}}\,({\rm{i*}}\,({\it{s\/}}, {\it{i\/}}, {\it{load-addr\/}})\index{i*}, {\it{j\/}}, {\it{load-addr\/}})\index{i*}
\end{tabbing}

\begin{verbatim}; The following theorem is just an instance of the i*-plus theorem above.
; However, I don't want the i*-plus theorem as a rewrite rule because I
; don't want the i* expression rewritten until we have done all the work
; we can.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i*-plus-prelude1-prelude2 \\ \index{i*-plus-prelude1-prelude2}
\=\+{\rm{i*}}\,({\it{s\/}}, {\rm{length}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls})\index{length} $+$ {\rm{length}}\,({\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars})\index{length}, {\it{load-addr\/}})\index{i*} \\ 
$=$$\;\;\;\;${\rm{i*}}\,(\=\+{\rm{i*}}\,({\it{s\/}}, {\rm{length}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls})\index{length}, {\it{load-addr\/}})\index{i*}, \\ 
{\rm{length}}\,({\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars})\index{length}, \\ 
{\it{load-addr\/}})\-\index{i*}\-
\end{tabbing}

\begin{verbatim}; We now wish to package up the execution of prelude1.  See i*-prelude1
; below.  To prove it, we must prove the more general i*-prelude1-generalized
 
; We start by establishing what fetch-adp returns on both even and odd
; addresses into the prelude1.  The main theorems of this section are
; fetch-adp-prelude1-even and fetch-adp-prelude1-odd.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  sub-adp-0 \\ \index{sub-adp-0}
{\rm{adpp}}\,({\it{x\/}}, {\it{segment\/}})\index{adpp} $\rightarrow$ ({\rm{sub-adp}}\,({\it{x\/}}, {\tt{0}})\index{sub-adp} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  tag-type-untag \\ \index{tag-type-untag}
(({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\it{type\/}}) $\wedge$ ({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}})) $\rightarrow$ ({\rm{tag}}\,({\it{type\/}}, {\rm{untag}}\,({\it{x\/}})\index{untag})\index{tag} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-sub-adp \\ \index{adpp-sub-adp}
{\rm{adpp}}\,({\it{x\/}}, {\it{segment\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\rm{sub-adp}}\,({\it{x\/}}, {\tt{1}})\index{sub-adp}, {\it{segment\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude1-even-lemma \\ \index{fetch-adp-prelude1-even-lemma}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{rev-temp-var-dcls\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}} $+$ {\it{n\/}}, {\rm{generate-prelude1}}\,({\it{rev-temp-var-dcls\/}})\index{generate-prelude1})\index{cdr-n}) \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude1-even \\ \index{fetch-adp-prelude1-even}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-segment\/}}))\index{temp-var-dcls})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,({\rm{cons}}\,({\it{name\/}}, $1\;+$ ($1\;+$ ({\it{n\/}} $+$ {\it{n\/}}))), {\rm{icompile}}\,({\it{prog-segment\/}})\index{icompile})\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{cpush\_*}}{\tt{)}})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  listp-rev \\ \index{listp-rev}
{\rm{listp}}\,({\rm{rev}}\,({\it{x\/}})\index{rev}) $=$ {\rm{listp}}\,({\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append \\ \index{get-append}
({\it{n\/}} $<$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,({\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} $=$ {\rm{get}}\,({\it{n\/}}, {\it{a\/}})\index{get})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude1-odd-lemma \\ \index{fetch-adp-prelude1-odd-lemma}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{rev-temp-var-dcls\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,($1\;+$ ({\it{n\/}} $+$ {\it{n\/}}), {\rm{generate-prelude1}}\,({\it{rev-temp-var-dcls\/}})\index{generate-prelude1})\index{get} \\ 
$=$$\;\;\;\;${\rm{cadr}}\,({\rm{get}}\,({\it{n\/}}, {\it{rev-temp-var-dcls\/}})\index{get}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude1-odd \\ \index{fetch-adp-prelude1-odd}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-segment\/}}))\index{temp-var-dcls})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{cons}}\,({\it{name\/}}, $1\;+$ ($1\;+$ ($1\;+$ ({\it{n\/}} $+$ {\it{n\/}})))), \\ 
{\rm{icompile}}\,({\it{prog-segment\/}})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{cadr}}\,({\rm{get}}\,({\it{n\/}}, {\rm{rev}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-segment\/}}))\index{temp-var-dcls})\index{rev})\index{get}))\-\-
\end{tabbing}

\begin{verbatim}; We need establish that what the CPUSH_* pushes is an i-objectp
; in the current i-state.  We know that everything r-call-step
; pushes is an r-objectp in the initial r state.  We need to make
; the connections.  The key here is our previously proved lemma
; that r-objectp-implies-i-objectp.  We first establish that what
; is pushed at the i-level is an r-object.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adpp-implies-numberp-adp-offset \\ \index{adpp-implies-numberp-adp-offset}
{\rm{adpp}}\,({\it{x\/}}, {\it{segment\/}})\index{adpp} $\rightarrow$ ({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $\in\;${\bf{N}}${}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-r-objectps-implies-r-objectp-get \\ \index{all-r-objectps-implies-r-objectp!-get}
\=\+(({\it{n\/}} $<$ {\rm{length}}\,({\it{var-dcls\/}})\index{length}) $\wedge$ {\rm{all-r-objectps}}\,({\rm{strip-cadrs}}\,({\it{var-dcls\/}})\index{strip-cadrs}, {\it{r\/}})\index{all-r-objectps}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-objectp}}\,({\rm{cadr}}\,({\rm{get}}\,({\it{n\/}}, {\it{var-dcls\/}})\index{get}), {\it{r\/}})\index{r-objectp}\-
\end{tabbing}

\begin{verbatim}; Unfortunately, what the icompiler lays down is not elements of
; (strip-cadrs var-dcls) but elements of its reverse.  So we need
; to prove that the reverse doesn't affect the argument above.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  strip-cadrs-append \\ \index{strip-cadrs-append}
{\rm{strip-cadrs}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{strip-cadrs} $=$ {\rm{append}}\,({\rm{strip-cadrs}}\,({\it{a\/}})\index{strip-cadrs}, {\rm{strip-cadrs}}\,({\it{b\/}})\index{strip-cadrs})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-r-objectps-append \\ \index{all-r-objectps-append}
\=\+{\rm{properp}}\,({\it{a\/}})\index{properp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-r-objectps}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}), {\it{r\/}})\index{all-r-objectps} \\ 
$=$$\;\;\;\;$({\rm{all-r-objectps}}\,({\it{a\/}}, {\it{r\/}})\index{all-r-objectps} $\wedge$ {\rm{all-r-objectps}}\,({\it{b\/}}, {\it{r\/}})\index{all-r-objectps}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-strip-cadrs \\ \index{properp-strip-cadrs}
{\rm{properp}}\,({\rm{strip-cadrs}}\,({\it{x\/}})\index{strip-cadrs})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-r-objectps-strip-cadrs-rev \\ \index{all-r-objectps-strip-cadrs-rev}
{\rm{all-r-objectps}}\,({\rm{strip-cadrs}}\,({\rm{rev}}\,({\it{x\/}})\index{rev})\index{strip-cadrs}, {\it{r\/}})\index{all-r-objectps} $=$ {\rm{all-r-objectps}}\,({\rm{strip-cadrs}}\,({\it{x\/}})\index{strip-cadrs}, {\it{r\/}})\index{all-r-objectps}
\end{tabbing}

\begin{verbatim}; The work above is sufficient to relieve the r-objectp hyp
; in r-objectp-implies-i-objectp.

; We also have to establish that the signature of the r state
; is the same as that of the i state.  This follows from:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-deposit-adp \\ \index{same-signature-deposit-adp}
\=\+({\rm{litatom}}\,({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}) $\wedge$ {\rm{adpp}}\,({\it{adp\/}}, {\it{segment2\/}})\index{adpp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment2\/}})\index{deposit-adp})\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature})\-\-
\end{tabbing}


\begin{verbatim}; Now once the i machine has fetched the element it UNLABELs it.
; We need to show that it is not a DL.  That follows from the
; fact that we have a proper-r-statep which thus contains
; a r-programp which thus contains r-temp-var-dclsp,
; none of which is a DL.  Again we have to worry about the
; reverse.

\end{verbatim}
\noindent{\sc Event}:   Enable member-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  member-rev \\ \index{member-rev}
({\it{x\/}} $\in$ {\rm{rev}}\,({\it{l\/}})\index{rev}) $=$ ({\it{x\/}} $\in$ {\it{l\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlabel-cadr-get-rev-temp-var-dcls-lemma \\ \index{unlabel-cadr-get-rev-temp-var-d!cls-lemma}
\=\+(({\it{var-dcl\/}} $\in$ {\it{temp-var-dcls\/}}) $\wedge$ {\rm{r-temp-var-dclsp}}\,({\it{temp-var-dcls\/}})\index{r-temp-var-dclsp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{unlabel}}\,({\rm{cadr}}\,({\it{var-dcl\/}}))\index{unlabel} $=$ {\rm{cadr}}\,({\it{var-dcl\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unconditional-get-append \\ \index{unconditional-get-append}
\=\+{\rm{get}}\,({\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\rm{length}}\,({\it{a\/}})\index{length}$\;\;${\bf then }{\rm{get}}\,({\it{n\/}}, {\it{a\/}})\index{get} \\ 
{\bf else }{\rm{get}}\,({\it{n\/}} $-$ {\rm{length}}\,({\it{a\/}})\index{length}, {\it{b\/}})\index{get}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-rev \\ \index{get-rev}
({\it{n\/}} $<$ {\rm{length}}\,({\it{l\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,({\it{n\/}}, {\rm{rev}}\,({\it{l\/}})\index{rev})\index{get} $=$ {\rm{get}}\,(({\rm{length}}\,({\it{l\/}})\index{length} $-$ {\it{n\/}}) $-\;1$, {\it{l\/}})\index{get})
\end{tabbing}


\noindent{\sc Event}:   Disable unconditional-get-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  member-get-rev \\ \index{member-get-rev}
({\it{n\/}} $<$ {\rm{length}}\,({\it{l\/}})\index{length}) $\rightarrow$ ({\rm{get}}\,({\it{n\/}}, {\rm{rev}}\,({\it{l\/}})\index{rev})\index{get} $\in$ {\it{l\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlabel-cadr-get-rev-temp-var-dcls \\ \index{unlabel-cadr-get-rev-temp-var-d!cls}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{cadr}}\,({\rm{get}}\,({\it{n\/}}, {\rm{rev}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{rev})\index{get}))\index{unlabel} \\ 
$=$$\;\;\;\;${\rm{cadr}}\,({\rm{get}}\,({\it{n\/}}, {\rm{rev}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{rev})\index{get}))\-\-
\end{tabbing}


\begin{verbatim}; In the prelude1 proof we have difference disabled and the following lemma
; comes in at just the right place and reduces the pc in the induction
; conclusion to that in the induction hypothesis.
                  
\end{verbatim}\begin{tabbing}{\sc Theorem}:  add4-plus-difference-difference \\ \index{add4-plus-difference-difference}
\=\+({\it{n\/}} $\not<$ ($1\;+$ {\it{z\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+($1\;+$ ($1\;+$ ($1\;+$ ($1\;+$ (({\it{n\/}} $-$ ($1\;+$ {\it{z\/}})) $+$ ({\it{n\/}} $-$ ($1\;+$ {\it{z\/}}))))))) \\ 
$=$$\;\;\;\;$($1\;+$ ($1\;+$ (({\it{n\/}} $-$ {\it{z\/}}) $+$ ({\it{n\/}} $-$ {\it{z\/}})))))\-\-
\end{tabbing}


\begin{verbatim}; Finally, we need to show that depositing one element and then the
; rest is the same as depositing them all.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  deposit-lst-append \\ \index{deposit-lst-append}
\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}, {\it{segment\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-lst}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}), {\it{sp\/}}, {\it{segment\/}})\index{deposit-lst} \\ 
$=$$\;\;\;\;${\rm{deposit-lst}}\,(\=\+{\it{b\/}}, \\ 
{\rm{push-stk-n}}\,({\rm{length}}\,({\it{a\/}})\index{length}, {\it{sp\/}})\index{push-stk-n}, \\ 
{\rm{deposit-lst}}\,({\it{a\/}}, {\it{sp\/}}, {\it{segment\/}})\index{deposit-lst})\-\index{deposit-lst})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  first-n-opener-right-end \\ \index{first-n-opener-right-end}
\=\+({\it{z\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{first-n}}\,($1\;+$ {\it{z\/}}, {\it{lst\/}})\index{first-n} $=$ {\rm{append}}\,({\rm{first-n}}\,({\it{z\/}}, {\it{lst\/}})\index{first-n}, {\rm{list}}\,({\rm{get}}\,({\it{z\/}}, {\it{lst\/}})\index{get})))\-
\end{tabbing}


\noindent{\sc Event}:   Enable properp-rev.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  append-right-id \\ \index{append-right-id}
{\rm{properp}}\,({\it{a\/}})\index{properp} $\rightarrow$ ({\rm{append}}\,({\it{a\/}}, {\bf{nil}}) $=$ {\it{a\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable rev-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-difference-sub1-length-rev \\ \index{get-difference-sub1-length-rev}
\=\+({\it{z\/}} $<$ {\rm{length}}\,({\it{temp-var-dcls\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(({\rm{length}}\,({\it{temp-var-dcls\/}})\index{length} $-\;1$) $-$ {\it{z\/}}, {\rm{rev}}\,({\it{temp-var-dcls\/}})\index{rev})\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{z\/}}, {\it{temp-var-dcls\/}})\index{get})\-\-
\end{tabbing}

\begin{verbatim}; The basic idea of the execution of i*-prelude1-generalized is that
; we start in the middle of the prelude (with n pushes left to go)
; and execute those n.  We then describe what happens to the stack.
; The lemma below is the key observation.  To understand it, it is
; really necessary to see the prelude1 theorem first.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  deposit-lst-equivalence \\ \index{deposit-lst-equivalence}
\=\+(\=\+{\rm{adpp}}\,({\rm{sub-adp}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}, {\tt{1}})\index{sub-adp}, {\it{sys-data-segment\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\it{z\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{z\/}} $<$ {\rm{length}}\,({\it{temp-var-dcls\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-lst}}\,(\=\+{\rm{rev}}\,({\rm{strip-cadrs}}\,({\rm{first-n}}\,({\it{z\/}}, {\it{temp-var-dcls\/}})\index{first-n})\index{strip-cadrs})\index{rev}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{sub-adp}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}, {\tt{2}})\index{sub-adp})\index{tag}, \\ 
{\rm{deposit-adp}}\,(\=\+{\rm{cadr}}\,({\rm{get}}\,(\=\+{\rm{length}}\,({\it{temp-var-dcls\/}})\index{length} $-$ ($1\;+$ {\it{z\/}}), \\ 
{\rm{rev}}\,({\it{temp-var-dcls\/}})\index{rev})\-\index{get}), \\ 
{\rm{sub-adp}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}, {\tt{1}})\index{sub-adp}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit-adp})\-\index{deposit-lst} \\ 
$=$$\;\;\;\;${\rm{deposit-lst}}\,(\=\+{\rm{rev}}\,({\rm{strip-cadrs}}\,({\rm{first-n}}\,($1\;+$ {\it{z\/}}, {\it{temp-var-dcls\/}})\index{first-n})\index{strip-cadrs})\index{rev}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{sub-adp}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}, {\tt{1}})\index{sub-adp})\index{tag}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit-lst})\-\-
\end{tabbing}

\begin{verbatim}; i*-prelude1-generalized requires a complicated induction.  The
; idea is to execute one clock tick and say what happens to
; csp (it is pushed by one) and sys-data-segment (one of the
; temp-var-dcls' initial values is deposited).  

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{hint-prelude1} \\  
\=\+{\rm{hint-prelude1}}\,({\it{n\/}}, {\it{csp\/}}, {\it{sys-data-segment\/}}, {\it{name\/}}, {\it{r\/}})\index{hint-prelude1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{hint-prelude1}}\,(\=\+{\it{n\/}} $-\;1$, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{cadr}}\,({\rm{get}}\,(\=\+\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$-$$\;\;\;\;${\it{n\/}}\-, \\ 
{\rm{rev}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{rev})\-\index{get}), \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit}, \\ 
{\it{name\/}}, \\ 
{\it{r\/}})\-\index{hint-prelude1}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Crucial to this proof is that we elim (SUB1 N).  This introduces
; an (I* s (ADD1 Z) load-addr) where we had an (I* s N load-addr).  Then I* can be
; opened.  But the elimination on (SUB1 N) is not the first elimination
; available -- we can also elim on CDR and on the accessors to the
; R-STATEs.  Thus, I disable those elim lemmas.  I also keep first-n
; and difference closed up, manipulating them completely with the
; lemmas above.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i*-prelude1-generalized \\ \index{i*-prelude1-generalized}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{all-r-objectps}}\,(\=\+{\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{strip-cadrs}, \\ 
{\it{r\/}})\-\index{all-r-objectps} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length} $\not<$ {\it{n\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\it{csp\/}}, {\it{sys-data-segment\/}})\index{cstkp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})\index{adp-offset} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i*}}\,(\=\+{\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ ({\tt{2}} $*$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$-$$\;\;\;\;${\it{n\/}})\-)))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\it{csp\/}}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\it{sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}, \\ 
{\it{n\/}}, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ ({\tt{2}} $*$ {\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length})))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\rm{push-stk-n}}\,({\it{n\/}}, {\it{csp\/}})\index{push-stk-n}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit-lst}}\,(\=\+{\rm{rev}}\,({\rm{strip-cadrs}}\,({\rm{first-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\-\index{first-n})\index{strip-cadrs})\index{rev}, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit-lst}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state})\-\-
\end{tabbing}

\begin{verbatim}; The above theorem tells us what happens if we execute the last n
; instructions in prelude1.  Now we instantiate n with the number
; of executable instructions in prelude1 and deduce what happens when
; we execute the prelude1.

; To prove the instance we need the trivial:

\end{verbatim}
\noindent{\sc Event}:   Disable first-n-opener-right-end.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  first-n-length \\ \index{first-n-length}
{\rm{strip-cadrs}}\,({\rm{first-n}}\,({\rm{length}}\,({\it{lst\/}})\index{length}, {\it{lst\/}})\index{first-n})\index{strip-cadrs} $=$ {\rm{strip-cadrs}}\,({\it{lst\/}})\index{strip-cadrs}
\end{tabbing}

\begin{verbatim}; The above theorem is essentially just a first-n property and has
; almost nothing to do with strip-cadrs:  (first-n (length lst) lst)
; is lst.  That is not true if lst is not proper.  Rather than set up
; the lemmas necessary to get that the temp-var-dcls are proper, I'll
; just observe that in our application we strip-cadrs the result and
; that does the same thing whether lst is proper or not.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i*-prelude1 \\ \index{i*-prelude1}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{all-r-objectps}}\,(\=\+{\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{strip-cadrs}, \\ 
{\it{r\/}})\-\index{all-r-objectps} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\it{csp\/}}, {\it{sys-data-segment\/}})\index{cstkp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})\index{adp-offset} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i*}}\,(\=\+{\rm{i-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{ipc}}, {\rm{cons}}\,({\it{name\/}}, {\tt{2}}))\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\it{csp\/}}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\it{sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}, \\ 
{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length}, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ ({\tt{2}} $*$ {\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length})))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\rm{push-stk-n}}\,(\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length}, \\ 
{\it{csp\/}})\-\index{push-stk-n}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit-lst}}\,(\=\+{\rm{rev}}\,({\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{strip-cadrs})\index{rev}, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit-lst}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state})\-\-
\end{tabbing}

\begin{verbatim}; That completes our work on prelude1.

; We now turn to prelude2.  

; For some reason the proof of the call one-way-correspondence theorem
; raises the possibility that the sum of the lengths of the temp-var-dcls
; and the formal-vars is 0.  Rather than prevent this case split, I just
; deal with it.  The following lemma reduces that case to the case that
; there are not temp or formal variables.

\end{verbatim}
\noindent{\sc Event}:   Enable equal-plus-0.

\addvspace{18pt}

\begin{verbatim}; In the case where both formals and temp-var-dcls is empty, we
; immediately get to the end of the prelude and the only remaining
; problem is dealing with the two pc expressions.  On the r level
; we have (r->i_pc (tag 'pc (cons name 0)) (r-prog-segment r))
; while at the i level we have
; (tag 'ipc (cons name length-prelude)).  We will rewrite the former
; to the latter.  We have all the necessary machinery to do this.
; We do have to appeal to the fact that the temp-var-dcls of the
; program are well-formed, e.g., r-temp-var-dclsp, if the
; program is in the program segment of a proper r state.  That was
; proved earlier, but for an instance in which name was derived from
; the current pc.  We need it for the subroutine name now.  So we
; just instantiate the necessary lemma.  

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-prelude \\ \index{r-$>$i\_pc-prelude}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i\_pc}}\,({\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\it{name\/}}, {\tt{0}}))\index{tag}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{r-$>$i\_pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
{\rm{length}}\,({\rm{generate-prelude}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{generate-prelude})\index{length})\-)\-\index{tag})\-\-
\end{tabbing}


\begin{verbatim}; In this pathological case we also have to know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  add-adp-0-untag-r-tsp \\ \index{add-adp-0-untag-r-tsp}
({\rm{listp}}\,({\it{x\/}}) $\wedge$ ({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $\in\;${\bf{N}}${}$)) $\rightarrow$ ({\rm{add-adp}}\,({\it{x\/}}, {\tt{0}})\index{add-adp} $=$ {\it{x\/}})
\end{tabbing}

\begin{verbatim}; We might as well get the sub-adp analogue:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  sub-adp-0-untag-r-tsp \\ \index{sub-adp-0-untag-r-tsp}
({\rm{listp}}\,({\it{x\/}}) $\wedge$ ({\rm{adp-offset}}\,({\it{x\/}})\index{adp-offset} $\in\;${\bf{N}}${}$)) $\rightarrow$ ({\rm{sub-adp}}\,({\it{x\/}}, {\tt{0}})\index{sub-adp} $=$ {\it{x\/}})
\end{tabbing}

\begin{verbatim}; Embarassing anomoly:  The LENGTH-GENERATE-PRELUDE lemma introduces a term
; of the form (TIMES x 2) which is replaced by (PLUS x x) by the
; TIMES-ADD1{gen} lemma.  But I*-PRELUDE introduces (TIMES 2 x) which is
; left alone.  I could reformulate LENGTH-GENERATE-PRELUDE.  But
; instead I will just prove (TIMES 2 X) = (PLUS X X) and keep
; TIMES out of the problem henceforth.

\end{verbatim}
\noindent{\sc Event}:   Enable times-2.

\addvspace{18pt}

\begin{verbatim}; We start our study of prelude2 just like that of prelude1,
; by determining what instruction you get when you fetch from the prelude2.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude2-lemma \\ \index{fetch-adp-prelude2-lemma}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{formal-vars\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\it{n\/}}, {\rm{generate-prelude2}}\,({\it{formal-vars\/}})\index{generate-prelude2})\index{get} $=$ {\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-plus-k-k-length \\ \index{difference-plus-k-k-length}
\=\+((({\it{k\/}} $+$ {\it{k\/}}) $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$((({\it{k\/}} $+$ {\it{k\/}} $+$ {\it{n\/}}) $-$ {\rm{length}}\,({\it{a\/}})\index{length}) $=$ {\it{n\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-append-bridge \\ \index{get-append-bridge}
\=\+((({\it{k\/}} $+$ {\it{k\/}}) $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\it{k\/}} $+$ ({\it{k\/}} $+$ {\it{n\/}}), {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{get} $=$ {\rm{get}}\,({\it{n\/}}, {\it{b\/}})\index{get})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-prelude2 \\ \index{fetch-adp-prelude2}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-segment\/}}))\index{formal-vars})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\it{prog-segment\/}})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\it{prog-segment\/}})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\it{n\/}})\-))\-, \\ 
{\rm{icompile}}\,({\it{prog-segment\/}})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{cpush\_$<$tsp$>$+}}{\tt{)}})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable get-append-bridge.

\addvspace{18pt}

\begin{verbatim}; We specify the induction for prelude2 with:

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{hint-prelude2} \\  
\=\+{\rm{hint-prelude2}}\,({\it{n\/}}, {\it{csp\/}}, {\it{tsp\/}}, {\it{sys-data-segment\/}}, {\it{name\/}}, {\it{r\/}})\index{hint-prelude2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{hint-prelude2}}\,(\=\+{\it{n\/}} $-\;1$, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\rm{pop-stk}}\,({\it{tsp\/}})\index{pop-stk}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{untag}}\,({\it{tsp\/}})\index{untag}, \\ 
{\it{sys-data-segment\/}})\-\index{fetch-adp}, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit}, \\ 
{\it{name\/}}, \\ 
{\it{r\/}})\-\index{hint-prelude2}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Just as in the prelude1 case, we have disabled difference and use
; tweezers to manipulate such expressions.  This lemma shows that
; the pc in the induction conclusion is equal to that in the induction
; hypothesis.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  add1-add1-plus-length-length-difference-length-add1 \\ \index{add1-add1-plus-length-length-di!fference-length-add1}
\=\+({\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars})\index{length} $\not<$ ($1\;+$ {\it{z\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+($1\;+$ ($1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$-$$\;\;\;\;$($1\;+$ {\it{z\/}}))\-)\-))) \\ 
$=$$\;\;\;\;$($1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$-$$\;\;\;\;${\it{z\/}})\-)\-)))\-\-
\end{tabbing}

\begin{verbatim}; We also have to show that if you fetch n things from the tstk all
; at once that it is equivalent to fetching them interspersed with
; writes to the cstk.  In particular:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  fetch-n-tstk-deposit-adp-cstk \\ \index{fetch-n-tstk-deposit-adp-cstk}
\=\+(\=\+{\rm{adpp}}\,({\it{csp-adp\/}}, {\it{sys-data-segment\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-name}}\,({\it{csp-adp\/}})\index{adp-name} $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;${\rm{tstkp}}\,({\it{tsp\/}}, {\it{sys-data-segment\/}})\index{tstkp} \\ 
$\wedge$$\;\;\;\;$({\rm{stk-length}}\,({\it{tsp\/}}, {\it{sys-data-segment\/}})\index{stk-length} $\not<$ {\it{z\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,({\it{z\/}}, {\it{tsp\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{csp-adp\/}}, {\it{sys-data-segment\/}})\index{deposit-adp})\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{fetch-n}}\,({\it{z\/}}, {\it{tsp\/}}, {\it{sys-data-segment\/}})\index{fetch-n})\-\-
\end{tabbing}

\begin{verbatim}; So here is the generalized version of i*-prelude2.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i*-prelude2-generalized \\ \index{i*-prelude2-generalized}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\it{csp\/}}, {\it{sys-data-segment\/}})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{tstkp}}\,({\it{tsp\/}}, {\it{sys-data-segment\/}})\index{tstkp} \\ 
$\wedge$$\;\;\;\;$({\rm{adp-offset}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})\index{adp-offset} $\not<$ {\it{n\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{stk-length}}\,({\it{tsp\/}}, {\it{sys-data-segment\/}})\index{stk-length} $\not<$ {\it{n\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars})\index{length} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i*}}\,(\=\+{\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$-$$\;\;\;\;${\it{n\/}})\-)\-))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\it{csp\/}}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\it{sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}, \\ 
{\it{n\/}}, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length})\-))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\rm{push-stk-n}}\,({\it{n\/}}, {\it{csp\/}})\index{push-stk-n}, \\ 
{\rm{pop-stk-n}}\,({\it{n\/}}, {\it{tsp\/}})\index{pop-stk-n}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit-lst}}\,(\=\+{\rm{fetch-n}}\,({\it{n\/}}, {\it{tsp\/}}, {\it{sys-data-segment\/}})\index{fetch-n}, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit-lst}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i*-prelude2 \\ \index{i*-prelude2}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\it{csp\/}}, {\it{sys-data-segment\/}})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{tstkp}}\,({\it{tsp\/}}, {\it{sys-data-segment\/}})\index{tstkp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})\index{adp-offset} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars})\index{length})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{stk-length}}\,({\it{tsp\/}}, {\it{sys-data-segment\/}})\index{stk-length} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars})\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i*}}\,(\=\+{\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length})\-))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\it{csp\/}}, \\ 
{\it{tsp\/}}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\it{sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state}, \\ 
{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars})\index{length}, \\ 
{\it{load-addr\/}})\-\index{i*} \\ 
$=$$\;\;\;\;${\rm{i-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length})\-))\-)\-\index{tag}, \\ 
{\it{cfp\/}}, \\ 
{\rm{push-stk-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\it{csp\/}})\-\index{push-stk-n}, \\ 
{\rm{pop-stk-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\it{tsp\/}})\-\index{pop-stk-n}, \\ 
{\it{x\/}}, \\ 
{\it{y\/}}, \\ 
{\it{c-flg\/}}, \\ 
{\it{v-flg\/}}, \\ 
{\it{n-flg\/}}, \\ 
{\it{z-flg\/}}, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{deposit-lst}}\,(\=\+{\rm{fetch-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\it{tsp\/}}, \\ 
{\it{sys-data-segment\/}})\-\index{fetch-n}, \\ 
{\rm{push-stk}}\,({\it{csp\/}})\index{push-stk}, \\ 
{\it{sys-data-segment\/}})\-\index{deposit-lst}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{i-state})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-sub-adp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-sub-adp-generalize \\ \index{adpp-sub-adp-generalize}
{\rm{adpp}}\,({\it{x\/}}, {\it{segment\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\rm{sub-adp}}\,({\it{x\/}}, {\it{n\/}})\index{sub-adp}, {\it{segment\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-strip-cadrs \\ \index{length-strip-cadrs}
{\rm{length}}\,({\rm{strip-cadrs}}\,({\it{x\/}})\index{strip-cadrs})\index{length} $=$ {\rm{length}}\,({\it{x\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-put-assoc\{special\} \\ \index{definedp-put-assoc\{special\}}
{\rm{definedp}}\,({\it{name1\/}}, {\it{segment\/}})\index{definedp} $\rightarrow$ {\rm{definedp}}\,({\it{name1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{segment\/}})\index{put-assoc})\index{definedp}
\end{tabbing}

\begin{verbatim}; We have some theorems like these, but they rewrite
; (adpp ... (deposit-adp ... segment)) to (adpp ... segment)
; under hyps about the legality of the deposit address.  I have
; since gotten tired of proving the legality of the addresses and
; wish to observe that even if the address is illegal the worst
; case is that the area written into becomes longer.  So the
; legal addresses after the deposit include the legal addresses
; before.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adpp-deposit-adp-generalized \\ \index{adpp-deposit-adp-generalized}
{\rm{adpp}}\,({\it{adp1\/}}, {\it{segment\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\it{adp1\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp2\/}}, {\it{segment\/}})\index{deposit-adp})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-deposit-lst \\ \index{adpp-deposit-lst}
{\rm{adpp}}\,({\it{adp1\/}}, {\it{segment\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\it{adp1\/}}, {\rm{deposit-lst}}\,({\it{lst\/}}, {\it{adp2\/}}, {\it{segment\/}})\index{deposit-lst})\index{adpp}
\end{tabbing}

\begin{verbatim}; The following crappy lemma is used in relieving the fifth hypothesis
; of the i*-prelude2 lemma.  This undoubtedly could be generalized
; but I just got tired of finding elegant solutions.  This fact is
; immediate from linear arithmetic; unfortunately, it involves a little
; case analysis and is not caught during back chaining.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i*-prelude2-hyp-5-reliever \\ \index{i*-prelude2-hyp-5-reliever}
\=\+(\=\+(({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag})\index{adp-offset} $-\;1$) $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$(\=\+(({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag})\index{adp-offset} $-\;1$) $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{cadr}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{cadr}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+(\=\+(({\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag})\index{adp-offset} $-\;1$) $-\;1$) \\ 
$-$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{cadr}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{temp-var-dcls})\index{length})\- \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{cadr}}\,({\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length})\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{verbatim}; The sixth hypothesis of i*-prelude2 also requires work.  The problem
; is that by the time we get around to asking the stk-length of tstk for
; prelude2 we have done some deposits into sys-data-segment and we must know
; that we haven't changed its length.  We have already proved that
; deposit-adp doesn't change the length, but now we must deal with
; deposit-lst.  In the case in point, we know the deposits have all
; gone into the cstk and we are interested in the length of the tstk.
; Rather than argue that no deposit-lst changes the length  of its
; area -- a theorem that requires the additional hypothesis that the
; length of the list scanned is sufficiently short -- I will prove
; this one:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-cdr-assoc-deposit-lst \\ \index{length-cdr-assoc-deposit-lst}
\=\+({\it{name\/}} $\not=$ {\rm{adp-name}}\,({\rm{untag}}\,({\it{adp\/}})\index{untag})\index{adp-name}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-lst}}\,({\it{lst\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-lst})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})\-\-
\end{tabbing}

\begin{verbatim}; Now we finally turn to the arithmetic battles suggested by the fact
; that we don't know plus is commutative.  I don't want to add that
; rule; I don't want to even take the chance that it'll mess things
; up.  Instead I will prove each instance I need.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  commutativity-of-plus-application \\ \index{commutativity-of-plus-applicati!on}
\=\+(\=\+{\rm{sub-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length})\-))\-\index{sub-adp} \\ 
$=$$\;\;\;\;${\rm{sub-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{formal-vars})\index{length})\-))\-\index{sub-adp})\- \\ 
$=$$\;\;\;\;${\bf{t}}\-
\end{tabbing}

\begin{verbatim}; And again, we have to consider the fact that the r level machine
; fetches all the args from tsp and then deposits them in csp
; while the i level machine does the fetches and deposits in an
; interleaved fashion.  We exploit, once again, the fact that
; we are fetching from one area and depositing into another.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-deposit-lst \\ \index{assoc-deposit-lst}
\=\+({\it{name\/}} $\not=$ {\rm{adp-name}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})\index{adp-name}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-lst}}\,({\it{lst\/}}, {\it{csp\/}}, {\it{segment\/}})\index{deposit-lst}) $=$ {\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-n-tstk-deposit-lst-cstk \\ \index{fetch-n-tstk-deposit-lst-cstk}
\=\+({\rm{adp-name}}\,({\rm{untag}}\,({\it{tsp\/}})\index{untag})\index{adp-name} $\not=$ {\rm{adp-name}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})\index{adp-name}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,({\it{n\/}}, {\it{tsp\/}}, {\rm{deposit-lst}}\,({\it{lst\/}}, {\it{csp\/}}, {\it{segment\/}})\index{deposit-lst})\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{fetch-n}}\,({\it{n\/}}, {\it{tsp\/}}, {\it{segment\/}})\index{fetch-n})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-one-way-correspondence-r-i \\ \index{call-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-call-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-call-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; We now turn to the pop-call instruction, which has basically
; the same proof as that just done.  There are a few
; minor differences.  Pop-call starts by doing a pop and
; requires that the tstk be non-empty:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-state-implies-legal-r-tsp \\ \index{proper-r-state-implies-legal-r-t!sp}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag})\index{adp-offset} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\-\-
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  assoc-tstk \\ \index{assoc-tstk}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\-
\end{tabbing}

\begin{verbatim}; When r-pop-call-okp checks that the call is ok, it uses
; r-call-okp on a faked up r state.  r-call-okp checks, among
; other things, that all the temp-var-dcl values are r-objects
; in that faked up state.  But the 2nd hypothesis of i*-prelude1
; requires that they all be objects in r.  The following lemma
; establishes that:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-implies-r-objectp \\ \index{same-signature-implies-r-objectp}
\=\+(\=\+{\rm{r-objectp}}\,({\it{x\/}}, {\it{r2\/}})\index{r-objectp} \\ 
$\wedge$$\;\;\;\;$({\rm{r-prog-segment}}\,({\it{r1\/}})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r2\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r1\/}})\index{r-usr-data-segment}, {\rm{r-usr-data-segment}}\,({\it{r2\/}})\index{r-usr-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r1\/}})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r2\/}})\index{r-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-objectp}}\,({\it{x\/}}, {\it{r1\/}})\index{r-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-all-r-objectps \\ \index{same-signature-implies-all-r-ob!jectps}
\=\+(\=\+{\rm{all-r-objectps}}\,({\it{lst\/}}, {\it{r2\/}})\index{all-r-objectps} \\ 
$\wedge$$\;\;\;\;$({\rm{r-prog-segment}}\,({\it{r1\/}})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r2\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r1\/}})\index{r-usr-data-segment}, {\rm{r-usr-data-segment}}\,({\it{r2\/}})\index{r-usr-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r1\/}})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r2\/}})\index{r-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-r-objectps}}\,({\it{lst\/}}, {\it{r1\/}})\index{all-r-objectps}\-
\end{tabbing}


\noindent{\sc Event}:   Disable same-signature-implies-r-objectp.

\addvspace{18pt}

\begin{verbatim}; So now we can do pop-call.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-call-one-way-correspondence-r-i \\ \index{pop-call-one-way-correspondence!-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-pop-call-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-pop-call-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; So, now we turn to the ret instruction.  We begin with the study
; of the postlude.  First, you've got to find it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  first-n-length-properp \\ \index{first-n-length-properp}
{\rm{properp}}\,({\it{lst\/}})\index{properp} $\rightarrow$ ({\rm{first-n}}\,({\rm{length}}\,({\it{lst\/}})\index{length}, {\it{lst\/}})\index{first-n} $=$ {\it{lst\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-program-bodyp-implies-properp \\ \index{r-program-bodyp-implies-properp}
{\rm{r-program-bodyp}}\,({\it{body\/}})\index{r-program-bodyp} $\rightarrow$ {\rm{properp}}\,({\it{body\/}})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-program-body \\ \index{properp-program-body}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{properp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\index{properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-postlude \\ \index{find-label-postlude}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\index{length})\-, \\ 
{\rm{cdr}}\,({\rm{icompile-program}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{icompile-program}))\-\index{find-label} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{generate-prelude}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{generate-prelude})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,(\=\+{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body}, \\ 
{\tt{0}}, \\ 
{\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\-\index{icompile-program-body})\index{length})\-)\-\-
\end{tabbing}

\begin{verbatim}; Then you've got to know what you get when you fetch from it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  fetch-adp-postlude0 \\ \index{fetch-adp-postlude0}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
\=\+{\rm{length}}\,({\rm{generate-prelude}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{generate-prelude})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,(\=\+{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body}, \\ 
{\tt{0}}, \\ 
{\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\-\index{icompile-program-body})\index{length}\-)\-, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\rm{dl}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\index{length})\-, \\ 
{\tt{'}}{\tt{(}}{\tt{postlude}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{move\_csp\_cfp}}{\tt{)}})\-\index{dl})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-add1-plus-i-j-i \\ \index{difference-add1-plus-i-j-i}
(($1\;+$ ({\it{i\/}} $+$ {\it{j\/}})) $-$ {\it{i\/}}) $=$ ($1\;+$ {\it{j\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-add1-i-i \\ \index{difference-add1-i-i}
(($1\;+$ {\it{i\/}}) $-$ {\it{i\/}}) $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-postlude1 \\ \index{fetch-adp-postlude1}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
$1\;+$ (\=\+{\rm{length}}\,({\rm{generate-prelude}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{generate-prelude})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,(\=\+{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body}, \\ 
{\tt{0}}, \\ 
{\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\-\index{icompile-program-body})\index{length})\-)\-, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{cpop\_cfp}}{\tt{)}})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable difference-add1-plus-i-j-i.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-add1-i-i.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  difference-add2-plus-i-j-i \\ \index{difference-add2-plus-i-j-i}
(($1\;+$ ($1\;+$ ({\it{i\/}} $+$ {\it{j\/}}))) $-$ {\it{i\/}}) $=$ ($1\;+$ ($1\;+$ {\it{j\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-add2-i-i \\ \index{difference-add2-i-i}
(($1\;+$ ($1\;+$ {\it{i\/}})) $-$ {\it{i\/}}) $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-adp-postlude2 \\ \index{fetch-adp-postlude2}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-adp}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{generate-prelude}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{generate-prelude})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,(\=\+{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body}, \\ 
{\tt{0}}, \\ 
{\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\-\index{icompile-program-body})\index{length})\-))\-, \\ 
{\rm{icompile}}\,({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{icompile})\-\index{fetch-adp} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{cpop\_pc}}{\tt{)}})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable difference-add2-plus-i-j-i.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-add2-i-i.

\addvspace{18pt}


\noindent{\sc Event}:   Disable length-generate-prelude.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-icompile-program \\ \index{length-icompile-program}
\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{icompile-program}}\,({\it{prog\/}})\index{icompile-program}))\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{generate-prelude}}\,({\it{prog\/}})\index{generate-prelude})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{icompile-program-body}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\tt{0}}, {\it{prog\/}})\index{icompile-program-body})\index{length} \\ 
$+$$\;\;\;\;${\tt{3}})\-\-
\end{tabbing}

\begin{verbatim}; As usual in the cases involving jump we have to open up r->i_pc in
; the internal application (not in the fetch-execute cycle for this 
; instruction).

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-$>$i\_pc-folder-ret-case \\ \index{r-$>$i\_pc-folder-ret-case}
\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{ipc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{fetch-adp}}\,(\=\+{\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}, {\tt{1}})\index{add-adp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp})\index{untag})\index{adp-name}, \\ 
{\rm{find-label}}\,(\=\+{\rm{untag}}\,({\rm{fetch-adp}}\,(\=\+{\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}, {\tt{1}})\index{add-adp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp})\index{untag}, \\ 
{\rm{cdr}}\,({\rm{icompile-program}}\,({\rm{assoc}}\,(\=\+{\rm{adp-name}}\,({\rm{untag}}\,({\rm{fetch-adp}}\,(\=\+{\rm{add-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}, \\ 
{\tt{1}})\-\index{add-adp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp})\index{untag})\index{adp-name}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{icompile-program}))\-\index{find-label})\-)\-\index{tag} \\ 
$=$$\;\;\;\;${\rm{r-$>$i\_pc}}\,(\=\+{\rm{fetch-adp}}\,({\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}, {\tt{1}})\index{add-adp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\index{r-$>$i\_pc}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-one-way-correspondence-r-i \\ \index{ret-one-way-correspondence-r-i}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-ret-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-ret-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-step})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-ret-step-clock}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-step-clock}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}

\begin{verbatim}; We now begin the proof of the invariance of proper-r-statep
; under the r-step function.  The theorem is needed to relieve the
; proper-r-statep hypothesis in our induction hypothesis for the
; owc theorem.

; The proof proceeds exactly as you would expect, one lemma for
; each r-level instruction.

; First, however, we prove a key fact about proper-r-statep.
; The idea is that if r is proper and r' is obtained from r by 
; modifying certain of the fields, e.g., pushing on r-tsp, 
; what must we establish to show that r' is proper?  We
; lay all this out in the proper-r-statep-r-state lemma below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equal-lessp-rewriter \\ \index{equal-lessp-rewriter}
\=\+(({\it{x\/}} $<$ {\it{y\/}}) $=$ {\it{z\/}}) \\ 
$=$$\;\;\;\;$((({\it{x\/}} $<$ {\it{y\/}}) $\rightarrow$ ({\bf{t}} $=$ {\it{z\/}})) $\wedge$ (({\it{x\/}} $\not<$ {\it{y\/}}) $\rightarrow$ ({\bf{f}} $=$ {\it{z\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-segment-length \\ \index{same-signature-segment-length}
\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$({\rm{segment-length}}\,({\it{segment2\/}})\index{segment-length} $=$ {\rm{segment-length}}\,({\it{segment1\/}})\index{segment-length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-r-objectp-rewriter \\ \index{same-signature-implies-r-objectp!-rewriter}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{r-sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{r-usr-data-segment\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{r-objectp} \\ 
$=$$\;\;\;\;${\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-all-r-usr-data-objectps \\ \index{same-signature-implies-all-r-us!r-data-objectps}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{r-sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{r-usr-data-segment\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-r-usr-data-objectps}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{all-r-usr-data-objectps} \\ 
$=$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-usr-data-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-proper-r-usr-data-segmentp \\ \index{same-signature-implies-proper-r!-usr-data-segmentp}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{r-sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{r-usr-data-segment\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-r-usr-data-segmentp}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{proper-r-usr-data-segmentp} \\ 
$=$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\it{lst\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp})\-\-
\end{tabbing}


\begin{verbatim}; Here is the main theorem of this section.  This is really a
; beautiful result because it says that proper-r-statep can
; be opened up on an explicit r-state, r', that is weakly related
; to another r-state, r,  (as delivered by the
; step functions) provided  r was proper and
; has the same signatures for the sys and usr data segments.
; These hypotheses should be easy to get, given our existing
; work.

; But when we "open" proper-r-statep on r' we don't actually use
; r' but r in the various checks.  For example, we require that
; the new r-tsp be a tstkp in r, not in r' as the defn would
; require.  They are equivalent, of course, but by reducing
; the conditions to facts about r we render most of them obvious.
; The reason for this is that a typical step will change a few of
; the fields and leave the rest untouched.  Those that are untouched
; will be proper by the properness of r.

; The hint below, to expand (proper-r-statep r' load-addr), is ugly.  At first
; I just enabled proper-r-statep.  But that is suicide.  The reason is
; that we have an enormous number of rules that back chain to proper-r-statep
; and if it is enabled, those rules kill us.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-r-state \\ \index{proper-r-statep-r-state}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, {\it{r-sys-data-segment\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\it{r-usr-data-segment\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-r-statep}}\,(\=\+{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{r-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\it{r-pc\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\it{r-cfp\/}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{cstkp}}\,({\it{r-csp\/}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{cstkp} \\ 
$\wedge$$\;\;\;\;${\rm{tstkp}}\,({\it{r-tsp\/}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{tstkp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{definition}}\,(\=\+{\tt{'}}{\tt{full-ctrl-stk-addr}}, \\ 
{\it{r-sys-data-segment\/}})\-\index{definition} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{full-ctrl-stk-addr}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{cstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{definition}}\,(\=\+{\tt{'}}{\tt{full-temp-stk-addr}}, \\ 
{\it{r-sys-data-segment\/}})\-\index{definition} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{full-temp-stk-addr}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{definition}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\it{r-sys-data-segment\/}})\-\index{definition} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{length}}\,({\rm{definiens}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\it{r-sys-data-segment\/}})\-\index{definiens})\index{length} $-\;1$)\-)\-\index{tag})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{r-c-flg\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{r-v-flg\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{r-n-flg\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{r-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{r-z-flg\/}}, {\it{r\/}})\index{r-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\it{r-usr-data-segment\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp})\-)\-\-
\end{tabbing}
          

\noindent{\sc Event}:   Disable same-signature-segment-length.

\addvspace{18pt}

\noindent{\sc Event}:   Disable equal-lessp-rewriter.

\addvspace{18pt}

                                       


\begin{tabbing}{\sc Theorem}:  no-op-preserves-proper-r-statep \\ \index{no-op-preserves-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-no-op-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-no-op-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{verbatim}; This lemma is similar to fetch-adp-deposit-adp, but we are
; interested in the entire area assoc finds, not just the
; contents of a given location.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-deposit-adp \\ \index{assoc-deposit-adp}
\=\+({\it{name\/}} $\not=$ {\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp}) $=$ {\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-global-proper-r-statep \\ \index{push-global-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-push-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-local-proper-r-statep \\ \index{push-local-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-push-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-constant-proper-r-statep \\ \index{push-constant-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-push-constant-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-ctrl-stk-free-size-proper-r-statep \\ \index{push-ctrl-stk-free-size-proper-!r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-ctrl-stk-free-size-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-free-size-proper-r-statep \\ \index{push-temp-stk-free-size-proper-!r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-push-temp-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-free-size-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-index-proper-r-statep \\ \index{push-temp-stk-index-proper-r-st!atep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-push-temp-stk-index-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-index-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-proper-r-statep \\ \index{pop-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-pop-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop*-proper-r-statep \\ \index{pop*-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop*-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-pop*-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-proper-r-statep \\ \index{popn-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-popn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-popn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-local-proper-r-statep \\ \index{pop-local-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-pop-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{verbatim}; This lemma is just like litatom-adp-name above except
; is about (cadr (unlabel x)) instead of (adp-name adp).
; As noted earlier, it actually has nothing to do with
; cadr or adp-name; it is an instance of a more general
; (but unusable) rule about proper-alists and litatom.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  litatom-cadr-unlabel \\ \index{litatom-cadr-unlabel}
\=\+({\rm{definedp}}\,({\rm{cadr}}\,({\rm{unlabel}}\,({\it{x\/}})\index{unlabel}), {\it{segment\/}})\index{definedp} $\wedge$ {\rm{proper-alistp}}\,({\it{segment\/}})\index{proper-alistp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{litatom}}\,({\rm{cadr}}\,({\rm{unlabel}}\,({\it{x\/}})\index{unlabel}))\-
\end{tabbing}

\begin{verbatim}; Here is another fundamental fact:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-r-usr-data-objectps-put \\ \index{all-r-usr-data-objectps-put}
\=\+(\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-usr-data-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-usr-data-objectps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,({\rm{put}}\,({\it{x\/}}, {\it{n\/}}, {\it{lst\/}})\index{put}, {\it{r\/}})\index{all-r-usr-data-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-definedp-put-assoc \\ \index{not-definedp-put-assoc}
\=\+($\neg$ {\rm{definedp}}\,({\it{name1\/}}, {\it{alist\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\it{name1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{alist\/}})\index{put-assoc})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-usr-data-segmentp-deposit-adp \\ \index{proper-r-usr-data-segmentp-depo!sit-adp}
\=\+(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\it{segment\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\it{segment\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{r-usr-data-objectp}}\,({\it{val\/}}, {\it{r\/}})\index{r-usr-data-objectp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,({\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp}, {\it{r\/}})\index{proper-r-usr-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-global-proper-r-statep \\ \index{pop-global-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-pop-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-local-proper-r-statep \\ \index{set-local-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-set-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-set-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-global-proper-r-statep \\ \index{set-global-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-set-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-set-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-proper-r-statep \\ \index{jump-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pushj-proper-r-statep \\ \index{pushj-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pushj-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-pushj-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popj-proper-r-statep \\ \index{popj-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-popj-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-popj-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-proper-r-statep \\ \index{add-addr-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-add-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-proper-r-statep \\ \index{sub-addr-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-sub-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  eq-proper-r-statep \\ \index{eq-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-eq-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-eq-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-addr-proper-r-statep \\ \index{lt-addr-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-lt-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-proper-r-statep \\ \index{fetch-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-fetch-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  litatom-adp-name-instance \\ \index{litatom-adp-name-instance}
\=\+(\=\+{\rm{adpp}}\,(\=\+{\rm{untag}}\,({\rm{fetch-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch-adp})\index{untag}, \\ 
{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\-\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-alistp}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})\index{proper-alistp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{litatom}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\rm{fetch-adp}}\,(\=\+{\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{fetch-adp})\index{untag})\index{adp-name})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-zerop-sub1-difference \\ \index{not-zerop-sub1-difference}
((({\it{x\/}} $-$ {\it{y\/}}) $-\;1$) $=$ {\tt{0}}) $=$ ({\it{y\/}} $\not<$ ({\it{x\/}} $-\;1$))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-empty-stkp-implies-adpp-add-adp \\ \index{not-empty-stkp-implies-adpp-add!-adp}
\=\+(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\it{segment\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{add-adp}}\,({\it{adp\/}}, {\it{n\/}})\index{add-adp})\index{tag}, {\it{segment\/}})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{add-adp}}\,({\it{adp\/}}, $1\;+$ {\it{n\/}})\index{add-adp}, {\it{segment\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-proper-r-statep \\ \index{deposit-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-deposit-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-temp-stk-proper-r-statep \\ \index{fetch-temp-stk-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-fetch-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-temp-stk-proper-r-statep \\ \index{deposit-temp-stk-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-deposit-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-proper-r-statep \\ \index{add-int-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-add-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-with-carry-proper-r-statep \\ \index{add-int-with-carry-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-add-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-int-proper-r-statep \\ \index{add1-int-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-add1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-proper-r-statep \\ \index{sub-int-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-sub-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-with-carry-proper-r-statep \\ \index{sub-int-with-carry-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-sub-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-int-proper-r-statep \\ \index{sub1-int-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-sub1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  neg-int-proper-r-statep \\ \index{neg-int-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-neg-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-neg-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-int-proper-r-statep \\ \index{lt-int-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-lt-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  int-to-nat-proper-r-statep \\ \index{int-to-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-int-to-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-int-to-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-proper-r-statep \\ \index{add-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-add-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-with-carry-proper-r-statep \\ \index{add-nat-with-carry-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-add-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-nat-proper-r-statep \\ \index{add1-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-add1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-proper-r-statep \\ \index{sub-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-sub-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-with-carry-proper-r-statep \\ \index{sub-nat-with-carry-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-sub-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-nat-proper-r-statep \\ \index{sub1-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-sub1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-nat-proper-r-statep \\ \index{lt-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-lt-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-proper-r-statep \\ \index{mult2-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-mult2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-with-carry-out-proper-r-statep \\ \index{mult2-nat-with-carry-out-proper!-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-with-carry-out-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  div2-nat-proper-r-statep \\ \index{div2-nat-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-div2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-div2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bitv-proper-r-statep \\ \index{or-bitv-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-or-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bitv-proper-r-statep \\ \index{and-bitv-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-and-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bitv-proper-r-statep \\ \index{not-bitv-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-not-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bitv-proper-r-statep \\ \index{xor-bitv-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-xor-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-xor-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rsh-bitv-proper-r-statep \\ \index{rsh-bitv-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-rsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-rsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-bitv-proper-r-statep \\ \index{lsh-bitv-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-lsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bool-proper-r-statep \\ \index{or-bool-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-or-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bool-proper-r-statep \\ \index{and-bool-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-and-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bool-proper-r-statep \\ \index{not-bool-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-not-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-full-proper-r-statep \\ \index{jump-if-temp-stk-full-proper-r-!statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-jump-if-temp-stk-full-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-full-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-empty-proper-r-statep \\ \index{jump-if-temp-stk-empty-proper-r!-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-empty-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-nat-and-jump-proper-r-statep \\ \index{test-nat-and-jump-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-test-nat-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-int-and-jump-proper-r-statep \\ \index{test-int-and-jump-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-test-int-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bool-and-jump-proper-r-statep \\ \index{test-bool-and-jump-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-test-bool-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bitv-and-jump-proper-r-statep \\ \index{test-bitv-and-jump-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-test-bitv-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-locn-proper-r-statep \\ \index{pop-locn-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-pop-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locn-proper-r-statep \\ \index{locn-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-proper-r-statep \\ \index{jump-case-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-case-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,(\=\+{\rm{r-jump-case-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-step}, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-deposit-lst \\ \index{same-signature-deposit-lst}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}, {\it{segment2\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{adp-name}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})\index{adp-name}) \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\rm{adp-offset}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})\index{adp-offset}) $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\rm{deposit-lst}}\,({\it{lst\/}}, {\it{sp\/}}, {\it{segment2\/}})\index{deposit-lst})\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-fetch-n \\ \index{length-fetch-n}
{\rm{length}}\,({\rm{fetch-n}}\,({\it{n\/}}, {\it{sp\/}}, {\it{segment\/}})\index{fetch-n})\index{length} $=$ {\rm{fix}}\,({\it{n\/}})
\end{tabbing}

\begin{verbatim}; In the call case, the same-signature-deposit-lst lemma is used twice
; in establishing the sys-data-segment same-signature hyp of the 
; proper-r-statep-r-state theorem.  The first time is to strip off
; the deposit-lst across the formals and the second is to strip off
; the deposit-lst across the temp-var-dcls.  Both times we have to
; prove the third hyp of same-signature-deposit-lst lemma, the one
; that says there is enough room on the stack to push everything in
; the list.  The problem, as always, is that DIFFERENCE is messing
; things up.  We need a lemma for each occasion.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-deposit-lst-hyp-3-reliever-1 \\ \index{same-signature-deposit-lst-hyp-!3-reliever-1}
\=\+({\it{c\/}} $\not<$ ({\it{y\/}} $+$ {\it{x\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+\=\+{\bf if }{\it{c\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }({\it{c\/}} $-\;1$) $-$ {\it{x\/}}$\;${\bf  endif}\- \\ 
$<$$\;\;\;\;$({\it{y\/}} $-\;1$))\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-deposit-lst-hyp-3-reliever-2 \\ \index{same-signature-deposit-lst-hyp-!3-reliever-2}
\=\+({\it{c\/}} $\not<$ ({\it{y\/}} $+$ {\it{x\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+\=\+{\bf if }{\it{c\/}} $=$ {\tt{0}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }{\it{c\/}} $-\;1$$\;${\bf  endif}\- \\ 
$<$$\;\;\;\;$({\it{x\/}} $-\;1$))\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{verbatim}; Historical Note:  Until I got to the call case, I was unaware that
; it has been assumed that program bodies are always listps.  Otherwise,
; setting the pc to 0 on call would be illegal.  I had to add the listp
; requirement to r-programp to get call to go through.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  listp-program-body-generalized \\ \index{listp-program-body-generalized}
\=\+({\rm{r-prog-segmentp}}\,({\it{segment\/}})\index{r-prog-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\index{program-body})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-program-body \\ \index{listp-program-body}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}))\index{program-body})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-proper-r-statep \\ \index{call-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-call-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-call-proper-r-statep \\ \index{pop-call-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-pop-call-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-proper-r-statep \\ \index{ret-proper-r-statep}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-ret-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-ret-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-step}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{verbatim}; I will now disable all the individual okp, step, and clock functions.

\end{verbatim}
\noindent{\sc Event}:   Disable r-call-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-call-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-call-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ret-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ret-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ret-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-locn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-locn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-locn-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-constant-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-constant-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-constant-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-local-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-global-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-ctrl-stk-free-size-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-ctrl-stk-free-size-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-ctrl-stk-free-size-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-free-size-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-free-size-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-free-size-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-index-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-index-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-index-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-full-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-full-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-full-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-empty-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-empty-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-empty-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop*-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop*-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop*-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popn-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-local-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-global-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-locn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-locn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-locn-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-call-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-call-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-call-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-temp-stk-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-temp-stk-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-temp-stk-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-temp-stk-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-temp-stk-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-temp-stk-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-case-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-case-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-case-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pushj-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pushj-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pushj-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popj-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popj-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popj-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-local-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-global-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-nat-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-nat-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-nat-and-jump-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-int-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-int-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-int-and-jump-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bool-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bool-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bool-and-jump-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bitv-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bitv-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bitv-and-jump-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-no-op-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-no-op-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-no-op-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-addr-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-addr-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-eq-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-eq-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-eq-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-addr-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-with-carry-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-int-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-with-carry-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-int-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-neg-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-neg-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-neg-int-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-int-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-int-to-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-int-to-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-int-to-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-with-carry-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-with-carry-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-with-carry-out-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-with-carry-out-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-with-carry-out-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-div2-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-div2-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-div2-nat-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bitv-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bitv-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bitv-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-xor-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-xor-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-xor-bitv-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-rsh-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-rsh-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-rsh-bitv-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lsh-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lsh-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lsh-bitv-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bool-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bool-step-clock.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bool-step-clock.

\addvspace{18pt}

\begin{verbatim}; I now proceed to package all this up into two lemmas
; about r-step.  The first is that it preserves proper-r-statep.
; The second is the one-way-correspondence theorem for it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-r-halt \\ \index{proper-r-statep-r-halt}
{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\rightarrow$ {\rm{proper-r-statep}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt}, {\it{load-addr\/}})\index{proper-r-statep}
\end{tabbing}

\begin{verbatim}; I am trying to control the case explosion produced by r-step.
; It has two sources, r-ins-okp and r-ins-step.  I have arbitrarily
; decided to disable r-ins-okp and let r-ins-step drive the case
; expansion.  To get away with disabling r-ins-okp I need to be
; able to establish all of the individual instruction okps from
; (r-ins-okp ins r).  Then, when the previously proved lemmas
; for particular instructions need a particular okp, they will
; find it here:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-ins-okp-backchainer \\ \index{r-ins-okp-backchainer}
\=\+{\rm{r-ins-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{call}}) $\rightarrow$ {\rm{r-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{ret}}) $\rightarrow$ {\rm{r-ret-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{locn}}) $\rightarrow$ {\rm{r-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-local}}) $\rightarrow$ {\rm{r-push-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-global}}) $\rightarrow$ {\rm{r-push-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop}}) $\rightarrow$ {\rm{r-pop-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop*}}) $\rightarrow$ {\rm{r-pop*-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{popn}}) $\rightarrow$ {\rm{r-popn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-local}}) $\rightarrow$ {\rm{r-pop-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-global}}) $\rightarrow$ {\rm{r-pop-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-locn}}) $\rightarrow$ {\rm{r-pop-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-call}}) $\rightarrow$ {\rm{r-pop-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump}}) $\rightarrow$ {\rm{r-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump-case}}) $\rightarrow$ {\rm{r-jump-case-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pushj}}) $\rightarrow$ {\rm{r-pushj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{popj}}) $\rightarrow$ {\rm{r-popj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{set-local}}) $\rightarrow$ {\rm{r-set-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{set-global}}) $\rightarrow$ {\rm{r-set-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{no-op}}) $\rightarrow$ {\rm{r-no-op-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-addr}}) $\rightarrow$ {\rm{r-add-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-addr}}) $\rightarrow$ {\rm{r-sub-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{eq}}) $\rightarrow$ {\rm{r-eq-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-addr}}) $\rightarrow$ {\rm{r-lt-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{fetch}}) $\rightarrow$ {\rm{r-fetch-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{deposit}}) $\rightarrow$ {\rm{r-deposit-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-int}}) $\rightarrow$ {\rm{r-add-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add1-int}}) $\rightarrow$ {\rm{r-add1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-int}}) $\rightarrow$ {\rm{r-sub-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub1-int}}) $\rightarrow$ {\rm{r-sub1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{neg-int}}) $\rightarrow$ {\rm{r-neg-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-int}}) $\rightarrow$ {\rm{r-lt-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{int-to-nat}}) $\rightarrow$ {\rm{r-int-to-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-nat}}) $\rightarrow$ {\rm{r-add-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add1-nat}}) $\rightarrow$ {\rm{r-add1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-nat}}) $\rightarrow$ {\rm{r-sub-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub1-nat}}) $\rightarrow$ {\rm{r-sub1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-nat}}) $\rightarrow$ {\rm{r-lt-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{mult2-nat}}) $\rightarrow$ {\rm{r-mult2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{div2-nat}}) $\rightarrow$ {\rm{r-div2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{or-bitv}}) $\rightarrow$ {\rm{r-or-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{and-bitv}}) $\rightarrow$ {\rm{r-and-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bitv}}) $\rightarrow$ {\rm{r-not-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{xor-bitv}}) $\rightarrow$ {\rm{r-xor-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{rsh-bitv}}) $\rightarrow$ {\rm{r-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lsh-bitv}}) $\rightarrow$ {\rm{r-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{or-bool}}) $\rightarrow$ {\rm{r-or-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{and-bool}}) $\rightarrow$ {\rm{r-and-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bool}}) $\rightarrow$ {\rm{r-not-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-okp}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-ins-okp.

\addvspace{18pt}

\begin{verbatim}; The proof strategy I have in mind requires that the machine be able
; to walk all the way down the IF tree inside of a single r-ins-step.
; Unfortunately, we run out of stack space before we get there.  The
; solution is to define new versions of r-ins-step and
; r-ins-step-clock that are composed of two functions, each of which
; handles half of the instructions.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{r-ins-step2} \\  
\=\+{\rm{r-ins-step2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step2} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{r-eq-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-step} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-step} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-step} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-step} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-step} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-step} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-step} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-step} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-step} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-step} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-neg-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-step} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-int-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-step} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-int-to-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-step} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-step} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-step} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-step} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-step} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-with-carry-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-step} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-step} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-step} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-step} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-with-carry-out-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-div2-nat-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-step} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-step} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-step} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-step} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-xor-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-step} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-rsh-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-step} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-lsh-bitv-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-step} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-step} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-step} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bool-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-step} \\ 
{\bf otherwise }{\rm{r-halt}}\,({\it{r\/}}, {\tt{'}}{\tt{run}})\index{r-halt}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-step1} \\  
\=\+{\rm{r-ins-step1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step1} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{r-call-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-step} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{r-ret-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-step} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-locn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-step} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-constant-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-step} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-step} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-step} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-ctrl-stk-free-size-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-free-size-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-index-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-full-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-empty-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-step} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop*-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-step} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{r-popn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-step} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-step} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-step} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-locn-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-step} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-call-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-step} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-temp-stk-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-step} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-temp-stk-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-step} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-step} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-case-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-step} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{r-pushj-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-step} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{r-popj-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-step} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-local-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-step} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-global-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-step} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-nat-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-step} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-int-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-step} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bool-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-step} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bitv-and-jump-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-step} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{r-no-op-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-step} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-step} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-addr-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-step} \\ 
{\bf otherwise }{\rm{r-ins-step2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step2}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-step-clock2} \\  
\=\+{\rm{r-ins-step-clock2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock2} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{r-eq-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-step-clock} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-step-clock} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-step-clock} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-step-clock} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-step-clock} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-step-clock} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-step-clock} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-step-clock} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-step-clock} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-step-clock} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-neg-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-step-clock} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-int-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-step-clock} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-int-to-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-step-clock} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-step-clock} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-step-clock} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-step-clock} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-step-clock} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-with-carry-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-step-clock} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-step-clock} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-step-clock} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-step-clock} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-with-carry-out-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-step!-clock} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-div2-nat-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-step-clock} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-step-clock} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-step-clock} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-step-clock} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-xor-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-step-clock} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-rsh-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-step-clock} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-lsh-bitv-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-step-clock} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-step-clock} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-step-clock} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bool-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-step-clock} \\ 
{\bf otherwise }{\tt{0}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-step-clock1} \\  
\=\+{\rm{r-ins-step-clock1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock1} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{r-call-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-step-clock} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{r-ret-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-step-clock} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-locn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-step-clock} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-constant-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-step-clock} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-step-clock} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-step-clock} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-ctrl-stk-free-size-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-step-!clock} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-free-size-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-step-!clock} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-index-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-step-cloc!k} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-full-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-step-cl!ock} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-empty-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-step-c!lock} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-step-clock} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop*-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-step-clock} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{r-popn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-step-clock} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-step-clock} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-step-clock} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-locn-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-step-clock} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-call-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-step-clock} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-temp-stk-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-step-clock} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-temp-stk-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-step-clock} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-step-clock} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-case-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-step-clock} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{r-pushj-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-step-clock} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{r-popj-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-step-clock} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-local-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-step-clock} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-global-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-step-clock} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-nat-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-step-clock} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-int-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-step-clock} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bool-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-step-clock} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bitv-and-jump-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-step-clock} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{r-no-op-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-step-clock} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-step-clock} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-addr-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-step-clock} \\ 
{\bf otherwise }{\rm{r-ins-step-clock2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock2}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{verbatim}; We now prove these functions are equivalent to what we normally use:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-ins-step-is-r-ins-step1 \\ \index{r-ins-step-is-r-ins-step1}
{\rm{r-ins-step}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step} $=$ {\rm{r-ins-step1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step1}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-ins-step-clock-is-r-ins-step-clock1 \\ \index{r-ins-step-clock-is-r-ins-step-!clock1}
{\rm{r-ins-step-clock}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock} $=$ {\rm{r-ins-step-clock1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-step-clock1}
\end{tabbing}


\noindent{\sc Event}:   Disable r-ins-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ins-step-clock.

\addvspace{18pt}

\begin{verbatim}; Now we will prove that r-step preserves proper-r-statep.

; Consider (proper-r-statep (r-step r) load-addr).  The r-step will expand to ifs.
; We'll bring the ifs out of proper-r-statep with:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-if \\ \index{proper-r-statep-if}
\=\+{\rm{proper-r-statep}}\,(\=\+\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-, \\ 
{\it{load-addr\/}})\-\index{proper-r-statep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{proper-r-statep}}\,({\it{b\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
{\bf else }{\rm{proper-r-statep}}\,({\it{c\/}}, {\it{load-addr\/}})\index{proper-r-statep}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; That will elevate the test a, which will be (r-ins-okp ins r) the first
; time and then particular instruction opcodes subsequently.  Under each
; particular assumption we'll have to prove (proper-r-statep b load-addr) where
; b will be the corresponding r-xxx-step.  Our just proved backchainer
; and our previously proved lemmas will hit each.  However, because we
; can't explore the full depth of r-ins-step, we will first do this for
; r-ins-step2 and then for r-step (which will expand into r-ins-step and
; hence into r-ins-step1, where it will then do the first half of the nest
; and then appeal to our r-ins-step2 work).

\end{verbatim}
\noindent{\sc Event}:   Disable r-current-instruction.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-r-ins-step2 \\ \index{proper-r-statep-r-ins-step2}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{r-ins-step2}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-step2}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-ins-step2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-r-step \\ \index{proper-r-statep-r-step}
{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\rightarrow$ {\rm{proper-r-statep}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{load-addr\/}})\index{proper-r-statep}
\end{tabbing}

\begin{verbatim}; Note:  This was easier before I added Bill Young's requested 7 instructions.
; It was those 7 that put me beyond the depth of the stack!

; We repeat the exercise now, for one-way-correspondence.

; First we draw out the ifs.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-$>$i-if \\ \index{r-$>$i-if}
\=\+{\rm{r-$>$i}}\,(\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-)\index{r-$>$i} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{r-$>$i}}\,({\it{b\/}})\index{r-$>$i} \\ 
{\bf else }{\rm{r-$>$i}}\,({\it{c\/}})\index{r-$>$i}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-if \\ \index{i-if}
\=\+{\rm{i}}\,(\=\+{\it{r\/}}, \\ 
\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-, \\ 
{\it{load-addr\/}})\-\index{i} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{i}}\,({\it{r\/}}, {\it{b\/}}, {\it{load-addr\/}})\index{i} \\ 
{\bf else }{\rm{i}}\,({\it{r\/}}, {\it{c\/}}, {\it{load-addr\/}})\index{i}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-if-if \\ \index{equal-if-if}
\=\+(\=\+\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{d\/}} \\ 
{\bf else }{\it{e\/}}$\;${\bf  endif}\-)\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} $=$ {\it{d\/}} \\ 
{\bf else }{\it{c\/}} $=$ {\it{e\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Note how clever the above strategy is.  Without this lemma, which extracts
; the branches of two isomorphic if nests simultaneously from the arms of
; the equal, we would cross multiply the tests.

; Then we arrange for the error and termination cases.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-0 \\ \index{i-0}
{\rm{i}}\,({\it{i\/}}, {\tt{0}}, {\it{load-addr\/}})\index{i} $=$ {\it{i\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-halt-run \\ \index{r-halt-run}
({\rm{r-statep}}\,({\it{r\/}})\index{r-statep} $\wedge$ ({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}})) $\rightarrow$ ({\rm{r-halt}}\,({\it{r\/}}, {\tt{'}}{\tt{run}})\index{r-halt} $=$ {\it{r\/}})
\end{tabbing}

\begin{verbatim}; Now we are really shooting for one-way-correspondence-r-i-step, below,
; but it has two occurrences of (r-step r) in it and I don't want to deal
; with them both at once.  So I'll first prove a mildly simplified version
; and then prove that if the (r-step r) is non-erroneous then the r-ins-okp
; below holds.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  one-way-correspondence-r-i-step2-simplified \\ \index{one-way-correspondence-r-i-step!2-simplified}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-$>$i}}\,({\rm{r-ins-step2}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-step2})\index{r-$>$i} \\ 
$=$$\;\;\;\;${\rm{i}}\,(\=\+{\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, \\ 
{\rm{r-ins-step-clock2}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-step-clock2}, \\ 
{\it{load-addr\/}})\-\index{i})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-ins-step-clock2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  one-way-correspondence-r-i-step-simplified \\ \index{one-way-correspondence-r-i-step!-simplified}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{r-$>$i}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-$>$i} $=$ {\rm{i}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\rm{r-step-clock}}\,({\it{r\/}})\index{r-step-clock}, {\it{load-addr\/}})\index{i})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-$>$i-r-halt \\ \index{r-$>$i-r-halt}
({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{r-$>$i}}\,({\rm{r-halt}}\,({\it{r\/}}, {\tt{'}}{\tt{halt}})\index{r-halt})\index{r-$>$i} $=$ {\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-psw-r-halt \\ \index{r-psw-r-halt}
{\rm{r-psw}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-psw} $=$ {\it{psw\/}}
\end{tabbing}

\begin{verbatim}; The double occurrence of r-step in the thm below makes its direct proof
; very explosive.  So I proved the simplified version above, from which this
; version is easy.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  one-way-correspondence-r-i-step \\ \index{one-way-correspondence-r-i-step}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{r-$>$i}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-$>$i} $=$ {\rm{i}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\rm{r-step-clock}}\,({\it{r\/}})\index{r-step-clock}, {\it{load-addr\/}})\index{i})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-plus \\ \index{i-plus}
{\rm{i}}\,({\it{i\/}}, {\it{x\/}} $+$ {\it{y\/}}, {\it{load-addr\/}})\index{i} $=$ {\rm{i}}\,({\rm{i}}\,({\it{i\/}}, {\it{x\/}}, {\it{load-addr\/}})\index{i}, {\it{y\/}}, {\it{load-addr\/}})\index{i}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  once-errorp-always-errorp-step \\ \index{once-errorp-always-errorp-step}
($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-psw})\index{errorp}) $\rightarrow$ ($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\it{r\/}})\index{r-psw})\index{errorp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  once-errorp-always-errorp \\ \index{once-errorp-always-errorp}
($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp}) $\rightarrow$ ($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\it{r\/}})\index{r-psw})\index{errorp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  one-way-correspondence-r-i \\ \index{one-way-correspondence-r-i}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{r-$>$i}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-$>$i} $=$ {\rm{i}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\rm{clock}}\,({\it{r\/}}, {\it{n\/}})\index{clock}, {\it{load-addr\/}})\index{i})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-r \\ \index{proper-r-statep-r}
{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\rightarrow$ {\rm{proper-r-statep}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r}, {\it{load-addr\/}})\index{proper-r-statep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-r-usr-data-objectps-implies-all-i-usr-data-objectps \\ \index{all-r-usr-data-objectps-implies!-all-i-usr-data-objectps}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{all-r-usr-data-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-usr-data-objectps}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-i-usr-data-objectps}}\,({\it{lst\/}}, {\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{all-i-usr-data-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-usr-data-segmentp-implies-proper-i-usr-data-segmentp \\ \index{proper-r-usr-data-segmentp-implie!s-proper-i-usr-data-segmentp}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ {\rm{proper-r-usr-data-segmentp}}\,({\it{segment\/}}, {\it{r\/}})\index{proper-r-usr-data-segmentp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\it{segment\/}}, {\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{proper-i-usr-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-proper-i-user-data-segmentp \\ \index{proper-r-statep-implies-proper-i!-user-data-segmentp}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, {\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{proper-i-usr-data-segmentp}\-
\end{tabbing}


\begin{verbatim}; Book: p.events.  Finally, we define the p machine itself, the semantics
; of Piton.  

\end{verbatim}
\noindent{\sc Event}:   Set the status of all events.  The status of each event is to be set as follows.  Each `boot-strap' satellite is to be returned to the initial condition.  Each `add-shell' satellite is to be enabled.  enabled.  Anything not otherwise mentioned is to be disabled.   Name this event `close-data-base-4'.\index{close-data-base-4}

\addvspace{18pt}

\begin{verbatim}; We now build p-r.events from its subbooks.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-halt} \\  
\=\+{\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{p\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{psw\/}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{rget}$\;\;$
{\rm{rget}}\,({\it{n\/}}, {\it{lst\/}})\index{rget} $=$ {\rm{get}}\,(({\rm{length}}\,({\it{lst\/}})\index{length} $-$ {\it{n\/}}) $-\;1$, {\it{lst\/}})\index{get}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{rput} \\  
{\rm{rput}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{rput} $=$ {\rm{put}}\,({\it{val\/}}, ({\rm{length}}\,({\it{lst\/}})\index{length} $-$ {\it{n\/}}) $-\;1$, {\it{lst\/}})\index{put}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{push}$\;\;$
{\rm{push}}\,({\it{x\/}}, {\it{stk\/}})\index{push} $=$ {\rm{cons}}\,({\it{x\/}}, {\it{stk\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{popn} \\  
\=\+{\rm{popn}}\,({\it{n\/}}, {\it{x\/}})\index{popn} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{x\/}} \\ 
{\bf else }{\rm{popn}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{x\/}}))\index{popn}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{top1}$\;\;$
{\rm{top1}}\,({\it{stk\/}})\index{top1} $=$ {\rm{top}}\,({\rm{pop}}\,({\it{stk\/}})\index{pop})\index{top}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{top2}$\;\;$
{\rm{top2}}\,({\it{stk\/}})\index{top2} $=$ {\rm{top}}\,({\rm{pop}}\,({\rm{pop}}\,({\it{stk\/}})\index{pop})\index{pop})\index{top}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-find-labelp} \\  
\=\+{\rm{all-find-labelp}}\,({\it{lab-lst\/}}, {\it{lst\/}})\index{all-find-labelp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lab-lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+{\rm{find-labelp}}\,({\rm{car}}\,({\it{lab-lst\/}}), {\it{lst\/}})\index{find-labelp} \\ 
$\wedge$$\;\;\;\;${\rm{all-find-labelp}}\,({\rm{cdr}}\,({\it{lab-lst\/}}), {\it{lst\/}})\index{all-find-labelp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-objectp} \\  
\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{type}}\,({\it{x\/}})\index{type}: \\ 
{\bf case = }{\it{nat\/}} \\ 
{\bf then }{\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp} \\ 
{\bf case = }{\it{int\/}} \\ 
{\bf $\;\;$then }{\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-integerp} \\ 
{\bf case = }{\it{bitv\/}} \\ 
{\bf $\;\;$then }{\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{bit-vectorp} \\ 
{\bf case = }{\it{bool\/}} \\ 
{\bf $\;\;$then }{\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp} \\ 
{\bf case = }{\it{addr\/}} \\ 
{\bf $\;\;$then }{\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{adpp} \\ 
{\bf case = }{\it{pc\/}} \\ 
{\bf $\;\;$then }{\rm{pcpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{pcpp} \\ 
{\bf case = }{\it{subr\/}} \\ 
{\bf $\;\;$then }{\rm{definedp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-objectp-type} \\  
{\rm{p-objectp-type}}\,({\it{type\/}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} $=$ (({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\it{type\/}}) $\wedge$ {\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-p-objectps} \\  
\=\+{\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }{\rm{p-objectp}}\,({\rm{car}}\,({\it{lst\/}}), {\it{p\/}})\index{p-objectp} $\wedge$ {\rm{all-p-objectps}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{p\/}})\index{all-p-objectps}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{add1-p-pc}$\;\;$
{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc} $=$ {\rm{add1-addr}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{add1-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-current-program} \\  
{\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program} $=$ {\rm{definition}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-current-instruction} \\  
\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction} \\ 
$=$$\;\;\;\;${\rm{unlabel}}\,({\rm{get}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{program-body})\index{get})\index{unlabel}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-frame}$\;\;$
{\rm{p-frame}}\,({\it{bindings\/}}, {\it{ret-pc\/}})\index{p-frame} $=$ {\rm{list}}\,({\it{bindings\/}}, {\it{ret-pc\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{local-var-value} \\  
{\rm{local-var-value}}\,({\it{var\/}}, {\it{ctrl-stk\/}})\index{local-var-value} $=$ {\rm{definiens}}\,({\it{var\/}}, {\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\index{definiens}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{set-local-var-value} \\  
\=\+{\rm{set-local-var-value}}\,({\it{val\/}}, {\it{var\/}}, {\it{ctrl-stk\/}})\index{set-local-var-value} \\ 
$=$$\;\;\;\;${\rm{push}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-value}}\,({\it{val\/}}, {\it{var\/}}, {\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\index{put-value}, \\ 
{\rm{ret-pc}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{pop}}\,({\it{ctrl-stk\/}})\index{pop})\-\index{push}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pair-formal-vars-with-actuals} \\  
\=\+{\rm{pair-formal-vars-with-actuals}}\,({\it{formal-vars\/}}, {\it{temp-stk\/}})\index{pair-formal-vars-with-actuals} \\ 
$=$$\;\;\;\;${\rm{pairlist}}\,({\it{formal-vars\/}}, {\rm{rev}}\,({\rm{first-n}}\,({\rm{length}}\,({\it{formal-vars\/}})\index{length}, {\it{temp-stk\/}})\index{first-n})\index{rev})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pair-temps-with-initial-values} \\  
\=\+{\rm{pair-temps-with-initial-values}}\,({\it{temp-var-dcls\/}})\index{pair-temps-with-initial-values} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{temp-var-dcls\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,({\rm{caar}}\,({\it{temp-var-dcls\/}}), {\rm{cadar}}\,({\it{temp-var-dcls\/}})), \\ 
{\rm{pair-temps-with-initial-values}}\,({\rm{cdr}}\,({\it{temp-var-dcls\/}}))\index{pair-temps-with-initial-values})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{make-p-call-frame} \\  
\=\+{\rm{make-p-call-frame}}\,({\it{formal-vars\/}}, {\it{temp-stk\/}}, {\it{temp-var-dcls\/}}, {\it{ret-pc\/}})\index{make-p-call-frame} \\ 
$=$$\;\;\;\;${\rm{p-frame}}\,(\=\+{\rm{append}}\,(\=\+{\rm{pair-formal-vars-with-actuals}}\,({\it{formal-vars\/}}, {\it{temp-stk\/}})\index{pair-formal-vars-with-actuals}, \\ 
{\rm{pair-temps-with-initial-values}}\,({\it{temp-var-dcls\/}})\index{pair-temps-with-initial-values})\-, \\ 
{\it{ret-pc\/}})\-\index{p-frame}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-call-okp} \\  
\=\+{\rm{p-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-okp} \\ 
$=$$\;\;\;\;$(\=\+(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{push}}\,(\=\+{\rm{make-p-call-frame}}\,(\=\+{\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{formal-vars}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{temp-var-dcls}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{temp-var-dcls}, \\ 
{\rm{add1-addr}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{add1-addr})\-\index{make-p-call-frame}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-\index{push})\index{p-ctrl-stk-size})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{formal-vars})\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-call-step} \\  
\=\+{\rm{p-call-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{make-p-call-frame}}\,(\=\+{\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{formal-vars}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{temp-var-dcls}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{temp-var-dcls}, \\ 
{\rm{add1-addr}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{add1-addr})\-\index{make-p-call-frame}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-\index{push}, \\ 
{\rm{popn}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{definition}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{formal-vars})\index{length}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{popn}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ret-okp}$\;\;$
{\rm{p-ret-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-okp} $=$ {\bf{t}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ret-step} \\  
\=\+{\rm{p-ret-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{pop}) \\ 
{\bf then }{\rm{p-state}}\,(\=\+{\rm{ret-pc}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top})\index{ret-pc}, \\ 
{\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{pop}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state} \\ 
{\bf else }{\rm{p-halt}}\,({\it{p\/}}, {\tt{'}}{\tt{halt}})\index{p-halt}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-locn-okp} \\  
\=\+{\rm{p-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{local-var-value}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{local-var-value}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{local-var-value}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{local-var-value})\index{untag} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{bindings}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top})\index{bindings})\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-locn-step} \\  
\=\+{\rm{p-locn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{cdr}}\,({\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{local-var-value}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{local-var-value})\index{untag}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top})\index{bindings})\-\index{get}), \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-constant-okp} \\  
\=\+{\rm{p-push-constant-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-okp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{unabbreviate-constant} \\  
\=\+{\rm{unabbreviate-constant}}\,({\it{c\/}}, {\it{p\/}})\index{unabbreviate-constant} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{c\/}} $=$ {\tt{'}}{\tt{pc}}$\;\;${\bf then }{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc} \\ 
{\bf elseif }{\it{c\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{pc}}\,({\it{c\/}}, {\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{pc} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-constant-step} \\  
\=\+{\rm{p-push-constant-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,({\rm{unabbreviate-constant}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{p\/}})\index{unabbreviate-constant}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-local-okp} \\  
\=\+{\rm{p-push-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-okp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-local-step} \\  
\=\+{\rm{p-push-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,({\rm{local-var-value}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{local-var-value}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-global-okp} \\  
\=\+{\rm{p-push-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-okp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-global-step} \\  
\=\+{\rm{p-push-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{fetch}}\,({\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-ctrl-stk-free-size-okp} \\  
\=\+{\rm{p-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-ctrl-stk-free-size-step} \\  
\=\+{\rm{p-push-ctrl-stk-free-size-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}\-)\-\index{tag}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-temp-stk-free-size-okp} \\  
\=\+{\rm{p-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-temp-stk-free-size-step} \\  
\=\+{\rm{p-push-temp-stk-free-size-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $-$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length})\-\index{tag}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-temp-stk-index-okp} \\  
\=\+{\rm{p-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-okp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-push-temp-stk-index-step} \\  
\=\+{\rm{p-push-temp-stk-index-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, ({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $-$ {\rm{cadr}}\,({\it{ins\/}})) $-\;1$)\index{tag}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-if-temp-stk-full-okp}$\;\;$
{\rm{p-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp} $=$ {\bf{t}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-if-temp-stk-full-step} \\  
\=\+{\rm{p-jump-if-temp-stk-full-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+\=\+{\bf if }{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $=$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} \\ 
{\bf then }{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{pc} \\ 
{\bf else }{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-if-temp-stk-empty-okp}$\;\;$
{\rm{p-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp} $=$ {\bf{t}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-if-temp-stk-empty-step} \\  
\=\+{\rm{p-jump-if-temp-stk-empty-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+\=\+{\bf if }{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $\simeq {\tt{0}}$ \\ 
{\bf then }{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{pc} \\ 
{\bf else }{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-okp}$\;\;$
{\rm{p-pop-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-okp} $=$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-step} \\  
\=\+{\rm{p-pop-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop*-okp} \\  
{\rm{p-pop*-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-okp} $=$ ({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{cadr}}\,({\it{ins\/}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop*-step} \\  
\=\+{\rm{p-pop*-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{popn}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{popn}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-popn-okp} \\  
\=\+{\rm{p-popn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $\not<$ ($1\;+$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-popn-step} \\  
\=\+{\rm{p-popn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{popn}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, {\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{popn}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-local-okp}$\;\;$
{\rm{p-pop-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-okp} $=$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-local-step} \\  
\=\+{\rm{p-pop-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{set-local-var-value}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-\index{set-local-var-value}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-global-okp}$\;\;$
{\rm{p-pop-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-okp} $=$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-global-step} \\  
\=\+{\rm{p-pop-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\-\index{deposit}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-locn-okp} \\  
\=\+{\rm{p-pop-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{local-var-value}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{local-var-value}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{local-var-value}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{local-var-value})\index{untag} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{bindings}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top})\index{bindings})\index{length})\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{put-value-indirect} \\  
\=\+{\rm{put-value-indirect}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put-value-indirect} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{lst\/}}) \\ 
{\bf then }\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{cons}}\,({\rm{cons}}\,({\rm{caar}}\,({\it{lst\/}}), {\it{val\/}}), {\rm{cdr}}\,({\it{lst\/}})) \\ 
{\bf else }{\rm{cons}}\,({\rm{car}}\,({\it{lst\/}}), {\rm{put-value-indirect}}\,({\it{val\/}}, {\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{lst\/}}))\index{put-value-indirect})$\;${\bf  endif}\- \\ 
{\bf else }{\it{lst\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{set-local-var-indirect} \\  
\=\+{\rm{set-local-var-indirect}}\,({\it{val\/}}, {\it{index\/}}, {\it{ctrl-stk\/}})\index{set-local-var-indirect} \\ 
$=$$\;\;\;\;${\rm{push}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-value-indirect}}\,({\it{val\/}}, {\it{index\/}}, {\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\index{put-value-indirect}, \\ 
{\rm{ret-pc}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{pop}}\,({\it{ctrl-stk\/}})\index{pop})\-\index{push}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-locn-step} \\  
\=\+{\rm{p-pop-locn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{set-local-var-indirect}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{untag}}\,({\rm{local-var-value}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-\index{local-var-value})\index{untag}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-\index{set-local-var-indirect}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-call-okp} \\  
\=\+{\rm{p-pop-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{subr}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-call-okp}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}), \\ 
{\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{p\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\index{p-call-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pop-call-step} \\  
\=\+{\rm{p-pop-call-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-step} \\ 
$=$$\;\;\;\;${\rm{p-call-step}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}), \\ 
{\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{p\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\index{p-call-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-fetch-temp-stk-okp} \\  
\=\+{\rm{p-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} $<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-fetch-temp-stk-step} \\  
\=\+{\rm{p-fetch-temp-stk-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{rget}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{rget}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-deposit-temp-stk-okp} \\  
\=\+{\rm{p-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-deposit-temp-stk-step} \\  
\=\+{\rm{p-deposit-temp-stk-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{rput}}\,(\=\+{\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{rput}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-okp}$\;\;$
{\rm{p-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-okp} $=$ {\bf{t}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-step} \\  
\=\+{\rm{p-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-case-okp} \\  
\=\+{\rm{p-jump-case-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} $<$ {\rm{length}}\,({\rm{cdr}}\,({\it{ins\/}}))\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-jump-case-step} \\  
\=\+{\rm{p-jump-case-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{pc}}\,(\=\+{\rm{get}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, {\rm{cdr}}\,({\it{ins\/}}))\index{get}, \\ 
{\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\-\index{pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pushj-okp} \\  
{\rm{p-pushj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-okp} $=$ ({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-pushj-step} \\  
\=\+{\rm{p-pushj-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{pc}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,({\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-popj-okp} \\  
\=\+{\rm{p-popj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{area-name}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-popj-step} \\  
\=\+{\rm{p-popj-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-set-local-okp}$\;\;$
{\rm{p-set-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-okp} $=$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-set-local-step} \\  
\=\+{\rm{p-set-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{set-local-var-value}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-\index{set-local-var-value}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-set-global-okp}$\;\;$
{\rm{p-set-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-okp} $=$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-set-global-step} \\  
\=\+{\rm{p-set-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{cadr}}\,({\it{ins\/}}), {\tt{0}}))\index{tag}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\-\index{deposit}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-and-jump-okp} \\  
\=\+{\rm{p-test-and-jump-okp}}\,({\it{ins\/}}, {\it{type\/}}, {\it{test\/}}, {\it{p\/}})\index{p-test-and-jump-okp} \\ 
$=$$\;\;\;\;$({\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) $\wedge$ {\rm{p-objectp-type}}\,({\it{type\/}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-and-jump-step} \\  
\=\+{\rm{p-test-and-jump-step}}\,({\it{test\/}}, {\it{lab\/}}, {\it{p\/}})\index{p-test-and-jump-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{test\/}} \\ 
{\bf then }{\rm{p-state}}\,(\=\+{\rm{pc}}\,({\it{lab\/}}, {\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state} \\ 
{\bf else }{\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}$\;${\bf  endif}\-\-
\end{tabbing}


\begin{tabbing}{\sc Definition}:\index{p-test-nat-and-jump-okp} \\  
\=\+{\rm{p-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{nat}}, \\ 
{\rm{p-test-natp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-natp}, \\ 
{\it{p\/}})\-\index{p-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-nat-and-jump-step} \\  
\=\+{\rm{p-test-nat-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-step}}\,(\=\+{\rm{p-test-natp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-natp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\it{p\/}})\-\index{p-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-int-and-jump-okp} \\  
\=\+{\rm{p-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{int}}, \\ 
{\rm{p-test-intp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-intp}, \\ 
{\it{p\/}})\-\index{p-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-int-and-jump-step} \\  
\=\+{\rm{p-test-int-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-step}}\,(\=\+{\rm{p-test-intp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-intp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\it{p\/}})\-\index{p-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-bool-and-jump-okp} \\  
\=\+{\rm{p-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{bool}}, \\ 
{\rm{p-test-boolp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-boolp}, \\ 
{\it{p\/}})\-\index{p-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-bool-and-jump-step} \\  
\=\+{\rm{p-test-bool-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-step}}\,(\=\+{\rm{p-test-boolp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-boolp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\it{p\/}})\-\index{p-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-bitv-and-jump-okp} \\  
\=\+{\rm{p-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-okp}}\,(\=\+{\it{ins\/}}, \\ 
{\tt{'}}{\tt{bitv}}, \\ 
{\rm{p-test-bitvp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-bitvp}, \\ 
{\it{p\/}})\-\index{p-test-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-test-bitv-and-jump-step} \\  
\=\+{\rm{p-test-bitv-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-step} \\ 
$=$$\;\;\;\;${\rm{p-test-and-jump-step}}\,(\=\+{\rm{p-test-bitvp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{p-test-bitvp}, \\ 
{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\it{p\/}})\-\index{p-test-and-jump-step}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-no-op-okp}$\;\;$
{\rm{p-no-op-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-okp} $=$ {\bf{t}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-no-op-step} \\  
\=\+{\rm{p-no-op-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-addr-okp} \\  
\=\+{\rm{p-add-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{add-addr}, \\ 
{\it{p\/}})\-\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-addr-step} \\  
\=\+{\rm{p-add-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{add-addr}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{add-addr}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-addr-okp} \\  
\=\+{\rm{p-sub-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{offset} $\not<$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-addr-step} \\  
\=\+{\rm{p-sub-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{sub-addr}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{sub-addr}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-eq-okp} \\  
\=\+{\rm{p-eq-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{type} $=$ {\rm{type}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{type}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-eq-step} \\  
\=\+{\rm{p-eq-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$=$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-)\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lt-addr-okp} \\  
\=\+{\rm{p-lt-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{area-name}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{area-name} \\ 
$=$$\;\;\;\;${\rm{area-name}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{area-name})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lt-addr-step} \\  
\=\+{\rm{p-lt-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{offset}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{offset} \\ 
$<$$\;\;\;\;${\rm{offset}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{offset}\-)\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-fetch-okp} \\  
\=\+{\rm{p-fetch-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-fetch-step} \\  
\=\+{\rm{p-fetch-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{fetch}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-deposit-okp} \\  
\=\+{\rm{p-deposit-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-deposit-step} \\  
\=\+{\rm{p-deposit-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{deposit}}\,(\=\+{\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, \\ 
{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\-\index{deposit}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-int-okp} \\  
\=\+{\rm{p-add-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{iplus}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-int-step} \\  
\=\+{\rm{p-add-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{iplus})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-int-with-carry-okp} \\  
\=\+{\rm{p-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-int-with-carry-step} \\  
\=\+{\rm{p-add-int-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,(\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{iplus})\-\index{iplus}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\index{pop})\-\index{push})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add1-int-okp} \\  
\=\+{\rm{p-add1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{iplus}}\,({\tt{1}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{iplus}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add1-int-step} \\  
\=\+{\rm{p-add1-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{int}}, {\rm{iplus}}\,({\tt{1}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{iplus})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-int-okp} \\  
\=\+{\rm{p-sub-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{idifference}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-int-step} \\  
\=\+{\rm{p-sub-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{idifference})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-int-with-carry-okp} \\  
\=\+{\rm{p-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-int-with-carry-step} \\  
\=\+{\rm{p-sub-int-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{int}}, \\ 
{\rm{fix-small-integer}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, \\ 
{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{fix-small-integer})\-\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{iplus}}\,(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, \\ 
{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat})\-\index{iplus})\-\index{idifference}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\index{pop})\-\index{push})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub1-int-okp} \\  
\=\+{\rm{p-sub1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{idifference}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, {\tt{1}})\index{idifference}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub1-int-step} \\  
\=\+{\rm{p-sub1-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{int}}, {\rm{idifference}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, {\tt{1}})\index{idifference})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-neg-int-okp} \\  
\=\+{\rm{p-neg-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,(\=\+{\rm{inegate}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{inegate}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-integerp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-neg-int-step} \\  
\=\+{\rm{p-neg-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{int}}, {\rm{inegate}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{inegate})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lt-int-okp} \\  
\=\+{\rm{p-lt-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lt-int-step} \\  
\=\+{\rm{p-lt-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,({\rm{ilessp}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{ilessp})\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-int-to-nat-okp} \\  
\=\+{\rm{p-int-to-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{negativep}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-int-to-nat-step} \\  
\=\+{\rm{p-int-to-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{tag}, {\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-nat-okp} \\  
\=\+{\rm{p-add-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-nat-step} \\  
\=\+{\rm{p-add-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-)\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-nat-with-carry-okp} \\  
\=\+{\rm{p-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add-nat-with-carry-step} \\  
\=\+{\rm{p-add-nat-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+\=\+{\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$+$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\index{pop})\-\index{push})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add1-nat-okp} \\  
\=\+{\rm{p-add1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,($1\;+$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-add1-nat-step} \\  
\=\+{\rm{p-add1-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, $1\;+$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-nat-okp} \\  
\=\+{\rm{p-sub-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} $\not<$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-nat-step} \\  
\=\+{\rm{p-sub-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-)\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-nat-with-carry-okp} \\  
\=\+{\rm{p-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub-nat-with-carry-step} \\  
\=\+{\rm{p-sub-nat-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
\=\+{\bf if }\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat})\-\- \\ 
{\bf then }\=\+{\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp} \\ 
$-$$\;\;\;\;$(\=\+(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat})\- \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag})\-\- \\ 
{\bf else }\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$-$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat})\-\-$\;${\bf  endif}\-)\-\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$<$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} \\ 
$+$$\;\;\;\;${\rm{bool-to-nat}}\,({\rm{untag}}\,({\rm{top2}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top2})\index{untag})\index{bool-to-nat})\-\-)\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\index{pop})\-\index{push})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub1-nat-okp} \\  
\=\+{\rm{p-sub1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} $\not\simeq {\tt{0}}$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-sub1-nat-step} \\  
\=\+{\rm{p-sub1-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} $-\;1$)\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lt-nat-okp} \\  
\=\+{\rm{p-lt-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lt-nat-step} \\  
\=\+{\rm{p-lt-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag} \\ 
$<$$\;\;\;\;${\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}\-)\index{bool}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-mult2-nat-okp} \\  
\=\+{\rm{p-mult2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-naturalp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-mult2-nat-step} \\  
\=\+{\rm{p-mult2-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{2}} $*$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-mult2-nat-with-carry-out-okp} \\  
\=\+{\rm{p-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-mult2-nat-with-carry-out-step} \\  
\=\+{\rm{p-mult2-nat-with-carry-out-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\rm{fix-small-natural}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{fix-small-natural})\-\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{bool}}\,($\neg$ {\rm{small-naturalp}}\,(\=\+{\tt{2}} $*$ {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-\index{small-naturalp})\index{bool}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-div2-nat-okp} \\  
\=\+{\rm{p-div2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-div2-nat-step} \\  
\=\+{\rm{p-div2-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} ${}${\bf{mod}}${}$ {\tt{2}})\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag} $\div$ {\tt{2}})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-or-bitv-okp} \\  
\=\+{\rm{p-or-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-or-bitv-step} \\  
\=\+{\rm{p-or-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{or-bitv}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{or-bitv})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-and-bitv-okp} \\  
\=\+{\rm{p-and-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-and-bitv-step} \\  
\=\+{\rm{p-and-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{and-bitv}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{and-bitv})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-not-bitv-okp} \\  
\=\+{\rm{p-not-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-not-bitv-step} \\  
\=\+{\rm{p-not-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{bitv}}, {\rm{not-bitv}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{not-bitv})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-xor-bitv-okp} \\  
\=\+{\rm{p-xor-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-xor-bitv-step} \\  
\=\+{\rm{p-xor-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bitv}}, \\ 
{\rm{xor-bitv}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{xor-bitv})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-rsh-bitv-okp} \\  
\=\+{\rm{p-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-rsh-bitv-step} \\  
\=\+{\rm{p-rsh-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{bitv}}, {\rm{rsh-bitv}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{rsh-bitv})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lsh-bitv-okp} \\  
\=\+{\rm{p-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-lsh-bitv-step} \\  
\=\+{\rm{p-lsh-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{bitv}}, {\rm{lsh-bitv}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{lsh-bitv})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-or-bool-okp} \\  
\=\+{\rm{p-or-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-or-bool-step} \\  
\=\+{\rm{p-or-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{or-bool}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{or-bool})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-and-bool-okp} \\  
\=\+{\rm{p-and-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-and-bool-step} \\  
\=\+{\rm{p-and-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{bool}}, \\ 
{\rm{and-bool}}\,(\=\+{\rm{untag}}\,({\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top1})\index{untag}, \\ 
{\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\-\index{and-bool})\-\index{tag}, \\ 
{\rm{pop}}\,({\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-not-bool-okp} \\  
\=\+{\rm{p-not-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-okp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-not-bool-step} \\  
\=\+{\rm{p-not-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{add1-p-pc}}\,({\it{p\/}})\index{add1-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{push}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{bool}}, {\rm{not-bool}}\,({\rm{untag}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{top})\index{untag})\index{not-bool})\index{tag}, \\ 
{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{pop})\-\index{push}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ins-okp} \\  
\=\+{\rm{p-ins-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{p-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-okp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{p-ret-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-okp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-okp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-constant-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-okp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-okp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-okp} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-okp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop*-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-okp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{p-popn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-okp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-okp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-okp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-okp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-okp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-okp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-okp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-okp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-case-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-okp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{p-pushj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-okp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{p-popj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-okp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-okp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-okp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-okp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-okp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-okp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-okp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{p-no-op-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-okp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-okp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-okp} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{p-eq-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-okp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-okp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-okp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-okp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-okp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-okp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-okp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-okp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-okp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-okp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-neg-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-okp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-okp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-int-to-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-okp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-okp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-okp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-okp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-okp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-okp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-okp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-okp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-okp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-div2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-okp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-okp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-okp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-okp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-xor-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-okp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-okp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-okp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-okp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-okp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-okp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ins-step} \\  
\=\+{\rm{p-ins-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{p-call-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-step} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{p-ret-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-step} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-locn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-step} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-constant-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-step} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-step} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-step} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-ctrl-stk-free-size-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-free-size-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-index-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-full-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-empty-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-step} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-step} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop*-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-step} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{p-popn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-step} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-step} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-step} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-locn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-step} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-call-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-step} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-temp-stk-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-step} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-temp-stk-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-step} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-step} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-case-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-step} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{p-pushj-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-step} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{p-popj-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-step} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-step} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-step} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-nat-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-step} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-int-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-step} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bool-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-step} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bitv-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-step} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{p-no-op-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-step} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-step} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-step} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{p-eq-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-step} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-step} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-step} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-step} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-step} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-step} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-step} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-step} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-step} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-step} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-neg-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-step} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-step} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-int-to-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-step} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-step} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-step} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-step} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-step} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-step} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-step} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-step} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-step} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-with-carry-out-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-step} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-div2-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-step} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-step} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-step} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-step} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-xor-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-step} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-rsh-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-step} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-lsh-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-step} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-step} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-step} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-step} \\ 
{\bf otherwise }{\rm{p-halt}}\,({\it{p\/}}, {\tt{'}}{\tt{run}})\index{p-halt}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-step1} \\  
\=\+{\rm{p-step1}}\,({\it{ins\/}}, {\it{p\/}})\index{p-step1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-ins-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp}$\;\;${\bf then }{\rm{p-ins-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step} \\ 
{\bf else }{\rm{p-halt}}\,({\it{p\/}}, {\rm{x-y-error-msg}}\,({\tt{'}}{\tt{p}}, {\rm{car}}\,({\it{ins\/}}))\index{x-y-error-msg})\index{p-halt}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-step} \\  
\=\+{\rm{p-step}}\,({\it{p\/}})\index{p-step} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\rm{p-step1}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-step1} \\ 
{\bf else }{\it{p\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p} \\  
\=\+{\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\it{p\/}} \\ 
{\bf else }{\rm{p}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step}, {\it{n\/}} $-\;1$)\index{p}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-call-instructionp} \\  
\=\+{\rm{proper-p-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-call-instructionp} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) $\wedge$ {\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-ret-instructionp} \\  
{\rm{proper-p-ret-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ret-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-locn-instructionp} \\  
\=\+{\rm{proper-p-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-locn-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in$ {\rm{local-vars}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{local-vars}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-push-constant-instructi!onp} \\  
\=\+{\rm{proper-p-push-constant-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-constant-instructi!onp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\it{p\/}})\index{p-objectp} \\ 
$\vee$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pc}}) \\ 
$\vee$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{program-body})\-\index{find-labelp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-push-local-instructionp} \\  
\=\+{\rm{proper-p-push-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-local-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in$ {\rm{local-vars}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{local-vars}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-push-global-instructio!np} \\  
\=\+{\rm{proper-p-push-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-global-instructio!np} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) $\wedge$ {\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-push-ctrl-stk-free-size!-instructionp} \\  
\=\+{\rm{proper-p-push-ctrl-stk-free-size-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-ctrl-stk-free-size!-instructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-push-temp-stk-free-size!-instructionp} \\  
\=\+{\rm{proper-p-push-temp-stk-free-size-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-temp-stk-free-size!-instructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-push-temp-stk-index-in!structionp} \\  
\=\+{\rm{proper-p-push-temp-stk-index-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-temp-stk-index-in!structionp} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) $\wedge$ {\rm{small-naturalp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-jump-if-temp-stk-full-i!nstructionp} \\  
\=\+{\rm{proper-p-jump-if-temp-stk-full-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-if-temp-stk-full-i!nstructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-jump-if-temp-stk-empty!-instructionp} \\  
\=\+{\rm{proper-p-jump-if-temp-stk-empty-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-if-temp-stk-empty!-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pop-instructionp} \\  
{\rm{proper-p-pop-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pop*-instructionp} \\  
\=\+{\rm{proper-p-pop*-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop*-instructionp} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) $\wedge$ {\rm{small-naturalp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-popn-instructionp} \\  
{\rm{proper-p-popn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popn-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pop-local-instructionp} \\  
\=\+{\rm{proper-p-pop-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-local-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in$ {\rm{local-vars}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{local-vars}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pop-global-instructionp} \\  
\=\+{\rm{proper-p-pop-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-global-instructionp} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) $\wedge$ {\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pop-locn-instructionp} \\  
\=\+{\rm{proper-p-pop-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-locn-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in$ {\rm{local-vars}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{local-vars}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pop-call-instructionp} \\  
{\rm{proper-p-pop-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-call-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-fetch-temp-stk-instructi!onp} \\  
{\rm{proper-p-fetch-temp-stk-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-temp-stk-instructi!onp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-deposit-temp-stk-instr!uctionp} \\  
{\rm{proper-p-deposit-temp-stk-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-temp-stk-instr!uctionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-jump-instructionp} \\  
\=\+{\rm{proper-p-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-jump-case-instructionp} \\  
\=\+{\rm{proper-p-jump-case-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-case-instructionp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{cdr}}\,({\it{ins\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{all-find-labelp}}\,(\=\+{\rm{cdr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definition})\index{program-body})\-\index{all-find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-pushj-instructionp} \\  
\=\+{\rm{proper-p-pushj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pushj-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{cadr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-popj-instructionp} \\  
{\rm{proper-p-popj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popj-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-set-local-instructionp} \\  
\=\+{\rm{proper-p-set-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-local-instructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{ins\/}}) $\in$ {\rm{local-vars}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{local-vars}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-set-global-instructionp} \\  
\=\+{\rm{proper-p-set-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-global-instructionp} \\ 
$=$$\;\;\;\;$(({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{2}}) $\wedge$ {\rm{definedp}}\,({\rm{cadr}}\,({\it{ins\/}}), {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-test-nat-and-jump-inst!ructionp} \\  
\=\+{\rm{proper-p-test-nat-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-nat-and-jump-inst!ructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{3}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-test-int-and-jump-inst!ructionp} \\  
\=\+{\rm{proper-p-test-int-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-int-and-jump-inst!ructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{3}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-test-bool-and-jump-inst!ructionp} \\  
\=\+{\rm{proper-p-test-bool-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-bool-and-jump-inst!ructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{3}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-test-bitv-and-jump-inst!ructionp} \\  
\=\+{\rm{proper-p-test-bitv-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-bitv-and-jump-inst!ructionp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{3}}) \\ 
$\wedge$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\rm{caddr}}\,({\it{ins\/}}), \\ 
{\rm{program-body}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{program-body})\-\index{find-labelp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-no-op-instructionp} \\  
{\rm{proper-p-no-op-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-no-op-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add-addr-instructionp} \\  
{\rm{proper-p-add-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-addr-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub-addr-instructionp} \\  
{\rm{proper-p-sub-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-addr-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-eq-instructionp} \\  
{\rm{proper-p-eq-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-eq-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-lt-addr-instructionp} \\  
{\rm{proper-p-lt-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-addr-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-fetch-instructionp} \\  
{\rm{proper-p-fetch-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-deposit-instructionp} \\  
{\rm{proper-p-deposit-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add-int-instructionp} \\  
{\rm{proper-p-add-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add-int-with-carry-inst!ructionp} \\  
\=\+{\rm{proper-p-add-int-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-with-carry-inst!ructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add1-int-instructionp} \\  
{\rm{proper-p-add1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-int-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub-int-instructionp} \\  
{\rm{proper-p-sub-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub-int-with-carry-inst!ructionp} \\  
\=\+{\rm{proper-p-sub-int-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-with-carry-inst!ructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub1-int-instructionp} \\  
{\rm{proper-p-sub1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-int-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-neg-int-instructionp} \\  
{\rm{proper-p-neg-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-neg-int-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-lt-int-instructionp} \\  
{\rm{proper-p-lt-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-int-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-int-to-nat-instructionp} \\  
{\rm{proper-p-int-to-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-int-to-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add-nat-instructionp} \\  
{\rm{proper-p-add-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add-nat-with-carry-inst!ructionp} \\  
\=\+{\rm{proper-p-add-nat-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-with-carry-inst!ructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-add1-nat-instructionp} \\  
{\rm{proper-p-add1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub-nat-instructionp} \\  
{\rm{proper-p-sub-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub-nat-with-carry-inst!ructionp} \\  
\=\+{\rm{proper-p-sub-nat-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-with-carry-inst!ructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-sub1-nat-instructionp} \\  
{\rm{proper-p-sub1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-lt-nat-instructionp} \\  
{\rm{proper-p-lt-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-mult2-nat-instructionp} \\  
{\rm{proper-p-mult2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-mult2-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-mult2-nat-with-carry-o!ut-instructionp} \\  
\=\+{\rm{proper-p-mult2-nat-with-carry-out-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-mult2-nat-with-carry-o!ut-instructionp} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-div2-nat-instructionp} \\  
{\rm{proper-p-div2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-div2-nat-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-or-bitv-instructionp} \\  
{\rm{proper-p-or-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bitv-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-and-bitv-instructionp} \\  
{\rm{proper-p-and-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bitv-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-not-bitv-instructionp} \\  
{\rm{proper-p-not-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bitv-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-xor-bitv-instructionp} \\  
{\rm{proper-p-xor-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-xor-bitv-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-rsh-bitv-instructionp} \\  
{\rm{proper-p-rsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-rsh-bitv-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-lsh-bitv-instructionp} \\  
{\rm{proper-p-lsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lsh-bitv-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-or-bool-instructionp} \\  
{\rm{proper-p-or-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bool-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-and-bool-instructionp} \\  
{\rm{proper-p-and-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bool-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-not-bool-instructionp} \\  
{\rm{proper-p-not-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bool-instructionp} $=$ ({\rm{length}}\,({\it{ins\/}})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-instructionp} \\  
\=\+{\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{properp}}\,({\it{ins\/}})\index{properp} \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{proper-p-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-call-instructionp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-ret-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ret-instructionp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-locn-instructionp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-constant-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-constant-instructi!onp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-local-instructionp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-global-instructio!np} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-ctrl-stk-free-size-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-ctrl-stk-free-size!-instructionp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-temp-stk-free-size-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-temp-stk-free-size!-instructionp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-temp-stk-index-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-temp-stk-index-in!structionp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-if-temp-stk-full-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-if-temp-stk-full-i!nstructionp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-if-temp-stk-empty-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-jump-if-temp-stk-empty!-instructionp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-instructionp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop*-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop*-instructionp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-popn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popn-instructionp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-local-instructionp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-global-instructionp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-locn-instructionp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-call-instructionp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-fetch-temp-stk-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-temp-stk-instructi!onp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-deposit-temp-stk-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-temp-stk-instr!uctionp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-instructionp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-case-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-case-instructionp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pushj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pushj-instructionp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-popj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popj-instructionp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-set-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-local-instructionp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-set-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-global-instructionp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-nat-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-nat-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-int-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-int-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-bool-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-bool-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-bitv-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-bitv-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-no-op-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-no-op-instructionp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-addr-instructionp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-addr-instructionp} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-eq-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-eq-instructionp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-addr-instructionp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-fetch-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-instructionp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-deposit-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-instructionp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-instructionp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-int-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-int-instructionp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-instructionp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-int-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-int-instructionp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-neg-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-neg-int-instructionp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-int-instructionp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-int-to-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-int-to-nat-instructionp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-instructionp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-nat-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-nat-instructionp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-instructionp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-nat-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-nat-instructionp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-nat-instructionp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-mult2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-mult2-nat-instructionp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-mult2-nat-with-carry-out-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-mult2-nat-with-carry-o!ut-instructionp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-div2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-div2-nat-instructionp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-or-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bitv-instructionp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-and-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bitv-instructionp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-not-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bitv-instructionp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-xor-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-xor-bitv-instructionp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-rsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-rsh-bitv-instructionp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lsh-bitv-instructionp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-or-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bool-instructionp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-and-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bool-instructionp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-not-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bool-instructionp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-labeled-p-instructionsp} \\  
\=\+{\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{legal-labelp}}\,({\rm{car}}\,({\it{lst\/}}))\index{legal-labelp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\rm{unlabel}}\,({\rm{car}}\,({\it{lst\/}}))\index{unlabel}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fall-off-proofp} \\  
\=\+{\rm{fall-off-proofp}}\,({\it{lst\/}})\index{fall-off-proofp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{unlabel}}\,({\rm{get}}\,({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$, {\it{lst\/}})\index{get})\index{unlabel}) \\ 
$\in$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{ret}}{\tt{ }}{\tt{jump}}{\tt{ }}{\tt{jump-case}}{\tt{ }}{\tt{popj}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-program-bodyp} \\  
\=\+{\rm{proper-p-program-bodyp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-program-bodyp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{lst\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{fall-off-proofp}}\,({\it{lst\/}})\index{fall-off-proofp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-litatoms} \\  
\=\+{\rm{all-litatoms}}\,({\it{lst\/}})\index{all-litatoms} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{lst\/}} $=$ {\bf{nil}} \\ 
{\bf else }{\rm{litatom}}\,({\rm{car}}\,({\it{lst\/}})) $\wedge$ {\rm{all-litatoms}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{all-litatoms}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-temp-var-dclsp} \\  
\=\+{\rm{proper-p-temp-var-dclsp}}\,({\it{temp-var-dcls\/}}, {\it{p\/}})\index{proper-p-temp-var-dclsp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{temp-var-dcls\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+{\rm{litatom}}\,({\rm{caar}}\,({\it{temp-var-dcls\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cadar}}\,({\it{temp-var-dcls\/}}), {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,({\rm{cdr}}\,({\it{temp-var-dcls\/}}), {\it{p\/}})\index{proper-p-temp-var-dclsp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-programp} \\  
\=\+{\rm{proper-p-programp}}\,({\it{prog\/}}, {\it{p\/}})\index{proper-p-programp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{litatom}}\,({\rm{name}}\,({\it{prog\/}})\index{name}) \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars})\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls}, {\it{p\/}})\index{proper-p-temp-var-dclsp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-program-bodyp}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\rm{name}}\,({\it{prog\/}})\index{name}, {\it{p\/}})\index{proper-p-program-bodyp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-prog-segmentp} \\  
\=\+{\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{segment\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{proper-p-programp}}\,({\rm{car}}\,({\it{segment\/}}), {\it{p\/}})\index{proper-p-programp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{cdr}}\,({\it{segment\/}}), {\it{p\/}})\index{proper-p-prog-segmentp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-alistp} \\  
\=\+{\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{alist\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{listp}}\,({\rm{car}}\,({\it{alist\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{caar}}\,({\it{alist\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cdar}}\,({\it{alist\/}}), {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{cdr}}\,({\it{alist\/}}), {\it{p\/}})\index{proper-p-alistp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-framep} \\  
\=\+{\rm{proper-p-framep}}\,({\it{frame\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-framep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{frame\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\it{frame\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{frame\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{bindings}}\,({\it{frame\/}})\index{bindings}, {\it{p\/}})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\it{frame\/}})\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{local-vars}}\,({\rm{definition}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definition})\index{local-vars})\- \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{ret-pc}}\,({\it{frame\/}})\index{ret-pc}, {\it{p\/}})\index{p-objectp-type})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-ctrl-stkp} \\  
\=\+{\rm{proper-p-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ctrl-stkp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{ctrl-stk\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{ctrl-stk\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{proper-p-framep}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top}, {\it{name\/}}, {\it{p\/}})\index{proper-p-framep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{pop}}\,({\it{ctrl-stk\/}})\index{pop}, \\ 
{\rm{area-name}}\,({\rm{ret-pc}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{ret-pc})\index{area-name}, \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-temp-stkp} \\  
\=\+{\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{temp-stk\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{temp-stk\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{p-objectp}}\,({\rm{top}}\,({\it{temp-stk\/}})\index{top}, {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{pop}}\,({\it{temp-stk\/}})\index{pop}, {\it{p\/}})\index{proper-p-temp-stkp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-area} \\  
\=\+{\rm{proper-p-area}}\,({\it{area\/}}, {\it{p\/}})\index{proper-p-area} \\ 
$=$$\;\;\;\;$(\=\+{\rm{litatom}}\,({\rm{car}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{cdr}}\,({\it{area\/}}), {\it{p\/}})\index{all-p-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-data-segmentp} \\  
\=\+{\rm{proper-p-data-segmentp}}\,({\it{data-segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{data-segment\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{data-segment\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{proper-p-area}}\,({\rm{car}}\,({\it{data-segment\/}}), {\it{p\/}})\index{proper-p-area} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\rm{caar}}\,({\it{data-segment\/}}), {\rm{cdr}}\,({\it{data-segment\/}}))\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{cdr}}\,({\it{data-segment\/}}), {\it{p\/}})\index{proper-p-data-segmentp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-statep} \\  
\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-statep}}\,({\it{p\/}})\index{p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\rm{p-pc}}\,({\it{p\/}})\index{p-pc}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-framep}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top}, {\rm{area-name}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{area-name}, {\it{p\/}})\index{proper-p-framep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{pop}, \\ 
{\rm{area-name}}\,({\rm{ret-pc}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top})\index{ret-pc})\index{area-name}, \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, {\it{p\/}})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\tt{0}} $<$ {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}))\-\-
\end{tabbing}

\begin{verbatim}; Book: p-r.events.  In this section we prove that the p machine
; is implemented on the r machine.

\end{verbatim}
\noindent{\sc Event}:   Disable unlabel.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-usr-data-typep.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-instructionp.

\addvspace{18pt}

\begin{verbatim}; I will disable type, tag and untag for sanity's sake,
; but prove the obvious relationships first.

\end{verbatim}
\noindent{\sc Event}:   Enable type-tag.

\addvspace{18pt}


\noindent{\sc Event}:   Enable untag-tag.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  equal-tags \\ \index{equal-tags}
({\rm{tag}}\,({\it{type\/}}, {\it{x\/}})\index{tag} $=$ {\rm{tag}}\,({\it{type\/}}, {\it{y\/}})\index{tag}) $=$ ({\it{x\/}} $=$ {\it{y\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable cddr-tag.

\addvspace{18pt}


\noindent{\sc Event}:   Disable type.

\addvspace{18pt}

\noindent{\sc Event}:   Disable tag.

\addvspace{18pt}

\noindent{\sc Event}:   Disable untag.

\addvspace{18pt}

\begin{verbatim}; The function BOOLEANP is a killer because it
; causes everything to split.  I will disable it
; and prove what I need about it as necessary.

\end{verbatim}
\noindent{\sc Event}:   Disable booleanp.

\addvspace{18pt}

\begin{verbatim}; Error messages are irrelevant as long as they are not 'run or 'halt.

\end{verbatim}
\noindent{\sc Event}:   Enable not-equal-x-y-error-msg-run.

\addvspace{18pt}


\noindent{\sc Event}:   Enable not-equal-x-y-error-msg-halt.

\addvspace{18pt}


\noindent{\sc Event}:   Disable x-y-error-msg.

\addvspace{18pt}


\noindent{\sc Event}:   Enable r-psw-r-halt.

\addvspace{18pt}


\noindent{\sc Event}:   Disable r-halt.

\addvspace{18pt}

\begin{verbatim}; Now I arrange for r-objectp to open when we know the type:

\end{verbatim}
\noindent{\sc Event}:   Enable r-objectp-opener.

\addvspace{18pt}


\noindent{\sc Event}:   Disable r-objectp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-usr-data-typep.

\addvspace{18pt}

\begin{verbatim}; We repeat the same exercise for p-objectp:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-opener \\ \index{p-objectp-opener}
\=\+(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{int}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-integerp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bitv}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{bit-vectorp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) $\wedge$ {\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{adpp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{pcpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{pcpp})\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{subr}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp})\-)\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-objectp.

\addvspace{18pt}



\noindent{\sc Event}:   Disable name.

\addvspace{18pt}

\noindent{\sc Event}:   Disable formal-vars.

\addvspace{18pt}

\noindent{\sc Event}:   Disable temp-var-dcls.

\addvspace{18pt}

\noindent{\sc Event}:   Disable program-body.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  bindings-p-frame \\ \index{bindings-p-frame}
{\rm{bindings}}\,({\rm{p-frame}}\,({\it{alist\/}}, {\it{pc\/}})\index{p-frame})\index{bindings} $=$ {\it{alist\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-pc-p-frame \\ \index{ret-pc-p-frame}
{\rm{ret-pc}}\,({\rm{p-frame}}\,({\it{alist\/}}, {\it{pc\/}})\index{p-frame})\index{ret-pc} $=$ {\it{pc\/}}
\end{tabbing}


\noindent{\sc Event}:   Disable bindings.

\addvspace{18pt}

\noindent{\sc Event}:   Disable ret-pc.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-frame.

\addvspace{18pt}


\noindent{\sc Event}:   Enable associativity-of-plus.

\addvspace{18pt}

\noindent{\sc Event}:   Enable commutativity-of-plus.

\addvspace{18pt} 

\noindent{\sc Event}:   Enable plus-add1.

\addvspace{18pt}

\noindent{\sc Event}:   Enable commutativity2-of-plus.

\addvspace{18pt}

\begin{verbatim}; difference is used a lot in the stack pointer mappings and
; it is opened too often.  I want to control the expansion of
; difference carefully.

\end{verbatim}
\noindent{\sc Event}:   Disable difference.

\addvspace{18pt}

\begin{verbatim}; The icompiler is involved in the characterization of loadablep
; but is actually irrelevant at this level.
; So we

\end{verbatim}
\noindent{\sc Event}:   Disable icompile.

\addvspace{18pt}

\begin{verbatim}; to save the trouble of repeatedly considering expanding it.

; We need to get from (car (p-current-instruction p)) = 'no-op and
; (proper-p-statep p) the fact that
; (proper-p-no-op-instructionp (p-current-instruction p) name p).
; We will do it in two steps.  First we prove that proper-p-statep
; implies proper-p-instructionp for the current instruction.
; Then we'll arrange for proper-p-statep to expand and introduce
; the implied proper-p-instructionp too.

\end{verbatim}
\noindent{\sc Event}:   Disable proper-p-instructionp.

\addvspace{18pt}


\noindent{\sc Event}:   Disable legal-labelp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-implies-labelp-and-instructionp \\ \index{proper-labeled-p-instructionsp-i!mplies-labelp-and-instructionp}
\=\+({\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} $\wedge$ ({\it{x\/}} $\in$ {\it{lst\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{legal-labelp}}\,({\it{x\/}})\index{legal-labelp} $\wedge$ {\rm{proper-p-instructionp}}\,({\rm{unlabel}}\,({\it{x\/}})\index{unlabel}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-implies-proper-p-programp \\ \index{proper-p-prog-segmentp-implies-p!roper-p-programp}
\=\+({\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} $\wedge$ ({\it{prog\/}} $\in$ {\it{segment\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\it{prog\/}}, {\it{p\/}})\index{proper-p-programp}\-
\end{tabbing}
           

\noindent{\sc Event}:   Enable member-assoc.

\addvspace{18pt}


\noindent{\sc Event}:   Enable name-assoc.

\addvspace{18pt}


\noindent{\sc Event}:   Enable member-get.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-proper-p-instructionp \\ \index{proper-p-statep-implies-proper-p!-instructionp}
\=\+(\=\+{\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{program-body})\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), {\it{p\/}})\index{proper-p-instructionp}\-
\end{tabbing}

         
\begin{verbatim}; Now I restructure proper-p-statep into two parts, those that
; have to do with arithmetic and those that do not.  The parts
; that do not are arithmetic, I confine to proper-p-statep1,
; which I keep closed and backchain into as needed.  The other
; parts I keep out in the open.  In addition, I throw in the
; proper-p-instructionp proved above, essentially forward
; chaining through the lemma.

\end{verbatim}
\noindent{\sc Event}:   Disable p-loadablep.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{proper-p-statep1} \\  
\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-statep}}\,({\it{p\/}})\index{p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings}, {\it{p\/}})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\- \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, {\it{p\/}})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{p\/}})\index{proper-p-data-segmentp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-restructuring \\ \index{proper-p-statep-restructuring}
\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{program-body})\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{program-body})\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\tt{0}} $<$ {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-instructionp}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-instructionp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep1-properties \\ \index{proper-p-statep1-properties}
\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-statep}}\,({\it{p\/}})\index{p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings}, {\it{p\/}})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\- \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, {\it{p\/}})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{p\/}})\index{proper-p-data-segmentp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-statep1.

\addvspace{18pt}


\noindent{\sc Event}:   Disable p-current-instruction.

\addvspace{18pt}

\begin{verbatim}; Now I provide a simple delayed opener for proper-p-instructionp:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-opener \\ \index{proper-p-instructionp-opener}
\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\rm{pack}}\,({\it{xxx\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{properp}}\,({\it{ins\/}})\index{properp} \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{proper-p-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-call-instructionp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-ret-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ret-instructionp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-locn-instructionp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-constant-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-constant-instructi!onp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-local-instructionp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-global-instructio!np} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-ctrl-stk-free-size-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-ctrl-stk-free-size!-instructionp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-temp-stk-free-size-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-temp-stk-free-size!-instructionp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-temp-stk-index-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-temp-stk-index-in!structionp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-if-temp-stk-full-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-jump-if-temp-stk-full-i!nstructionp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-if-temp-stk-empty-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-jump-if-temp-stk-empty!-instructionp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-instructionp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop*-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop*-instructionp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-popn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popn-instructionp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-local-instructionp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-global-instructionp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-locn-instructionp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-call-instructionp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-fetch-temp-stk-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-fetch-temp-stk-instructi!onp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-deposit-temp-stk-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-deposit-temp-stk-instr!uctionp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-instructionp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-case-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-case-instructionp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pushj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pushj-instructionp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-popj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popj-instructionp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-set-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-local-instructionp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-set-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-global-instructionp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-nat-and-jump-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-test-nat-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-int-and-jump-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-test-int-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-bool-and-jump-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-test-bool-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-bitv-and-jump-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-test-bitv-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-no-op-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-no-op-instructionp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-addr-instructionp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-addr-instructionp} \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-eq-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-eq-instructionp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-addr-instructionp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-fetch-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-instructionp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-deposit-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-instructionp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-instructionp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-int-with-carry-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-add-int-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-int-instructionp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-instructionp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-int-with-carry-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-sub-int-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-int-instructionp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-neg-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-neg-int-instructionp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-int-instructionp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-int-to-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-int-to-nat-instructionp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-instructionp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-nat-with-carry-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-add-nat-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-nat-instructionp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-instructionp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-nat-with-carry-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-sub-nat-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-nat-instructionp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-nat-instructionp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-mult2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-mult2-nat-instructionp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-mult2-nat-with-carry-out-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-mult2-nat-with-carry-o!ut-instructionp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-div2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-div2-nat-instructionp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-or-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bitv-instructionp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-and-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bitv-instructionp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-not-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bitv-instructionp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-xor-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-xor-bitv-instructionp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-rsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-rsh-bitv-instructionp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lsh-bitv-instructionp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-or-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bool-instructionp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-and-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bool-instructionp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-not-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bool-instructionp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-)\-)\-\-
\end{tabbing}

\begin{verbatim}; The following lemma tells us that if the current instruction is
; not one of the fall-off barriers then it is possible to increment
; the pc.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-add1-p-pcp \\ \index{proper-p-statep-implies-add1-p-p!cp}
\=\+(\=\+({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\rm{pack}}\,({\it{xxx\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{program-body})\index{length})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) \\ 
$\not\in$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{ret}}{\tt{ }}{\tt{jump}}{\tt{ }}{\tt{jump-case}}{\tt{ }}{\tt{popj}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}) \\ 
$<$$\;\;\;\;$({\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{program-body})\index{length} $-\;1$))\-\-
\end{tabbing}

\begin{verbatim}; We also know that the r-current-instruction of the mapped down state
; is the p-current-instruction.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-current-instruction-p-$>$r \\ \index{r-current-instruction-p-$>$r}
{\rm{r-current-instruction}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-current-instruction} $=$ {\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}
\end{tabbing}


\noindent{\sc Event}:   Disable r-current-instruction.

\addvspace{18pt}

\begin{verbatim}; Henceforth, in my lemmas building up to the owc theorem, I will use
; (p-current-instruction p) even on the r side of the lemmas because the
; above theorem gives the equality I would otherwise need.  Furthermore,
; with the above theorem around, (r-current-instruction (p->r p)) would
; be Knuth-Bendixed away anyway.

; The major difficulty of this proof is in controlling the expansion
; of the sys-data-segment and tracking the isomorphism between the
; p and r level stacks -- that is ALL there is to this proof!

; We will keep p->r_sys-data-segment disabled because it generates
; a big list I don't like to see.  

; We begin by showing what you get when you assoc for each of
; the 5 components of the sys-data-segment.


\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-cstk-p-$>$r\_sys-data-segment \\ \index{assoc-cstk-p-$>$r\_sys-data-seg!ment}
\=\+{\rm{assoc}}\,(\=\+{\tt{'}}{\tt{cstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\- \\ 
$=$$\;\;\;\;${\rm{p-$>$r\_ctrl-stk}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-tstk-p-$>$r\_sys-data-segment \\ \index{assoc-tstk-p-$>$r\_sys-data-seg!ment}
\=\+{\rm{assoc}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\- \\ 
$=$$\;\;\;\;${\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_temp-stk}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-full-ctrl-stk-addr-p-$>$r\_sys-data-segment \\ \index{assoc-full-ctrl-stk-addr-p-$>$r!\_sys-data-segment}
\=\+{\rm{assoc}}\,(\=\+{\tt{'}}{\tt{full-ctrl-stk-addr}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\- \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{full-ctrl-stk-addr}}, {\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{cstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-full-temp-stk-addr-p-$>$r\_sys-data-segment \\ \index{assoc-full-temp-stk-addr-p-$>$r!\_sys-data-segment}
\=\+{\rm{assoc}}\,(\=\+{\tt{'}}{\tt{full-temp-stk-addr}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\- \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{full-temp-stk-addr}}, {\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\tt{'}}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-empty-temp-stk-addr-p-$>$r\_sys-data-segment \\ \index{assoc-empty-temp-stk-addr-p-$>$!r\_sys-data-segment}
\=\+{\rm{assoc}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\- \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{empty-temp-stk-addr}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{max-temp-stk-size\/}}))\index{tag})\-\-
\end{tabbing}

\begin{verbatim}; Next we establish that those we put into are defined:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  definedp-tstk-p-$>$r\_sys-data-segment \\ \index{definedp-tstk-p-$>$r\_sys-data-!segment}
{\rm{definedp}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-cstk-p-$>$r\_sys-data-segment \\ \index{definedp-cstk-p-$>$r\_sys-data-!segment}
{\rm{definedp}}\,(\=\+{\tt{'}}{\tt{cstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{definedp}
\end{tabbing}

\begin{verbatim}; Next we establish the lengths of the mapped down cstk and tstk:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-strip-cdrs \\ \index{length-strip-cdrs}
{\rm{length}}\,({\rm{strip-cdrs}}\,({\it{x\/}})\index{strip-cdrs})\index{length} $=$ {\rm{length}}\,({\it{x\/}})\index{length}
\end{tabbing}


\noindent{\sc Event}:   Enable length-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-p-$>$r\_ctrl-stk1 \\ \index{length-p-$>$r\_ctrl-stk1}
{\rm{length}}\,({\rm{p-$>$r\_ctrl-stk1}}\,({\it{stk\/}}, {\it{max\/}})\index{p-$>$r\_ctrl-stk1})\index{length} $=$ {\rm{p-ctrl-stk-size}}\,({\it{stk\/}})\index{p-ctrl-stk-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-nat-0s \\ \index{length-nat-0s}
{\rm{length}}\,({\rm{nat-0s}}\,({\it{n\/}})\index{nat-0s})\index{length} $=$ {\rm{fix}}\,({\it{n\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable lessp-difference=0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-cdr-p-$>$r\_ctrl-stk \\ \index{length-cdr-p-$>$r\_ctrl-stk}
\=\+({\it{max-ctrl-stk-size\/}} $\not<$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk}))\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\it{max-ctrl-stk-size\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-p-$>$r\_temp-stk \\ \index{length-cdr-p-$>$r\_temp-stk}
\=\+({\it{max-temp-stk-size\/}} $\not<$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_temp-stk}))\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\it{max-temp-stk-size\/}}))\-\-
\end{tabbing}

\begin{verbatim}; Now we show what happens when you access and change the mapped down stacks.
; My plan is this.  I will leave p->r_ctrl-stk and p->r_temp-stk disabled.
; I will explain how to get an "arbitrary" element out of both.
; I will explain how to put at an "arbitrary" location in p->r_ctrl-stk --
; by showing that the appropriate put-assoc-put combination on p->r_ctrl-stk
; is equal to a p->r_ctrl-stk of an appropriate put.  But I will not discuss
; how to put into p->r_temp-stk.  The problem has to do with popping the
; temp stack and the fact that we often pop several times and then put.
; It is not possible to say what the corresponding p->r_temp-stk would be
; because of the dead junk at the top.  This problem is dealt with by
; stk-equal and so we will address putting into the p->r_temp-stk when
; we deal with stk-equal.

; We start with accessing the temp-stk, which is the simplest operation.

\end{verbatim}
\noindent{\sc Event}:   Enable unconditional-get-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  difference-difference-difference \\ \index{difference-difference-difference}
(({\it{i\/}} $\not<$ {\it{j\/}}) $\wedge$ ({\it{i\/}} $\not<$ {\it{k\/}})) $\rightarrow$ ((({\it{i\/}} $-$ {\it{j\/}}) $-$ ({\it{i\/}} $-$ {\it{k\/}})) $=$ ({\it{k\/}} $-$ {\it{j\/}}))
\end{tabbing}

\begin{verbatim}; The following theorem shows how to get at an "arbitrary"
; address in a mapped down stack, where by "arbitrary" I
; mean any address in the live part.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-cdr-p-$>$r\_temp-stk \\ \index{get-cdr-p-$>$r\_temp-stk}
\=\+(\=\+({\it{max-temp-stk-size\/}} $\not<$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $<$ {\it{max-temp-stk-size\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $\not<$ ({\it{max-temp-stk-size\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{i\/}}, {\rm{cdr}}\,({\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_temp-stk}))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{i\/}} $-$ ({\it{max-temp-stk-size\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}), {\it{temp-stk\/}})\index{get})\-\-
\end{tabbing}

\begin{verbatim}; Most often we will be getting at the top of the temp stk,
; which is i = (difference max-temp-stk-size (length temp-stk))
; (just look at p->r_tsp).  In that case, we will need:

\end{verbatim}
\noindent{\sc Event}:   Enable difference-x-x.

\addvspace{18pt}

\begin{verbatim}; When we get at top1 i will be 
;    (difference max-temp-stk-size (length (cdr temp-stk)))
; and the (difference max-temp-stk-size (length temp-stk))
; above will become
;    (difference max-temp-stk-size (add1 (length (cdr temp-stk))))
; which will expand to 
;    (sub1 (difference max-temp-stk-size (length (cdr temp-stk))))
; by 

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-add1\{special\} \\ \index{difference-add1\{special\}}
({\it{x\/}} $-$ ($1\;+$ {\it{y\/}})) $=$ (({\it{x\/}} $-$ {\it{y\/}}) $-\;1$)
\end{tabbing}

\begin{verbatim}; So we will need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-x-sub1-x \\ \index{difference-x-sub1-x}
({\it{x\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ (({\it{x\/}} $-$ ({\it{x\/}} $-\;1$)) $=$ {\tt{1}})
\end{tabbing}

\begin{verbatim}; Similarly for top2:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-x-sub2-x \\ \index{difference-x-sub2-x}
(({\it{x\/}} $\not\simeq {\tt{0}}$) $\wedge$ (({\it{x\/}} $-\;1$) $\not\simeq {\tt{0}}$)) $\rightarrow$ (({\it{x\/}} $-$ (({\it{x\/}} $-\;1$) $-\;1$)) $=$ {\tt{2}})
\end{tabbing}

\begin{verbatim}; We then eliminate the gets in these cases because the p machine
; uses top1 and top2, not get-1 and get-2:

\end{verbatim}
\noindent{\sc Event}:   Enable get-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-1 \\ \index{get-1}
{\rm{get}}\,({\tt{1}}, {\it{lst\/}})\index{get} $=$ {\rm{cadr}}\,({\it{lst\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-2 \\ \index{get-2}
{\rm{get}}\,({\tt{2}}, {\it{lst\/}})\index{get} $=$ {\rm{caddr}}\,({\it{lst\/}})
\end{tabbing}
  
\begin{verbatim}; Now I turn to the control stack.  Again, we need to be able to
; get and put into it.  However, we only entertain those operations
; on local variable positions of the top frame.

; We begin with get

; The key idea, of course, is that getting at a specified position
; in the strip-cdrs of an alist is the same as assoc.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-find-position-of-var \\ \index{get-find-position-of-var}
\=\+({\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} $\wedge$ ({\it{var\/}} $\in$ {\rm{strip-cars}}\,({\it{alist\/}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{find-position-of-var}}\,({\it{var\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{find-position-of-var}, \\ 
{\rm{append}}\,({\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs}, {\it{stk\/}}))\-\index{get} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{assoc}}\,({\it{var\/}}, {\it{alist\/}})))\-\-
\end{tabbing}

\begin{verbatim}; Now we have to work a little to establish the correspondence between
; the list we find the position in and the list we assoc into.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  member-implies-lessp-find-position-of-var \\ \index{member-implies-lessp-find-positi!on-of-var}
({\it{x\/}} $\in$ {\it{lst\/}}) $\rightarrow$ ({\rm{find-position-of-var}}\,({\it{x\/}}, {\it{lst\/}})\index{find-position-of-var} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-strip-cars-implies-equal-lengths \\ \index{equal-strip-cars-implies-equal-!lengths}
({\rm{strip-cars}}\,({\it{x\/}}) $=$ {\it{y\/}}) $\rightarrow$ ({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length})
\end{tabbing}


\noindent{\sc Event}:   Enable length-strip-cars.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-bindings \\ \index{length-bindings}
\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-plus\{special\} \\ \index{difference-plus\{special\}}
(({\it{x\/}} $+$ {\it{y\/}}) $-$ {\it{x\/}}) $=$ {\rm{fix}}\,({\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-$>$r\_ctrl-stk1-opener \\ \index{p-$>$r\_ctrl-stk1-opener}
\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-$>$r\_ctrl-stk1}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk1} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{p-$>$r\_p-frame}}\,(\=\+{\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top}, \\ 
{\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{pop}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\-\index{p-$>$r\_p-frame}, \\ 
{\rm{p-$>$r\_ctrl-stk1}}\,(\=\+{\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{pop}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\-\index{p-$>$r\_ctrl-stk1})\-)\-\-
\end{tabbing}

\begin{verbatim}; And here is the main lemma about getting at a local variable
; slot in the mapped down control stack:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-cdr-p-$>$r\_ctrl-stk-1 \\ \index{get-cdr-p-$>$r\_ctrl-stk-1}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\it{var\/}} $\in$ {\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$+$$\;\;\;\;${\rm{find-position-of-var}}\,(\=\+{\it{var\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\-\index{find-position-of-var}\-, \\ 
{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk}))\-\index{get} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{assoc}}\,({\it{var\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})))\-\-
\end{tabbing}


\begin{verbatim}; Now we turn to put.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-find-position-of-var \\ \index{put-find-position-of-var}
\=\+({\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} $\wedge$ ({\it{var\/}} $\in$ {\rm{strip-cars}}\,({\it{alist\/}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
{\rm{find-position-of-var}}\,({\it{var\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{find-position-of-var}, \\ 
{\rm{append}}\,({\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs}, {\it{stk\/}}))\-\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\rm{strip-cdrs}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{var\/}}, {\it{alist\/}})\index{put-assoc})\index{strip-cdrs}, {\it{stk\/}}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable equal-length-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  put-plus-append \\ \index{put-plus-append}
\=\+({\it{i\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, {\it{i\/}} $+$ {\it{j\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{put}}\,({\it{val\/}}, {\it{j\/}}, {\it{b\/}})\index{put}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-put-assoc \\ \index{length-put-assoc}
{\rm{length}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc})\index{length} $=$ {\rm{length}}\,({\it{alist\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ctrl-stk-size-cons-p-frame-put-assoc \\ \index{p-ctrl-stk-size-cons-p-frame-put!-assoc}
\=\+{\rm{listp}}\,({\it{stk\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-assoc}}\,({\it{val\/}}, {\it{var\/}}, {\rm{bindings}}\,({\rm{car}}\,({\it{stk\/}}))\index{bindings})\index{put-assoc}, \\ 
{\rm{ret-pc}}\,({\rm{car}}\,({\it{stk\/}}))\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{cdr}}\,({\it{stk\/}}))\-)\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\it{stk\/}})\index{p-ctrl-stk-size})\-\-
\end{tabbing}



\noindent{\sc Event}:   Enable associativity-of-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  put-cdr-p-$>$r\_ctrl-stk-1 \\ \index{put-cdr-p-$>$r\_ctrl-stk-1}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\it{var\/}} $\in$ {\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$+$$\;\;\;\;${\rm{find-position-of-var}}\,(\=\+{\it{var\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\-\index{find-position-of-var}\-, \\ 
{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk}))\-\index{put} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\it{val\/}}, \\ 
{\it{var\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\-\index{put-assoc}, \\ 
{\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\-, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\-\index{p-$>$r\_ctrl-stk}))\-\-
\end{tabbing}

\begin{verbatim}; Recall that we are keeping p->r_sys-data-segment closed.  So we have
; to package up the put-assoc that the r machine does on its sys-data-segment:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  car-p-$>$r\_ctrl-stk \\ \index{car-p-$>$r\_ctrl-stk}
{\rm{car}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\it{temp-stk\/}}, {\it{max\/}})\index{p-$>$r\_ctrl-stk}) $=$ {\tt{'}}{\tt{cstk}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-p-$>$r\_temp-stk \\ \index{car-p-$>$r\_temp-stk}
{\rm{car}}\,({\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max\/}})\index{p-$>$r\_temp-stk}) $=$ {\tt{'}}{\tt{tstk}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-cstk-p-$>$r\_sys-data-segment-local \\ \index{put-assoc-cstk-p-$>$r\_sys-data!-segment-local}
\=\+{\rm{put-assoc}}\,(\=\+{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\it{ctrl-stk1\/}}, {\it{max-ctrl-stk-size1\/}})\index{p-$>$r\_ctrl-stk}), \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk2\/}}, \\ 
{\it{max-ctrl-stk-size2\/}}, \\ 
{\it{temp-stk2\/}}, \\ 
{\it{max-temp-stk-size2\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk1\/}}, \\ 
{\it{max-ctrl-stk-size1\/}}, \\ 
{\it{temp-stk2\/}}, \\ 
{\it{max-temp-stk-size2\/}})\-\index{p-$>$r\_sys-data-segment}\-
\end{tabbing}

\begin{verbatim}; Note:  The suffix "local" on the name above is present because we
; have a more elaborate version of this same idea later for call.

; Finally, we shut down the mappers:

\end{verbatim}
\noindent{\sc Event}:   Disable p-$>$r\_ctrl-stk.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-$>$r\_temp-stk.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-$>$r\_sys-data-segment.

\addvspace{18pt}

\begin{verbatim}; Now we address the stk-equal problem.  Since we have p->r_sys-data-segment
; disabled, we need theorems that tell us when one such application is
; stk-equal to another or to a put-assoc that changes on of the components.

; The following function is the standard induction hint for theorems about
; stk-equal that use a non-variable term for the stack pointer.  E.g.,
; if (stk-equal sp ...) could be proved by pop-to-empty-stkp induction
; on sp, then (stk-equal (tag 'sys-addr (cons 'cstk n)) ...) should be
; proved by (stk-equal-hint-1 n ...) induction on n.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{stk-equal-hint-1} \\  
\=\+{\rm{stk-equal-hint-1}}\,({\it{n\/}}, {\it{max\/}})\index{stk-equal-hint-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }({\it{max\/}} $-$ {\it{n\/}}) $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{stk-equal-hint-1}}\,($1\;+$ {\it{n\/}}, {\it{max\/}})\index{stk-equal-hint-1}$\;${\bf  endif}\-\-
\end{tabbing}


\begin{verbatim}; Because of the restrictions on the form of terms used as induction
; hints, we need a second form of this hint function.  (The problem has
; to do with the prohibition of non-variable terms in induction hint
; args, even for args in constant slots.)

\end{verbatim}
\noindent{\sc Event}:   Enable difference-x-0.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{stk-equal-hint-2} \\  
\=\+{\rm{stk-equal-hint-2}}\,({\it{n\/}}, {\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}}, {\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{stk-equal-hint-2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }((\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\tt{'}}{\tt{cstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-))\index{length} \\ 
$-$$\;\;\;\;${\it{n\/}})\- $-\;1$) $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{stk-equal-hint-2}}\,(\=\+{\it{n\/}} $+$ {\tt{1}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{stk-equal-hint-2}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; By the way, normally in the theorems we have to prove formulas of the
; form (stk-equal sp segment1 segment2) have the following ancestry and:
; form.  The sp is some semi-explicit pointer like 
; (tag 'sys-addr (cons 'cstk n)) as produced by p->r_csp.  Segment1 is
; a call of p->r_sys-data-segment on the result of stepping the p machine.
; Segment2 is the result of stepping the r machine on the original
; p->r_sys-data-segment.  

; If the stack pointer of interest is in the cstk area, then it doesn't
; matter what happens to the tstk area at the r level.  The following theorem
; formalizes that for the case where the r-level does nothing, e.g., no-op.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-reflexive-cstk \\ \index{stk-equal-reflexive-cstk}
{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk1\/}}, \\ 
{\it{max-temp-stk-size1\/}})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk2\/}}, \\ 
{\it{max-temp-stk-size2\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{stk-equal}
\end{tabbing}


\begin{verbatim}; The next theorem formalizes it (by reducing it to the no-op case) when the
; r-level just hits the tstk:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  assoc-put-assoc-1 \\ \index{assoc-put-assoc-1}
\=\+({\it{name1\/}} $\not=$ {\it{name2\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\it{name1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{alist\/}})\index{put-assoc}) $=$ {\rm{assoc}}\,({\it{name1\/}}, {\it{alist\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{stk-equal-hint-3} \\  
\=\+{\rm{stk-equal-hint-3}}\,({\it{n\/}}, {\it{segment\/}})\index{stk-equal-hint-3} \\ 
$=$$\;\;\;\;$\=\+{\bf if }(({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length} $-$ {\it{n\/}}) $-\;1$) $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{stk-equal-hint-3}}\,({\it{n\/}} $+$ {\tt{1}}, {\it{segment\/}})\index{stk-equal-hint-3}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  stk-equal-cstk-put-assoc-tstk \\ \index{stk-equal-cstk-put-assoc-tstk}
\=\+{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n\/}}))\index{tag}, \\ 
{\it{segment1\/}}, \\ 
{\rm{put-assoc}}\,({\it{area\/}}, {\tt{'}}{\tt{tstk}}, {\it{segment2\/}})\index{put-assoc})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n\/}}))\index{tag}, {\it{segment1\/}}, {\it{segment2\/}})\index{stk-equal}\-
\end{tabbing}

\begin{verbatim}; We now do the same thing for the case where the r-level machine doesn't
; change the cstk.  This is very common, of course.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{stk-equal-hint-4} \\  
\=\+{\rm{stk-equal-hint-4}}\,({\it{n\/}}, {\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}}, {\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{stk-equal-hint-4} \\ 
$=$$\;\;\;\;$\=\+{\bf if }((\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-))\index{length} \\ 
$-$$\;\;\;\;${\it{n\/}})\- $-\;1$) $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{stk-equal-hint-4}}\,(\=\+{\it{n\/}} $+$ {\tt{1}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{stk-equal-hint-4}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  stk-equal-reflexive-tstk \\ \index{stk-equal-reflexive-tstk}
{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk1\/}}, \\ 
{\it{max-ctrl-stk-size1\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk2\/}}, \\ 
{\it{max-ctrl-stk-size2\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{stk-equal}
\end{tabbing}


\begin{verbatim}; This completely handles the stk-equal work for the cstk (except on
; CALL and RET, which we be done specially when they arise).  Now I
; turn to tstk.

; Consider the pattern of pushes and pops used by our instructions.
; For each we need to know that the high level operation corresponds to
; the low level one.  The patterns we use are

;   pattern     typical instruction

;  push            push-global
;  pop             pop-global
;  pop 2           deposit
;  pop 1 push 1    add1-nat
;  pop 2 push 1    add-addr
;  pop 3 push 2    add-nat-with-carry
;  pop 1 push 2    mult2-nat-with-carry-out

; Our approach to stk-equal questions of the form
; (stk-equal (tag 'sys-addr (cons 'tstk n))
;            (p->r_sys-data-segment ... p-level-temp-stk ...)
;            r-level-temp-stk)
; will be to reduce them to (equal p-level-temp-stk &), where & is the
; "live part" of the r-level-temp-stk.  We don't define the function
; live-part but rather just use the combination of cdr-n and all-but-last
; defined below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-equal-car-cdr-n \\ \index{get-equal-car-cdr-n}
{\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get} $=$ {\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-nil \\ \index{cdr-n-nil}
\=\+(({\it{n\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\wedge$ {\rm{properp}}\,({\it{lst\/}})\index{properp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{fix}}\,({\it{n\/}}) $=$ {\rm{length}}\,({\it{lst\/}})\index{length}$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-all-but-last \\ \index{length-all-but-last}
{\rm{length}}\,({\rm{all-but-last}}\,({\it{x\/}})\index{all-but-last})\index{length} $=$ ({\rm{length}}\,({\it{x\/}})\index{length} $-\;1$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-all-but-last \\ \index{properp-all-but-last}
{\rm{properp}}\,({\rm{all-but-last}}\,({\it{x\/}})\index{all-but-last})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  stk-equal-is-equal-cdr-n-all-but-last-lemma1 \\ \index{stk-equal-is-equal-cdr-n-all-but!-last-lemma1}
\=\+({\rm{cdr-n}}\,({\it{n\/}}, {\it{x\/}})\index{cdr-n} $=$ {\rm{cdr-n}}\,({\it{n\/}}, {\it{y\/}})\index{cdr-n}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{x\/}}))\index{cdr-n} $=$ {\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{y\/}}))\index{cdr-n}) $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  stk-equal-is-equal-cdr-n-all-but-last-lemma2 \\ \index{stk-equal-is-equal-cdr-n-all-but!-last-lemma2}
\=\+(\=\+({\it{n\/}} $<$ ({\rm{length}}\,({\it{lst1\/}})\index{length} $-\;1$)) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\rm{all-but-last}}\,({\it{lst1\/}})\index{all-but-last}))\index{cdr-n} \\ 
$=$$\;\;\;\;${\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\rm{all-but-last}}\,({\it{lst2\/}})\index{all-but-last}))\index{cdr-n})\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{lst1\/}})\index{length} $=$ {\rm{length}}\,({\it{lst2\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr-n}}\,({\it{n\/}}, {\rm{all-but-last}}\,({\it{lst1\/}})\index{all-but-last})\index{cdr-n} $\not=$ {\rm{cdr-n}}\,({\it{n\/}}, {\rm{all-but-last}}\,({\it{lst2\/}})\index{all-but-last})\index{cdr-n}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst1\/}})\index{cdr-n}) $\not=$ {\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst2\/}})\index{cdr-n}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  stk-equal-is-equal-cdr-n-all-but-last-lemma3 \\ \index{stk-equal-is-equal-cdr-n-all-but!-last-lemma3}
\=\+(\=\+({\it{n\/}} $<$ ({\rm{length}}\,({\it{lst1\/}})\index{length} $-\;1$)) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{lst1\/}})\index{length} $=$ {\rm{length}}\,({\it{lst2\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr-n}}\,({\it{n\/}}, {\rm{all-but-last}}\,({\it{lst1\/}})\index{all-but-last})\index{cdr-n} $=$ {\rm{cdr-n}}\,({\it{n\/}}, {\rm{all-but-last}}\,({\it{lst2\/}})\index{all-but-last})\index{cdr-n}))\- \\ 
$\rightarrow$$\;\;\;\;$(({\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst1\/}})\index{cdr-n}) $=$ {\rm{car}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst2\/}})\index{cdr-n})) $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-sub1-difference-0 \\ \index{equal-sub1-difference-0}
((({\it{x\/}} $-$ {\it{y\/}}) $-\;1$) $=$ {\tt{0}}) $=$ ({\it{y\/}} $\not<$ ({\it{x\/}} $-\;1$))
\end{tabbing}

\begin{verbatim}; This is the key theorem.  We do not, in general, want to eliminate
; stk-equal, so it is proved with lemma class nil.  We'll prove a
; certain instance of it later for use as a rewrite rule.

; Note that as proved below it applies as well to the cstk as to tstk.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-is-equal-cdr-n-all-but-last \\ \index{stk-equal-is-equal-cdr-n-all-but!-last}
\=\+(\=\+({\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment1\/}})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment2\/}})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment1\/}}, {\it{segment2\/}})\index{stk-equal} \\ 
$=$$\;\;\;\;$(\=\+{\rm{cdr-n}}\,(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), \\ 
{\rm{all-but-last}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment1\/}})))\index{all-but-last})\-\index{cdr-n} \\ 
$=$$\;\;\;\;${\rm{cdr-n}}\,(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), \\ 
{\rm{all-but-last}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment2\/}})))\index{all-but-last})\-\index{cdr-n})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable equal-sub1-difference-0.

\addvspace{18pt}

\noindent{\sc Event}:   Disable get-equal-car-cdr-n.

\addvspace{18pt}

\noindent{\sc Event}:   Disable cdr-n-nil.

\addvspace{18pt}

\noindent{\sc Event}:   Disable stk-equal-is-equal-cdr-n-all-but-last-lemma1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable stk-equal-is-equal-cdr-n-all-but-last-lemma2.

\addvspace{18pt}

\noindent{\sc Event}:   Disable stk-equal-is-equal-cdr-n-all-but-last-lemma3.

\addvspace{18pt}


\begin{tabbing}{\sc Theorem}:  assoc-put-assoc-2 \\ \index{assoc-put-assoc-2}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{alist\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\it{name\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc}) $=$ {\rm{cons}}\,({\it{name\/}}, {\it{val\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-but-last-append \\ \index{all-but-last-append}
{\rm{listp}}\,({\it{b\/}}) $\rightarrow$ ({\rm{all-but-last}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{all-but-last} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{all-but-last}}\,({\it{b\/}})\index{all-but-last}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-n \\ \index{length-cdr-n}
{\rm{length}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n})\index{length} $=$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-$ {\it{n\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable append-right-id.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  cdr-n-append\{special\} \\ \index{cdr-n-append\{special\}}
({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{cdr-n}}\,({\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{cdr-n} $=$ {\it{b\/}})
\end{tabbing}

\begin{verbatim}; Here, finally, is the rewrite rule that reduce stk-equal
; questions on tstk to consideration of the "live part" of the
; r-level stack:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-tstk-p-$>$r\_sys-data-segment \\ \index{stk-equal-tstk-p-$>$r\_sys-data!-segment}
\=\+(\=\+{\rm{properp}}\,({\it{temp-stk\/}})\index{properp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $=$ ({\it{max-temp-stk-size\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length})) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp-stk-size\/}} $\not<$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\it{max-temp-stk-size\/}}) $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\it{segment\/}})\-\index{stk-equal} \\ 
$=$$\;\;\;\;$({\it{temp-stk\/}} $=$ {\rm{cdr-n}}\,(\=\+{\it{max-temp-stk-size\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{all-but-last}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\it{segment\/}})))\index{all-but-last})\-\index{cdr-n}))\-\-
\end{tabbing}
                              

\noindent{\sc Event}:   Disable stk-equal.

\addvspace{18pt}

\noindent{\sc Event}:   Disable empty-stkp.

\addvspace{18pt}

\begin{verbatim}; To use the theorem above we need to relieve the hypotheses.

; The typical form of instantiations for temp-stk in the lemma
; above is either (p-temp-stk p) or else some collection of
; conses and cdrs of it.  We need to know that it is proper.
; The first theorem below establishes that the initial temp
; stack is proper.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-implies-properp \\ \index{proper-p-temp-stkp-implies-prope!rp}
{\rm{proper-p-temp-stkp}}\,({\it{stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\rightarrow$ {\rm{properp}}\,({\it{stk\/}})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-p-temp-stkp \\ \index{properp-p-temp-stkp}
{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\rightarrow$ {\rm{properp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{properp}
\end{tabbing}

\begin{verbatim}; And this one establishes that the cdr of it is proper.  This is
; what we'll need when we pop.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  properp-implies-properp-cdr \\ \index{properp-implies-properp-cdr}
({\rm{listp}}\,({\it{x\/}}) $\wedge$ {\rm{properp}}\,({\it{x\/}})\index{properp}) $\rightarrow$ {\rm{properp}}\,({\rm{cdr}}\,({\it{x\/}}))\index{properp}
\end{tabbing}

\begin{verbatim}; When we push we'll cons onto the stack and that cons will be eaten
; by properp itself.

; The only other problematic hypothesis for the lemma above is that
; concerning the length of the new tstk area.  The typical instantiation
; of segment above will a put-assoc.  When we assoc for 'tstk in it we
; will get a (put val n previous-area), where n is some legal address in
; the previous tstk area.  We need to know the length of the resulting
; area.  It is, of course, unchanged:

\end{verbatim}
\noindent{\sc Event}:   Enable length-put.

\addvspace{18pt}

\begin{verbatim}; That handles most of the problems I can anticipate on relieving the
; hyps.  Now we consider simplifying the rhs of the lemma under the
; typical instantiations of segment.  We are interested in cdr-n and
; all-but-last lemmas on the result of (assoc 'tstk segment).  As noted,
; the assoc will turn into a put under most instantiations of segment.

; In the case that it is a put, we will use the following lemma to
; drive the all-but-last through the put.  If there are multiple puts,
; this lemma will drive it all the way down.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-but-last-put \\ \index{all-but-last-put}
\=\+({\it{n\/}} $<$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{all-but-last}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{all-but-last} $=$ {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{all-but-last}}\,({\it{lst\/}})\index{all-but-last})\index{put})\-
\end{tabbing}

\begin{verbatim}; Eventually it will come to rest against the original tsk and we'll
; open it up:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-but-last-cdr-p-$>$r\_temp-stk \\ \index{all-but-last-cdr-p-$>$r\_temp-st!k}
\=\+{\rm{properp}}\,({\it{temp-stk\/}})\index{properp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-but-last}}\,({\rm{cdr}}\,({\rm{p-$>$r\_temp-stk}}\,({\it{temp-stk\/}}, {\it{max-temp-stk-size\/}})\index{p-$>$r\_temp-stk}))\index{all-but-last} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{nat-0s}}\,({\it{max-temp-stk-size\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length})\index{nat-0s}, \\ 
{\it{temp-stk\/}})\-)\-\-
\end{tabbing}

\begin{verbatim}; to remove the (NAT 0) at the end, kicking out an append
; which will let the PUTs start to resolve themselves.

; Now if the put is an simple push the following lemma will take care
; of it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  nat-0s-opener-at-right-end \\ \index{nat-0s-opener-at-right-end}
\=\+{\rm{nat-0s}}\,({\it{n\/}})\index{nat-0s} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}} $-\;1$)\index{nat-0s}, {\rm{list}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}))$\;${\bf  endif}\-\-
\end{tabbing}
           
\begin{tabbing}{\sc Theorem}:  nat-0s-opener-at-right-end-on-add1 \\ \index{nat-0s-opener-at-right-end-on-a!dd1}
{\rm{nat-0s}}\,($1\;+$ {\it{n\/}})\index{nat-0s} $=$ {\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}})\index{nat-0s}, {\rm{list}}\,({\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-append \\ \index{put-append}
\=\+(({\it{n\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\wedge$ {\rm{listp}}\,({\it{b\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{cons}}\,({\it{val\/}}, {\rm{cdr}}\,({\it{b\/}}))))\-
\end{tabbing}

\begin{verbatim}; Whew!  That was tough wasn't it?  Anyway, here is the key fact
; about a put that implements a push.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-append-1\{special\} \\ \index{put-append-1\{special\}}
\=\+(({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{k\/}} $=$ ({\it{n\/}} $-\;1$))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, {\it{k\/}}, {\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}})\index{nat-0s}, {\it{lst\/}}))\index{put} $=$ {\rm{append}}\,({\rm{nat-0s}}\,({\it{k\/}})\index{nat-0s}, {\rm{cons}}\,({\it{val\/}}, {\it{lst\/}})))\-
\end{tabbing}

\begin{verbatim}; The following is needed to simplify the cdr-n in the case where
; we have done a pop.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  cdr-n-cdr \\ \index{cdr-n-cdr}
{\rm{cdr-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{lst\/}}))\index{cdr-n} $=$ {\rm{cdr}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n})
\end{tabbing}


\begin{verbatim}; There are probably more facts about cdr-n than I have proved.  I will
; prove the rest as needed to get the owc proofs through.

; Now we begin considering the same-signature requirements of r-equal.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-reflexive\{special\} \\ \index{same-signature-reflexive\{special\}}
\=\+(\=\+({\it{max-ctrl-stk-size\/}} $\not<$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk1\/}})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl-stk-size\/}} $\not<$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk2\/}})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp-stk-size\/}} $\not<$ {\rm{length}}\,({\it{temp-stk1\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp-stk-size\/}} $\not<$ {\rm{length}}\,({\it{temp-stk2\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk1\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk1\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk2\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk2\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-put-assoc-1 \\ \index{same-signature-put-assoc-1}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\it{name\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{definiens}}\,({\it{name\/}}, {\it{segment1\/}})\index{definiens})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{segment1\/}})\index{put-assoc}, {\it{segment2\/}})\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-put-assoc-2 \\ \index{same-signature-put-assoc-2}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\it{name\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{definiens}}\,({\it{name\/}}, {\it{segment2\/}})\index{definiens})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{segment2\/}})\index{put-assoc})\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature})\-\-
\end{tabbing}



\noindent{\sc Event}:   Disable same-signature.

\addvspace{18pt}


\begin{verbatim}; Now I want to disable get and put so that they are only manipulated by
; the lemmas we have proved.

\end{verbatim}
\noindent{\sc Event}:   Disable get.

\addvspace{18pt}


\noindent{\sc Event}:   Disable put.

\addvspace{18pt}

\begin{verbatim}; I have decided to do the owc proofs at this level a little differently.
; First I will prove that
; (p-xxx-okp p) -> (requal (p->r (p-xxx-step p)) (r-xxx-step (p->r p)))
; Then I will prove
; (p-xxx-okp p) -> (r-xxx-okp (p->r p)).

; Then I will put them together to get 
; (p->xxx-okp p) -> (r-equal (p->r (p-xxx-step p)) (r-step (p->r p))).

; We now begin the owc proofs.  I have selected several theorems for my
; initial test section and will work on the lemma development to make the
; proofs of these work.  Then I'll turn it loose on all the others.
; CALL and RET are left for last.  I have made sure to include one theorem
; for each pattern of tstk use mentioned above, plus local variable
; pushing and popping.  I begin, as always, with no-op, the simplest.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  no-op-one-way-correspondence-p-r \\ \index{no-op-one-way-correspondence-p-!r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-no-op-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-no-op-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-step})\index{p-$>$r}, \\ 
{\rm{r-no-op-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-no-op-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-global-one-way-correspondence-p-r \\ \index{push-global-one-way-corresponde!nce-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-push-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-step})\index{p-$>$r}, \\ 
{\rm{r-push-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-global-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-length-cdr \\ \index{lessp-length-cdr}
{\rm{length}}\,({\it{x\/}})\index{length} $\not<$ {\rm{length}}\,({\rm{cdr}}\,({\it{x\/}}))\index{length}
\end{tabbing}

\begin{verbatim}; To relieve the 2nd hypothesis of get-cdr-p->r_temp-stk, the one
; that says that i is less than max-temp-stk-size, we need to know,
; in the case of a simple pop, that:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-difference-x-y-x \\ \index{lessp-difference-x-y-x}
\=\+(({\it{max\/}} $\not<$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}) $\wedge$ {\rm{listp}}\,({\it{temp-stk\/}})) \\ 
$\rightarrow$$\;\;\;\;$(({\it{max\/}} $-$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}) $<$ {\it{max\/}})\-
\end{tabbing}

\begin{verbatim}; Note:  The rule above uses max as a free-var, accidentally.  I
; don't know if this will prevent its use later...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-global-one-way-correspondence-p-r \\ \index{pop-global-one-way-corresponden!ce-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pop-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-step})\index{p-$>$r}, \\ 
{\rm{r-pop-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-global-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-local-one-way-correspondence-p-r \\ \index{push-local-one-way-corresponden!ce-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-push-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-step})\index{p-$>$r}, \\ 
{\rm{r-push-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-local-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-local-one-way-correspondence-p-r \\ \index{pop-local-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pop-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-step})\index{p-$>$r}, \\ 
{\rm{r-pop-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-local-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-add1-x-x \\ \index{difference-add1-x-x}
(($1\;+$ {\it{x\/}}) $-$ {\it{x\/}}) $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-append-pop2 \\ \index{cdr-n-append-pop2}
\=\+(({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ (({\it{n\/}} $-\;1$) $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr-n}}\,({\it{n\/}}, {\rm{append}}\,({\rm{nat-0s}}\,(({\it{n\/}} $-\;1$) $-\;1$)\index{nat-0s}, {\it{stk\/}}))\index{cdr-n} $=$ {\rm{cddr}}\,({\it{stk\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-one-way-correspondence-p-r \\ \index{deposit-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-deposit-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-step})\index{p-$>$r}, \\ 
{\rm{r-deposit-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-deposit-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; The following lemmas are needed because lessp opens up when it
; on (lessp (p-max-temp-stk-size p) (length (p-temp-stk p)))
; because length opens up.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-equal-p-max-temp-stk-size-0 \\ \index{not-equal-p-max-temp-stk-size-0}
\=\+({\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) $\wedge$ ({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not=$ {\tt{0}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-sub1-p-max-temp-stk-size \\ \index{not-lessp-sub1-p-max-temp-stk-si!ze}
\=\+({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $-\;1$) $\not<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-nat-one-way-correspondence-p-r \\ \index{add1-nat-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-step})\index{p-$>$r}, \\ 
{\rm{r-add1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add1-nat-step})\-\index{r-equal}\-
\end{tabbing}


\begin{verbatim}; The following lemma explains a push after two pops.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-append-2\{special\} \\ \index{put-append-2\{special\}}
\=\+(({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{listp}}\,({\rm{cdr}}\,({\it{stk\/}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}} $-\;1$)\index{nat-0s}, {\it{stk\/}}))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}} $-\;1$)\index{nat-0s}, {\rm{cons}}\,({\rm{car}}\,({\it{stk\/}}), {\rm{cons}}\,({\it{val\/}}, {\rm{cddr}}\,({\it{stk\/}})))))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-append-2 \\ \index{cdr-n-append-2}
({\it{n\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ({\rm{cdr-n}}\,({\it{n\/}}, {\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}} $-\;1$)\index{nat-0s}, {\it{stk\/}}))\index{cdr-n} $=$ {\rm{cdr}}\,({\it{stk\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-one-way-correspondence-p-r \\ \index{add-addr-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-step})\index{p-$>$r}, \\ 
{\rm{r-add-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-addr-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; Because add-nat-with-carry writes twice to the tstk, we need:

\end{verbatim}
\noindent{\sc Event}:   Enable put-assoc-put-assoc.

\addvspace{18pt}

\begin{verbatim}; Both the p and the r machine use fix-small-natural and small-naturalp
; to operate on nats, so I will

\end{verbatim}
\noindent{\sc Event}:   Disable fix-small-natural.

\addvspace{18pt}

\noindent{\sc Event}:   Disable small-naturalp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable bool-to-nat.

\addvspace{18pt}

\noindent{\sc Event}:   Disable bool.

\addvspace{18pt}

\begin{verbatim}; The following lemma explains a push after three pops.


\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-append-nat-0s-sub1-sub1 \\ \index{put-append-nat-0s-sub1-sub1}
\=\+((({\it{n\/}} $-\;1$) $\not\simeq {\tt{0}}$) $\wedge$ {\rm{listp}}\,({\rm{cddr}}\,({\it{stk\/}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{append}}\,({\rm{nat-0s}}\,(({\it{n\/}} $-\;1$) $-\;1$)\index{nat-0s}, {\it{stk\/}}))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{nat-0s}}\,(({\it{n\/}} $-\;1$) $-\;1$)\index{nat-0s}, \\ 
{\rm{cons}}\,({\rm{car}}\,({\it{stk\/}}), {\rm{cons}}\,({\rm{cadr}}\,({\it{stk\/}}), {\rm{cons}}\,({\it{val\/}}, {\rm{cdddr}}\,({\it{stk\/}})))))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-with-carry-one-way-correspondence-p-r \\ \index{add-nat-with-carry-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add-nat-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-step})\index{p-$>$r}, \\ 
{\rm{r-add-nat-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-nat-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; As above, length opens up on (cons val (cdr temp-stk)), and lessp
; opens on that and we have to accomodate them.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-equal-sub1-p-max-temp-stk-size-0 \\ \index{not-equal-sub1-p-max-temp-stk-si!ze-0}
\=\+({\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) $\wedge$ ({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $-\;1$) $\not=$ {\tt{0}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-sub1-sub1-p-max-temp-stk-size \\ \index{not-lessp-sub1-sub1-p-max-temp-!stk-size}
\=\+({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+((({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $-\;1$) $-\;1$) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{length}) \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-with-carry-out-one-way-correspondence-p-r \\ \index{mult2-nat-with-carry-out-one-wa!y-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-with-carry-out-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-mult2-nat-with-carry-out-step})\index{p-$>$r}, \\ 
{\rm{r-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\-\index{r-mult2-nat-with-carry-out-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-sub1 \\ \index{difference-sub1}
(({\it{x\/}} $-\;1$) $-$ {\it{y\/}}) $=$ (({\it{x\/}} $-$ {\it{y\/}}) $-\;1$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-temp-stk-one-way-correspondence-p-r \\ \index{fetch-temp-stk-one-way-correspo!ndence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-fetch-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-step})\index{p-$>$r}, \\ 
{\rm{r-fetch-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-fetch-temp-stk-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-put \\ \index{properp-put}
{\rm{properp}}\,({\it{lst\/}})\index{properp} $\rightarrow$ {\rm{properp}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-put \\ \index{cdr-n-put}
\=\+(({\it{n\/}} $\not<$ {\it{k\/}}) $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr-n}}\,({\it{k\/}}, {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{cdr-n} $=$ {\rm{put}}\,({\it{val\/}}, {\it{n\/}} $-$ {\it{k\/}}, {\rm{cdr-n}}\,({\it{k\/}}, {\it{lst\/}})\index{cdr-n})\index{put})\-
\end{tabbing}
                              
\begin{tabbing}{\sc Theorem}:  deposit-temp-stk-one-way-correspondence-p-r \\ \index{deposit-temp-stk-one-way-corresp!ondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-deposit-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-step})\index{p-$>$r}, \\ 
{\rm{r-deposit-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-deposit-temp-stk-step})\-\index{r-equal}\-
\end{tabbing}


\noindent{\sc Event}:   Disable cdr-n-put.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-sub1.

\addvspace{18pt}

\begin{verbatim}; The pop* instruction shows a new twist:  popping many things off tstk.
; The p machine uses popn but we have a lot of machinery sitting around
; for cdr-n, which is an equivalent function:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  popn-is-cdr-n \\ \index{popn-is-cdr-n}
{\rm{popn}}\,({\it{n\/}}, {\it{lst\/}})\index{popn} $=$ {\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n}
\end{tabbing}

\begin{verbatim}; We now turn to stk-equal on the tstk. Recall 
; stk-equal-tstk-p->r_sys-data-segment:  it has two variables of importance,
; temp-stk, the p-level version of the stack, and segment, the r-level
; sys-data-segment. In the call case, temp-stk will be a popn (now cdr-n)
; and segment is untouched.  If we can relieve the hyps of the lemma,
; we will have to prove that the popn is equal to a certain 
; cdrn-all-but-last expression.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  properp-cdr-n \\ \index{properp-cdr-n}
({\rm{length}}\,({\it{lst\/}})\index{length} $\not<$ {\it{n\/}}) $\rightarrow$ ({\rm{properp}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n})\index{properp} $=$ {\rm{properp}}\,({\it{lst\/}})\index{properp})
\end{tabbing}

\begin{verbatim}; That relieves the hyps.  The all-but-last disappears under
; the hands of our previous lemmas, taking the terminal '(NAT 0)
; with it.  We are left with proving the equivalence of two CDR-N
; expressions.  The key is getting the n in one of them into a
; normal form to allow cdr-n-plus-append, below, to apply.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-x-difference \\ \index{difference-x-difference}
\=\+(({\it{len\/}} $\not<$ {\it{n\/}}) $\wedge$ ({\it{max\/}} $\not<$ {\it{len\/}})) \\ 
$\rightarrow$$\;\;\;\;$(({\it{max\/}} $-$ ({\it{len\/}} $-$ {\it{n\/}})) $=$ ({\it{n\/}} $+$ ({\it{max\/}} $-$ {\it{len\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-plus-append \\ \index{cdr-n-plus-append}
({\it{i\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{cdr-n}}\,({\it{i\/}} $+$ {\it{j\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{cdr-n} $=$ {\rm{cdr-n}}\,({\it{j\/}}, {\it{b\/}})\index{cdr-n})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-plus-append-commuted \\ \index{cdr-n-plus-append-commuted}
({\it{i\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) $\rightarrow$ ({\rm{cdr-n}}\,({\it{j\/}} $+$ {\it{i\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{cdr-n} $=$ {\rm{cdr-n}}\,({\it{j\/}}, {\it{b\/}})\index{cdr-n})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop*-one-way-correspondence-p-r \\ \index{pop*-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop*-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pop*-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-step})\index{p-$>$r}, \\ 
{\rm{r-pop*-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop*-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-cdr-n \\ \index{length-cdr-cdr-n}
{\rm{length}}\,({\rm{cdr}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n}))\index{length} $=$ ({\rm{length}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{length} $-$ {\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-cdr-cdr-n \\ \index{properp-cdr-cdr-n}
({\rm{length}}\,({\it{lst\/}})\index{length} $\not<$ ($1\;+$ {\it{n\/}})) $\rightarrow$ ({\rm{properp}}\,({\rm{cdr}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{lst\/}})\index{cdr-n}))\index{properp} $=$ {\rm{properp}}\,({\it{lst\/}})\index{properp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-plus-sub1-append-commuted \\ \index{cdr-n-plus-sub1-append-commuted}
\=\+(({\it{i\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{j\/}} $\in\;${\bf{N}}${}$) $\wedge$ (({\it{i\/}} $-\;1$) $=$ {\rm{length}}\,({\it{a\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr-n}}\,({\it{j\/}} $+$ {\it{i\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{cdr-n} $=$ {\rm{cdr}}\,({\rm{cdr-n}}\,({\it{j\/}}, {\it{b\/}})\index{cdr-n}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-one-way-correspondence-p-r \\ \index{popn-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-popn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-step})\index{p-$>$r}, \\ 
{\rm{r-popn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-popn-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; This ends the test section.


\end{verbatim}\begin{tabbing}{\sc Theorem}:  set-local-one-way-correspondence-p-r \\ \index{set-local-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-set-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-step})\index{p-$>$r}, \\ 
{\rm{r-set-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-set-local-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-global-one-way-correspondence-p-r \\ \index{set-global-one-way-corresponden!ce-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-set-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-step})\index{p-$>$r}, \\ 
{\rm{r-set-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-set-global-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-constant-one-way-correspondence-p-r \\ \index{push-constant-one-way-correspon!dence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-constant-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-push-constant-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-step})\index{p-$>$r}, \\ 
{\rm{r-push-constant-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-constant-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-ctrl-stk-free-size-one-way-correspondence-p-r \\ \index{push-ctrl-stk-free-size-one-way!-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-ctrl-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-ctrl-stk-free-size-step})\index{p-$>$r}, \\ 
{\rm{r-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\-\index{r-push-ctrl-stk-free-size-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-free-size-one-way-correspondence-p-r \\ \index{push-temp-stk-free-size-one-way!-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-push-temp-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-temp-stk-free-size-step})\index{p-$>$r}, \\ 
{\rm{r-push-temp-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\-\index{r-push-temp-stk-free-size-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-index-one-way-correspondence-p-r \\ \index{push-temp-stk-index-one-way-cor!respondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-index-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-push-temp-stk-index-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-step})\index{p-$>$r}, \\ 
{\rm{r-push-temp-stk-index-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-temp-stk-index-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-one-way-correspondence-p-r \\ \index{pop-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pop-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-step})\index{p-$>$r}, \\ 
{\rm{r-pop-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-one-way-correspondence-p-r \\ \index{jump-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-step})\index{p-$>$r}, \\ 
{\rm{r-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pushj-one-way-correspondence-p-r \\ \index{pushj-one-way-correspondence-p-!r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pushj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pushj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-step})\index{p-$>$r}, \\ 
{\rm{r-pushj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pushj-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popj-one-way-correspondence-p-r \\ \index{popj-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-popj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-step})\index{p-$>$r}, \\ 
{\rm{r-popj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-popj-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-one-way-correspondence-p-r \\ \index{sub-addr-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-step})\index{p-$>$r}, \\ 
{\rm{r-sub-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-addr-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  eq-one-way-correspondence-p-r \\ \index{eq-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-eq-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-eq-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-step})\index{p-$>$r}, \\ 
{\rm{r-eq-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-eq-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-addr-one-way-correspondence-p-r \\ \index{lt-addr-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-lt-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-step})\index{p-$>$r}, \\ 
{\rm{r-lt-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lt-addr-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-one-way-correspondence-p-r \\ \index{fetch-one-way-correspondence-p-!r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-fetch-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-step})\index{p-$>$r}, \\ 
{\rm{r-fetch-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-fetch-step})\-\index{r-equal}\-
\end{tabbing}


\noindent{\sc Event}:   Disable small-integerp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable iplus.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fix-small-integer.

\addvspace{18pt}

\noindent{\sc Event}:   Disable idifference.

\addvspace{18pt}

\noindent{\sc Event}:   Disable inegate.

\addvspace{18pt}

\noindent{\sc Event}:   Disable ilessp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  add-int-one-way-correspondence-p-r \\ \index{add-int-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-step})\index{p-$>$r}, \\ 
{\rm{r-add-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-with-carry-one-way-correspondence-p-r \\ \index{add-int-with-carry-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add-int-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-step})\index{p-$>$r}, \\ 
{\rm{r-add-int-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-int-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-int-one-way-correspondence-p-r \\ \index{add1-int-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-step})\index{p-$>$r}, \\ 
{\rm{r-add1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add1-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-one-way-correspondence-p-r \\ \index{sub-int-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-step})\index{p-$>$r}, \\ 
{\rm{r-sub-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-int-step})\-\index{r-equal}\-
\end{tabbing}


\noindent{\sc Event}:   Enable commutativity-of-iplus.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  sub-int-with-carry-one-way-correspondence-p-r \\ \index{sub-int-with-carry-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub-int-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-step})\index{p-$>$r}, \\ 
{\rm{r-sub-int-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-int-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-int-one-way-correspondence-p-r \\ \index{sub1-int-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-step})\index{p-$>$r}, \\ 
{\rm{r-sub1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub1-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  neg-int-one-way-correspondence-p-r \\ \index{neg-int-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-neg-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-neg-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-step})\index{p-$>$r}, \\ 
{\rm{r-neg-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-neg-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-int-one-way-correspondence-p-r \\ \index{lt-int-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-lt-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-step})\index{p-$>$r}, \\ 
{\rm{r-lt-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lt-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  int-to-nat-one-way-correspondence-p-r \\ \index{int-to-nat-one-way-corresponden!ce-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-int-to-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-int-to-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-step})\index{p-$>$r}, \\ 
{\rm{r-int-to-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-int-to-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-one-way-correspondence-p-r \\ \index{add-nat-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-add-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-step})\index{p-$>$r}, \\ 
{\rm{r-add-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-one-way-correspondence-p-r \\ \index{sub-nat-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-step})\index{p-$>$r}, \\ 
{\rm{r-sub-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-with-carry-one-way-correspondence-p-r \\ \index{sub-nat-with-carry-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub-nat-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-step})\index{p-$>$r}, \\ 
{\rm{r-sub-nat-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-nat-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-nat-one-way-correspondence-p-r \\ \index{sub1-nat-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-sub1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-step})\index{p-$>$r}, \\ 
{\rm{r-sub1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub1-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-nat-one-way-correspondence-p-r \\ \index{lt-nat-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-lt-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-step})\index{p-$>$r}, \\ 
{\rm{r-lt-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lt-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-one-way-correspondence-p-r \\ \index{mult2-nat-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-mult2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-step})\index{p-$>$r}, \\ 
{\rm{r-mult2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-mult2-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  div2-nat-one-way-correspondence-p-r \\ \index{div2-nat-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-div2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-div2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-step})\index{p-$>$r}, \\ 
{\rm{r-div2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-div2-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bitv-one-way-correspondence-p-r \\ \index{or-bitv-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-or-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-step})\index{p-$>$r}, \\ 
{\rm{r-or-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-or-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bitv-one-way-correspondence-p-r \\ \index{and-bitv-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-and-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-step})\index{p-$>$r}, \\ 
{\rm{r-and-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-and-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bitv-one-way-correspondence-p-r \\ \index{not-bitv-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-not-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-step})\index{p-$>$r}, \\ 
{\rm{r-not-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-not-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bitv-one-way-correspondence-p-r \\ \index{xor-bitv-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-xor-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-xor-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-step})\index{p-$>$r}, \\ 
{\rm{r-xor-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-xor-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rsh-bitv-one-way-correspondence-p-r \\ \index{rsh-bitv-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-rsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-rsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-step})\index{p-$>$r}, \\ 
{\rm{r-rsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-rsh-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-bitv-one-way-correspondence-p-r \\ \index{lsh-bitv-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-lsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-step})\index{p-$>$r}, \\ 
{\rm{r-lsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lsh-bitv-step})\-\index{r-equal}\-
\end{tabbing}


\noindent{\sc Event}:   Disable and-bool.

\addvspace{18pt}

\noindent{\sc Event}:   Disable or-bool.

\addvspace{18pt}

\noindent{\sc Event}:   Disable not-bool.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  or-bool-one-way-correspondence-p-r \\ \index{or-bool-one-way-correspondence-p!-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-or-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-step})\index{p-$>$r}, \\ 
{\rm{r-or-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-or-bool-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bool-one-way-correspondence-p-r \\ \index{and-bool-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-and-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-step})\index{p-$>$r}, \\ 
{\rm{r-and-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-and-bool-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bool-one-way-correspondence-p-r \\ \index{not-bool-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-not-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-step})\index{p-$>$r}, \\ 
{\rm{r-not-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-not-bool-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; In the next owc, we happen to compute a tstk stack pointer that
; is constant.  In particular, we generate (tag 'sys-addr (cons 'tstk n))
; for n = 0.  Thus, the tag computes and we get a constant that does
; not match a tag expression.  I therefore have to prove:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-reflexive-tstk-instance \\ \index{stk-equal-reflexive-tstk-instan!ce}
{\rm{stk-equal}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{sys-addr}}{\tt{ }}{\tt{(}}{\tt{tstk}}{\tt{ .\ }}{\tt{0}}{\tt{)}}{\tt{)}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk1\/}}, \\ 
{\it{max-ctrl-stk-size1\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk2\/}}, \\ 
{\it{max-ctrl-stk-size2\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{stk-equal}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-full-one-way-correspondence-p-r \\ \index{jump-if-temp-stk-full-one-way-c!orrespondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-full-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-jump-if-temp-stk-full-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-step})\index{p-$>$r}, \\ 
{\rm{r-jump-if-temp-stk-full-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-if-temp-stk-full-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; The following owc depends upon the definition of empty-stkp.  Recall
; that it has been disabled.  This is the only one so far that needs
; to know what it is.  Of course, the test made by the r-level
; jump-if-temp-stk-empty crucially depends on empty-stkp being
; consistently defined with the arithmetic done at the r-level.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-empty-one-way-correspondence-p-r \\ \index{jump-if-temp-stk-empty-one-way-!correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-empty-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-jump-if-temp-stk-empty-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-step})\index{p-$>$r}, \\ 
{\rm{r-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\-\index{r-jump-if-temp-stk-empty-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; All of the test instructions at the r level use the same
; predicate the p level does to determine whether the test
; is satisfied.

\end{verbatim}
\noindent{\sc Event}:   Disable p-test-natp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-intp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-bitvp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-boolp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  test-nat-and-jump-one-way-correspondence-p-r \\ \index{test-nat-and-jump-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-nat-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-test-nat-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-step})\index{p-$>$r}, \\ 
{\rm{r-test-nat-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-nat-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-int-and-jump-one-way-correspondence-p-r \\ \index{test-int-and-jump-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-int-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-test-int-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-step})\index{p-$>$r}, \\ 
{\rm{r-test-int-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-int-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bool-and-jump-one-way-correspondence-p-r \\ \index{test-bool-and-jump-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bool-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-test-bool-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-step})\index{p-$>$r}, \\ 
{\rm{r-test-bool-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-bool-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bitv-and-jump-one-way-correspondence-p-r \\ \index{test-bitv-and-jump-one-way-corre!spondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bitv-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-test-bitv-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-step})\index{p-$>$r}, \\ 
{\rm{r-test-bitv-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-bitv-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-put-value-indirect \\ \index{length-put-value-indirect}
{\rm{length}}\,({\rm{put-value-indirect}}\,({\it{val\/}}, {\it{n\/}}, {\it{alist\/}})\index{put-value-indirect})\index{length} $=$ {\rm{length}}\,({\it{alist\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-is-put-value-indirect \\ \index{put-is-put-value-indirect}
\=\+({\it{i\/}} $<$ {\rm{length}}\,({\it{alist\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val\/}}, {\it{i\/}}, {\rm{append}}\,({\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs}, {\it{stk\/}}))\index{put} \\ 
$=$$\;\;\;\;${\rm{append}}\,({\rm{strip-cdrs}}\,({\rm{put-value-indirect}}\,({\it{val\/}}, {\it{i\/}}, {\it{alist\/}})\index{put-value-indirect})\index{strip-cdrs}, {\it{stk\/}}))\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  put-plus-append-commuted \\ \index{put-plus-append-commuted}
\=\+({\it{i\/}} $=$ {\rm{length}}\,({\it{a\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, {\it{j\/}} $+$ {\it{i\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{put} $=$ {\rm{append}}\,({\it{a\/}}, {\rm{put}}\,({\it{val\/}}, {\it{j\/}}, {\it{b\/}})\index{put}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-cdr-p-$>$r\_ctrl-stk-2 \\ \index{put-cdr-p-$>$r\_ctrl-stk-2}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $<$ {\rm{length}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,(\=\+{\it{val\/}}, \\ 
\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$+$$\;\;\;\;${\it{i\/}}\-, \\ 
{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk}))\-\index{put} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-value-indirect}}\,(\=\+{\it{val\/}}, \\ 
{\it{i\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\-\index{put-value-indirect}, \\ 
{\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\-, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\-\index{p-$>$r\_ctrl-stk}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable put-plus-append-commuted.

\addvspace{18pt}


\begin{tabbing}{\sc Theorem}:  p-ctrl-stk-size-put-value-indirect \\ \index{p-ctrl-stk-size-put-value-indire!ct}
\=\+{\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-value-indirect}}\,(\=\+{\it{val\/}}, \\ 
{\it{i\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\it{ctrl-stk\/}}))\index{bindings})\-\index{put-value-indirect}, \\ 
{\rm{ret-pc}}\,({\rm{car}}\,({\it{ctrl-stk\/}}))\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{cdr}}\,({\it{ctrl-stk\/}}))\-)\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-\-
\end{tabbing}


\begin{verbatim}; The semantics of the pop-locn instruction, at the p level,
; introduces the term (cdr (p-ctrl-stk p)), which permits
; (p-ctrl-stk-size (p-ctrl-stk p)) to expand.  When that happens
; the lemma above (at least) is no longer applicable.  Perhaps
; the problem could be avoided by proving a bridged version of that
; single result.  But rather than do that, I will simply disable
; p-ctrl-stk-size in the owc proof.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-locn-one-way-correspondence-p-r \\ \index{pop-locn-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pop-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-step})\index{p-$>$r}, \\ 
{\rm{r-pop-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-locn-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-plus-x-y-y \\ \index{difference-plus-x-y-y}
(({\it{x\/}} $+$ {\it{y\/}}) $-$ {\it{y\/}}) $=$ {\rm{fix}}\,({\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-strip-cdrs \\ \index{get-strip-cdrs}
{\rm{get}}\,({\it{i\/}}, {\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs})\index{get} $=$ {\rm{cdr}}\,({\rm{get}}\,({\it{i\/}}, {\it{alist\/}})\index{get})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-non-numberp \\ \index{get-non-numberp}
({\it{i\/}} $\not\in\;${\bf{N}}${}$) $\rightarrow$ ({\rm{get}}\,({\it{i\/}}, {\it{x\/}})\index{get} $=$ {\rm{car}}\,({\it{x\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-cdr-p-$>$r\_ctrl-stk-2 \\ \index{get-cdr-p-$>$r\_ctrl-stk-2}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $<$ {\rm{length}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$+$$\;\;\;\;${\it{i\/}}\-, \\ 
{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk}))\-\index{get} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{get}}\,({\it{i\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\index{get}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable get-non-numberp.

\addvspace{18pt}

\begin{verbatim}; I now need a more general version of get-find-position-of-var.
; This could be moved up to make the proof of the other version
; faster.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-find-position-of-var-generalized \\ \index{get-find-position-of-var-genera!lized}
\=\+({\it{var\/}} $\in$ {\rm{strip-cars}}\,({\it{alist\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\rm{find-position-of-var}}\,({\it{var\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{find-position-of-var}, {\it{alist\/}})\index{get} \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\it{var\/}}, {\it{alist\/}}))\-\-
\end{tabbing}
  
\begin{tabbing}{\sc Theorem}:  get-find-position-of-var-bindings \\ \index{get-find-position-of-var-bindin!gs}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\it{var\/}} $\in$ {\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{find-position-of-var}}\,(\=\+{\it{var\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\-\index{find-position-of-var}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\it{var\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{bindings}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locn-one-way-correspondence-p-r \\ \index{locn-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-step})\index{p-$>$r}, \\ 
{\rm{r-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-locn-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-one-way-correspondence-p-r \\ \index{jump-case-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-case-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-jump-case-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-step})\index{p-$>$r}, \\ 
{\rm{r-jump-case-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-case-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; We are headed into the CALL case.  I am going to keep
; p-ctrl-stk-size disabled and open it explicitly on the newly
; pushed stack.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-ctrl-stk-size-cons-p-frame \\ \index{p-ctrl-stk-size-cons-p-frame}
\=\+{\rm{p-ctrl-stk-size}}\,({\rm{cons}}\,({\it{p-frame\/}}, {\it{stk\/}}))\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;$({\rm{p-frame-size}}\,({\it{p-frame\/}})\index{p-frame-size} $+$ {\rm{p-ctrl-stk-size}}\,({\it{stk\/}})\index{p-ctrl-stk-size})\-
\end{tabbing}

\begin{verbatim}; Proceeding with the proof of the owc, I first address the equality
; of the two ctrl stack sizes.  It suffices to know.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-pairlist \\ \index{length-pairlist}
{\rm{length}}\,({\rm{pairlist}}\,({\it{a\/}}, {\it{b\/}}))\index{length} $=$ {\rm{length}}\,({\it{a\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-pair-temps-with-initial-values \\ \index{length-pair-temps-with-initial-v!alues}
{\rm{length}}\,({\rm{pair-temps-with-initial-values}}\,({\it{alist\/}})\index{pair-temps-with-initial-values})\index{length} $=$ {\rm{length}}\,({\it{alist\/}})\index{length}
\end{tabbing}

\begin{verbatim}; The following speeds things up slightly.

\end{verbatim}
\noindent{\sc Event}:   Enable plus-0.

\addvspace{18pt}

\begin{verbatim}; Next we establish that the lengths of the final tstks are the same
; at both levels.  This follows from what we already have about popn
; being cdr-n and the length of cdr-n.

; Now we proceed to the stk-equal question on the cstk.  This is the
; crux of the call proof.  By allowing p->r_ctrl-stk to open we
; turn it into an append of nat-0s, etc., and enable our previously
; implemented lemmas converting puts to pushes to work.

; That explains the first two puts that the r machine does on call,
; one to push the ret-pc, the other to push the old cfp.

; Then r does a fetch-n to get the formals and a deposit-lst to push
; the formals and locals.  We deal with that now.

; We establish that the values the r machine fetches from its
; temp stk are the same as the values the p machine fetches.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{fetch-n-p-$>$r\_sys-data-segment!-generalized-hint} \\  
\=\+{\rm{fetch-n-p-$>$r\_sys-data-segment-generalized-hint}}\,({\it{n\/}}, {\it{i\/}})\index{fetch-n-p-$>$r\_sys-data-segment!-generalized-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{fetch-n-p-$>$r\_sys-data-segment-generalized-hint}}\,({\it{n\/}} $-\;1$, $1\;+$ {\it{i\/}})\index{fetch-n-p-$>$r\_sys-data-segment!-generalized-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-append-1 \\ \index{cdr-n-append-1}
({\rm{length}}\,({\it{a\/}})\index{length} $\not<$ {\it{n\/}}) $\rightarrow$ ({\rm{cdr-n}}\,({\it{n\/}}, {\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{cdr-n} $=$ {\rm{append}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{a\/}})\index{cdr-n}, {\it{b\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-append\{general\} \\ \index{car-append\{general\}}
\=\+{\rm{car}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}})) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{a\/}})$\;\;${\bf then }{\rm{car}}\,({\it{a\/}}) \\ 
{\bf else }{\rm{car}}\,({\it{b\/}})$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable listp-cdr-n.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  fetch-n-p-$>$r\_sys-data-segment-generalized \\ \index{fetch-n-p-$>$r\_sys-data-segment!-generalized}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ ({\it{i\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{length}}\,({\rm{cdr-n}}\,({\it{i\/}}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{cdr-n})\index{length} $\not<$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\it{i\/}} $+$ (\=\+{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} \\ 
$-$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length})\-)\-)\-\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment})\-\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{first-n}}\,({\it{n\/}}, {\rm{cdr-n}}\,({\it{i\/}}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{cdr-n})\index{first-n})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-n-p-$>$r\_sys-data-segment-call \\ \index{fetch-n-p-$>$r\_sys-data-segment!-call}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ ({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $\not<$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $-$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length})\-)\-\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment})\-\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{first-n}}\,({\it{n\/}}, {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{first-n})\-\-
\end{tabbing}
         

\begin{verbatim}; So next the r machine does a deposit-lst on cstk.  Since deposit-lst
; operates on a segment, not just a single area, we have to give it
; a segment below.  The segment we give it is one obtained by doing
; a put-assoc to any other segment.  The value put by that put-assoc 
; represents the cstk on which the deposits occur.  That cstk, in our
; application, happens to be the one on which the ret-pc and cfp were
; pushed.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{deposit-lst-put-assoc-append-hi!nt} \\  
\=\+{\rm{deposit-lst-put-assoc-append-hint}}\,({\it{n\/}}, {\it{lst\/}}, {\it{stk\/}})\index{deposit-lst-put-assoc-append-hi!nt} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{deposit-lst-put-assoc-append-hint}}\,(\=\+{\it{n\/}} $-\;1$, \\ 
{\rm{cdr}}\,({\it{lst\/}}), \\ 
{\rm{cons}}\,({\rm{car}}\,({\it{lst\/}}), {\it{stk\/}}))\-\index{deposit-lst-put-assoc-append-hi!nt}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-lst-put-assoc-append \\ \index{deposit-lst-put-assoc-append}
\=\+({\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{definedp} $\wedge$ ({\it{n\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-lst}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n\/}} $-\;1$))\index{tag}, \\ 
{\rm{put-assoc}}\,({\rm{append}}\,({\rm{nat-0s}}\,({\it{n\/}})\index{nat-0s}, {\it{stk\/}}), {\tt{'}}{\tt{cstk}}, {\it{segment\/}})\index{put-assoc})\-\index{deposit-lst} \\ 
$=$$\;\;\;\;${\rm{put-assoc}}\,(\=\+{\rm{append}}\,(\=\+{\rm{nat-0s}}\,({\it{n\/}} $-$ {\rm{length}}\,({\it{lst\/}})\index{length})\index{nat-0s}, \\ 
{\rm{append}}\,({\rm{rev}}\,({\it{lst\/}})\index{rev}, {\it{stk\/}}))\-, \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\it{segment\/}})\-\index{put-assoc})\-\-
\end{tabbing}

\begin{verbatim}; Note:  Each iteration we do a put.  We want our put-append-1 lemma to
; resolve it.  We don't want nat-0s expanding on us!

; To relieve the hypotheses we have to know the classic theorems:

\end{verbatim}
\noindent{\sc Event}:   Enable length-first-n.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-strip-cadrs.

\addvspace{18pt}

\begin{verbatim}; Having applied the lemma it remains to simplify the resulting rhs.  This
; requires more golden oldies:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  rev-rev \\ \index{rev-rev}
{\rm{properp}}\,({\it{x\/}})\index{properp} $\rightarrow$ ({\rm{rev}}\,({\rm{rev}}\,({\it{x\/}})\index{rev})\index{rev} $=$ {\it{x\/}})
\end{tabbing}


\noindent{\sc Event}:   Enable properp-strip-cadrs.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  append-nil\{special\} \\ \index{append-nil\{special\}}
{\rm{append}}\,({\bf{nil}}, {\it{x\/}}) $=$ {\it{x\/}}
\end{tabbing}

\begin{verbatim}; The rule above isn't crucial of course but it speeds things
; up a bit.

; Having simplified the rhs maximally, we observe that it is
; equivalent to using p->r_sys-data-segment on a newly pushed
; p-frame.

; Before we can prove that we have to know the following classic theorems:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  strip-cdrs-append \\ \index{strip-cdrs-append}
{\rm{strip-cdrs}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{strip-cdrs} $=$ {\rm{append}}\,({\rm{strip-cdrs}}\,({\it{a\/}})\index{strip-cdrs}, {\rm{strip-cdrs}}\,({\it{b\/}})\index{strip-cdrs})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cdrs-pairlist \\ \index{strip-cdrs-pairlist}
\=\+(({\rm{length}}\,({\it{a\/}})\index{length} $=$ {\rm{length}}\,({\it{b\/}})\index{length}) $\wedge$ {\rm{properp}}\,({\it{b\/}})\index{properp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{strip-cdrs}}\,({\rm{pairlist}}\,({\it{a\/}}, {\it{b\/}}))\index{strip-cdrs} $=$ {\it{b\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cdrs-pair-temps-with-initial-values \\ \index{strip-cdrs-pair-temps-with-initi!al-values}
{\rm{strip-cdrs}}\,({\rm{pair-temps-with-initial-values}}\,({\it{alist\/}})\index{pair-temps-with-initial-values})\index{strip-cdrs} $=$ {\rm{strip-cadrs}}\,({\it{alist\/}})\index{strip-cadrs}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-difference \\ \index{difference-difference}
(({\it{x\/}} $-$ {\it{y\/}}) $-$ {\it{z\/}}) $=$ ({\it{x\/}} $-$ ({\it{y\/}} $+$ {\it{z\/}}))
\end{tabbing}


\noindent{\sc Event}:   Enable properp-rev.

\addvspace{18pt}


\noindent{\sc Event}:   Enable rev-append.

\addvspace{18pt}


\noindent{\sc Event}:   Enable length-rev.

\addvspace{18pt}

\begin{verbatim}; Here then is the theorem that folds the PUT-ASSOC of the r-level
; cstk into a p->r_sys-data-segment.

; Note:  At one time I arranged this lemma to fold up into a
; p->r_ctrl-stk, with the intention of relying on 
; put-assoc-cstk-p->r_sys-dat-segment-local to fold that
; up into the p->r_sys-data-segment.  That strategy did not
; work in the proof of the call owc because there I have
; p->r_ctrl-stk enabled and as soon as it was folded up
; it unfolded again.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-assoc-cstk-p-$>$r\_sys-data-segment-call \\ \index{put-assoc-cstk-p-$>$r\_sys-data!-segment-call}
\=\+(\=\+(({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-\;1$) $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{temp-var-dcls})\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put-assoc}}\,(\=\+{\rm{append}}\,(\=\+{\rm{nat-0s}}\,(\=\+(((\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\- $-\;1$) $-\;1$) \\ 
$-$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\-\-)\index{nat-0s}, \\ 
{\rm{append}}\,(\=\+{\rm{rev}}\,({\rm{first-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{first-n})\index{rev}, \\ 
{\rm{append}}\,(\=\+{\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{strip-cadrs}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{cstk}}, \\ 
((\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{p-ctrl-stk-size})\- $-\;1$) $-\;1$)\-)\-\index{tag}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
$1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}))\-)\-\index{tag}, \\ 
{\rm{append}}\,(\=\+{\rm{p-$>$r\_ctrl-stk1}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\-\index{p-$>$r\_ctrl-stk1}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}{\tt{)}})\-)\-)\-)\-)\-)\-, \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{append}}\,(\=\+{\rm{pairlist}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{rev}}\,({\rm{first-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\-\index{first-n})\index{rev})\-, \\ 
{\rm{pair-temps-with-initial-values}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{pair-temps-with-initial-values})\-, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
$1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}))\-)\-\index{tag})\-\index{p-frame}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable difference-difference.

\addvspace{18pt}

\begin{verbatim}; The lemma above takes care of the stk-equal question for cstk, given
; reflexivity.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-one-way-correspondence-p-r \\ \index{call-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-step})\index{p-$>$r}, \\ 
{\rm{r-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-call-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; pop-call does an additional pop, which causes us a little trouble.

; The following three lemmas are necessary to let us relieve the hypotheses
; of the DEPOSIT-LST-PUT-ASSOC-APPEND lemma.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-equal-sub1-difference-p-max-ctrl-stk-size-etc \\ \index{not-equal-sub1-difference-p-max!-ctrl-stk-size-etc}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$(\=\+(({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-\;1$) $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{untag}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{untag}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) $-\;1$) \\ 
$\not=$$\;\;\;\;${\tt{0}})\-\-
\end{tabbing}


\noindent{\sc Event}:   Enable length-fetch-n.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-lessp-sub1-sub1-difference-p-max-ctrl-stk-size-etc \\ \index{not-lessp-sub1-sub1-difference-p!-max-ctrl-stk-size-etc}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$(\=\+(({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-\;1$) $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{untag}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{untag}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+((({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) $-\;1$) $-\;1$) \\ 
$<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{untag}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{untag}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\-)\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-n-p-$>$r\_sys-data-segment-pop-call \\ \index{fetch-n-p-$>$r\_sys-data-segment!-pop-call}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{length} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
\=\+{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} \\ 
$-$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{length}\-)\-)\-\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment})\-\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{first-n}}\,({\it{n\/}}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{first-n})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-cstk-p-$>$r\_sys-data-segment-pop-call \\ \index{put-assoc-cstk-p-$>$r\_sys-data!-segment-pop-call}
\=\+(\=\+(({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-\;1$) $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{temp-var-dcls})\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put-assoc}}\,(\=\+{\rm{append}}\,(\=\+{\rm{nat-0s}}\,(((\=\+(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\- \\ 
$-$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\-)\- $-\;1$) $-\;1$)\index{nat-0s}, \\ 
{\rm{append}}\,(\=\+{\rm{rev}}\,({\rm{first-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\-\index{first-n})\index{rev}, \\ 
{\rm{append}}\,(\=\+{\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{strip-cadrs}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{cstk}}, \\ 
((\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{p-ctrl-stk-size})\- $-\;1$) $-\;1$)\-)\-\index{tag}, \\ 
{\rm{cons}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
$1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}))\-)\-\index{tag}, \\ 
{\rm{append}}\,(\=\+{\rm{p-$>$r\_ctrl-stk1}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\-\index{p-$>$r\_ctrl-stk1}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}{\tt{)}})\-)\-)\-)\-)\-)\-, \\ 
{\tt{'}}{\tt{cstk}}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{append}}\,(\=\+{\rm{pairlist}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{rev}}\,({\rm{first-n}}\,(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length}, \\ 
{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\-\index{first-n})\index{rev})\-, \\ 
{\rm{pair-temps-with-initial-values}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{pair-temps-with-initial-values})\-, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
$1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}))\-)\-\index{tag})\-\index{p-frame}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\-, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-n-plus-append-pop-call \\ \index{cdr-n-plus-append-pop-call}
\=\+({\it{len\/}} $<$ {\it{max\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr-n}}\,(({\it{max\/}} $-$ {\it{len\/}}) $+$ {\it{n\/}}, {\rm{append}}\,({\rm{nat-0s}}\,(({\it{max\/}} $-$ {\it{len\/}}) $-\;1$)\index{nat-0s}, {\it{stk\/}}))\index{cdr-n} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{stk\/}})\index{cdr-n}))\-\-
\end{tabbing}

\begin{verbatim}; pop-call has all the disable/enable hints of call; in addition,
; it disables nat-0s.  The problem is that because of the extra
; pop there is permission to expand nat-0s one more and lemmas
; fail to fire, it also enables difference-sub1 to let the extra
; pop come out where I expect it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-call-one-way-correspondence-p-r \\ \index{pop-call-one-way-correspondence!-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-pop-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-step})\index{p-$>$r}, \\ 
{\rm{r-pop-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-call-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; I am now headed for ret.  Because the ret command sometimes halts,
; and we're trying to prove r-equals of such states, we need to know
; what r-halt does.  I suppose I could have allowed it to expand.


\end{verbatim}\begin{tabbing}{\sc Theorem}:  components-of-r-halt \\ \index{components-of-r-halt}
\=\+({\rm{r-pc}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-pc} $=$ {\rm{r-pc}}\,({\it{r\/}})\index{r-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-cfp}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-cfp} $=$ {\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-csp}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-csp} $=$ {\rm{r-csp}}\,({\it{r\/}})\index{r-csp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-tsp}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-tsp} $=$ {\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-x}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-x} $=$ {\rm{r-x}}\,({\it{r\/}})\index{r-x}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-y}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-y} $=$ {\rm{r-y}}\,({\it{r\/}})\index{r-y}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-c-flg}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-c-flg} $=$ {\rm{r-c-flg}}\,({\it{r\/}})\index{r-c-flg}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-v-flg}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-v-flg} $=$ {\rm{r-v-flg}}\,({\it{r\/}})\index{r-v-flg}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-n-flg}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-n-flg} $=$ {\rm{r-n-flg}}\,({\it{r\/}})\index{r-n-flg}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-z-flg}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-z-flg} $=$ {\rm{r-z-flg}}\,({\it{r\/}})\index{r-z-flg}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-prog-segment}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-usr-data-segment}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-usr-data-segment} $=$ {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-sys-data-segment}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-sys-data-segment} $=$ {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\rm{r-halt}}\,({\it{r\/}}, {\it{psw\/}})\index{r-halt})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size})\-
\end{tabbing}

\begin{verbatim}; The p level machine cdrs the ctrl stack.  The r level, of course,
; doesn't, but it does set the csp and cfp by computation on the
; about-to-be popped top frame.  We need to know that the values
; it retrieves for ret-pc and the new cfp are the same as those the
; p machine uses.

; The values of cfp and ret-pc are fetched from an address based
; on the current cfp, which involves the size of the stack from
; before the top frame was pushed.  But the lemmas we have for
; explaining how to get from a stack are based on offsets from the
; the top of the stack, not negative offsets from somewhere in the
; middle.  The following lemma takes care of this by converting the
; previously computed cfp from a "somewhere in the middle" address
; to an offset from the current top.

; Warning:  The following lemma folds up p-ctrl-stk-size.  It must be not
; enabled unless that function is disabled.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-p-ctrl-stk-size-folder \\ \index{difference-p-ctrl-stk-size-folde!r}
\=\+(\=\+{\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{p-ctrl-stk-size}) \\ 
$=$$\;\;\;\;$($1\;+$ (\=\+(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\- \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{bindings}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{top})\index{bindings})\index{length} \\ 
$+$$\;\;\;\;${\tt{1}})\-))\-\-
\end{tabbing}

\begin{verbatim}; Note: The rather cruious ordering of the addends above makes it perfect
; fodder for get-append, provided the system doesn't rearrange the
; plus nests.  Note that the classic properties of plus are disabled
; in the next lemma.

; So here are the two lemmas that tell us the r machine fetches the same
; ret-pc and cfp that the p machine does.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  ret-pc-in-correct-position \\ \index{ret-pc-in-correct-position}
\=\+(\=\+{\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{p-ctrl-stk-size}) $-\;1$, \\ 
{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk}))\-\index{get} \\ 
$=$$\;\;\;\;${\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cfp-in-correct-position \\ \index{cfp-in-correct-position}
\=\+(\=\+{\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+(({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{p-ctrl-stk-size}) $-\;1$) $-\;1$, \\ 
{\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_ctrl-stk}))\-\index{get} \\ 
$=$$\;\;\;\;${\rm{p-$>$r\_cfp}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size})\index{p-$>$r\_cfp})\-\-
\end{tabbing}

\begin{verbatim}; And now we shut down the lemma that folds p-ctrl-stk-size.

\end{verbatim}
\noindent{\sc Event}:   Disable difference-p-ctrl-stk-size-folder.

\addvspace{18pt}

\begin{verbatim}; The next pair of lemmas help deal with the arithmetic surrounding
; the hypothesis that the ctrl-stk has more than one frame on it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-p-ctrl-stk-size \\ \index{lessp-p-ctrl-stk-size}
{\rm{listp}}\,({\it{stk\/}}) $\rightarrow$ ({\tt{0}} $<$ {\rm{p-ctrl-stk-size}}\,({\it{stk\/}})\index{p-ctrl-stk-size})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  zerop-difference-p-ctrl-stk-size \\ \index{zerop-difference-p-ctrl-stk-size}
\=\+(\=\+{\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+(((\=\+($1\;+$ {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}) \\ 
$-$$\;\;\;\;$((\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$-$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{p-ctrl-stk-size})\- $-\;1$))\- $-\;1$) $-\;1$) \\ 
$=$$\;\;\;\;${\tt{0}})\- \\ 
$=$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) $\simeq\;${{\bf{nil}}}${}$))\-\-
\end{tabbing}

\begin{verbatim}; We now consider the crux of the matter, which is proving the
; stk-equality of the ctrl stks after the ret.  Recall that until
; now we have handled stk-equal questions in two different ways:
; For cstk we arranged for the r-level operation to fold itself into
; a mapped down image of the corresponding p level operation and then
; appealed simply to the reflexivity of stk-equal.  For tstk, on the
; other hand, we adopted the much more general strategy of showing
; the equality of the live part of the two stacks.  The stk-equal
; question on tstk was converted to an equality question on cdr-n
; and all-but-last by the lemma stk-equal-tstk-p->r_sys-data-segment.

; To handle ret we will adopt the tstk strategy for cstk.
; We prove a cstk version of stk-equal-tstk-p->r_sys-data-segment.

; If you look below you will see it.  It is necessary to know
; what cdr-n and all-but-last do on p->r_ctrl-stk.

\end{verbatim}
\noindent{\sc Event}:   Enable properp-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  properp-p-$>$r\_ctrl-stk1 \\ \index{properp-p-$>$r\_ctrl-stk1}
{\rm{properp}}\,({\rm{p-$>$r\_ctrl-stk1}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk1})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-but-last-cdr-p-$>$r\_ctrl-stk \\ \index{all-but-last-cdr-p-$>$r\_ctrl-st!k}
\=\+{\rm{all-but-last}}\,({\rm{cdr}}\,({\rm{p-$>$r\_ctrl-stk}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk}))\index{all-but-last} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{nat-0s}}\,({\it{max-ctrl-stk-size\/}} $-$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\index{nat-0s}, \\ 
{\rm{p-$>$r\_ctrl-stk1}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk1})\-\-
\end{tabbing}

\begin{verbatim}; Here then is the lemma.  The hints were formed by analogy with
; the hints for the tstk version.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-cstk-p-$>$r\_sys-data-segment \\ \index{stk-equal-cstk-p-$>$r\_sys-data!-segment}
\=\+(\=\+{\rm{properp}}\,({\it{ctrl-stk\/}})\index{properp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $=$ ({\it{max-ctrl-stk-size\/}} $-$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl-stk-size\/}} $\not<$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\it{max-ctrl-stk-size\/}}) $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\it{ctrl-stk\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{max-temp-stk-size\/}})\-\index{p-$>$r\_sys-data-segment}, \\ 
{\it{segment\/}})\-\index{stk-equal} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-$>$r\_ctrl-stk1}}\,({\it{ctrl-stk\/}}, {\it{max-ctrl-stk-size\/}})\index{p-$>$r\_ctrl-stk1} \\ 
$=$$\;\;\;\;${\rm{cdr-n}}\,(\=\+{\it{max-ctrl-stk-size\/}} $-$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size}, \\ 
{\rm{all-but-last}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment\/}})))\index{all-but-last})\-\index{cdr-n})\-)\-\-
\end{tabbing}

\begin{verbatim}; To apply the lemma we to be able to relieve the hypothesis that
; the new ctrl-stk produced by the p machine is proper.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-ctrl-stkp-implies-properp \\ \index{proper-p-ctrl-stkp-implies-prope!rp}
{\rm{proper-p-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ctrl-stkp} $\rightarrow$ {\rm{properp}}\,({\it{ctrl-stk\/}})\index{properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-p-ctrl-stkp \\ \index{properp-p-ctrl-stkp}
{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\rightarrow$ {\rm{properp}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{properp}
\end{tabbing}

\begin{verbatim}; Once we've done that we rewrite the stk-equal to the cdr-n of
; the all-but-last of the mapped down stack.  The all-but-last
; theorem above takes care of that function.  The following cdr-n
; lemma shows that the cdr-n is exactly enough to pop off the
; top frame.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-plus-plus-plus-cancellation \\ \index{difference-plus-plus-plus-cance!llation}
(({\it{x\/}} $+$ ({\it{y\/}} $+$ ({\it{z\/}} $+$ {\it{n\/}}))) $-$ {\it{n\/}}) $=$ ({\it{y\/}} $+$ ({\it{z\/}} $+$ {\it{x\/}}))
\end{tabbing}

\begin{verbatim}; The odd reordering of the addends above makes the result perfect
; fodder for cdr-n-plus-append.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  cdr-n-append-ret \\ \index{cdr-n-append-ret}
\=\+(\=\+({\it{max\/}} $=$ ({\tt{2}} $+$ {\rm{length}}\,({\it{part1\/}})\index{length} $+$ {\rm{length}}\,({\it{part2\/}})\index{length} $+$ {\rm{length}}\,({\it{tail\/}})\index{length})) \\ 
$\wedge$$\;\;\;\;$({\it{len\/}} $=$ {\rm{length}}\,({\it{tail\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr-n}}\,({\it{max\/}} $-$ {\it{len\/}}, {\rm{append}}\,({\it{part1\/}}, {\rm{append}}\,({\it{part2\/}}, {\rm{cons}}\,({\it{e1\/}}, {\rm{cons}}\,({\it{e2\/}}, {\it{tail\/}})))))\index{cdr-n} \\ 
$=$$\;\;\;\;${\it{tail\/}})\-\-
\end{tabbing}

\begin{verbatim}; And that is that.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  ret-one-way-correspondence-p-r \\ \index{ret-one-way-correspondence-p-r}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ret-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-ret-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-step})\index{p-$>$r}, \\ 
{\rm{r-ret-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-ret-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; We now attack the invariance of proper-p-statep.  The proof is
; as you would expect, by consideration of each of the cases.

; We first prove a beautiful theorem.  Suppose p is a proper p state
; and p' is derived from p, having certain components in common with it
; (e.g., the program segment).  Then the question "is p' proper?"
; can be reduced the some questions about its components and p.
; That may sound like just opening up proper-p-statep, but it's not.
; Opening up would reduce the question to some questions about its
; components and p'.  The nice thing about reducing it to p is that
; we will generally have many hypotheses about things being
; proper p objects.

; The amount of work we have to do to prove this lemma is an indication
; of how much it saves us, over merely opening up proper-p-statep.


; Whenever I have a same-signature as a hyp of a rule with concl
; lhs = rhs the same-signature will determine the direction of
; the rule.  In particular, (same-signature segment1 segment2)
; in a hyp means I will rewrite segment1 terms to segment2 terms.

\end{verbatim}
\noindent{\sc Event}:   Enable same-signature-segment-length.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-p-loadablep \\ \index{same-signature-implies-equal-p-!loadablep}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-loadablep}}\,(\=\+{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep} \\ 
$=$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-lengths \\ \index{same-signature-implies-equal-le!ngths}
\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-definedp \\ \index{same-signature-implies-equal-de!finedp}
\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$({\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} $=$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-p-objectp \\ \index{same-signature-implies-equal-p-!objectp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{p-objectp} \\ 
$=$$\;\;\;\;${\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-all-p-objectps \\ \index{same-signature-implies-equal-al!l-p-objectps}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-p-objectps}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{all-p-objectps} \\ 
$=$$\;\;\;\;${\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-alistp \\ \index{same-signature-implies-equal-pr!oper-p-alistp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-alistp}}\,(\=\+{\it{alist\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-alistp} \\ 
$=$$\;\;\;\;${\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-framep \\ \index{same-signature-implies-equal-pr!oper-p-framep}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-framep}}\,(\=\+{\it{frame\/}}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-framep} \\ 
$=$$\;\;\;\;${\rm{proper-p-framep}}\,({\it{frame\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-framep})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-framep.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-ctrl-stkp \\ \index{same-signature-implies-equal-pr!oper-p-ctrl-stkp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-ctrl-stkp}}\,(\=\+{\it{stk\/}}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-ctrl-stkp} \\ 
$=$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,({\it{stk\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ctrl-stkp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-temp-stkp \\ \index{same-signature-implies-equal-pr!oper-p-temp-stkp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-temp-stkp}}\,(\=\+{\it{stk\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-temp-stkp} \\ 
$=$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\it{stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-temp-var-dclsp \\ \index{same-signature-implies-equal-pr!oper-p-temp-var-dclsp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-temp-var-dclsp}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-temp-var-dclsp} \\ 
$=$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,({\it{lst\/}}, {\it{p\/}})\index{proper-p-temp-var-dclsp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-instructionp \\ \index{same-signature-implies-equal-pr!oper-p-instructionp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-instructionp} \\ 
$=$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-labeled-p-instructionsp \\ \index{same-signature-implies-equal-pr!oper-labeled-p-instructionsp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-labeled-p-instructionsp}}\,(\=\+{\it{lst\/}}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp} \\ 
$=$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-program-bodyp \\ \index{same-signature-implies-equal-pr!oper-p-program-bodyp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-program-bodyp}}\,(\=\+{\it{lst\/}}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-program-bodyp} \\ 
$=$$\;\;\;\;${\rm{proper-p-program-bodyp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-program-bodyp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-program-bodyp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-programp \\ \index{same-signature-implies-equal-pr!oper-p-programp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-programp}}\,(\=\+{\it{prog\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-programp} \\ 
$=$$\;\;\;\;${\rm{proper-p-programp}}\,({\it{prog\/}}, {\it{p\/}})\index{proper-p-programp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-programp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-prog-segmentp \\ \index{same-signature-implies-equal-pr!oper-p-prog-segmentp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-prog-segmentp}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-prog-segmentp} \\ 
$=$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\it{lst\/}}, {\it{p\/}})\index{proper-p-prog-segmentp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-implies-equal-proper-p-data-segmentp \\ \index{same-signature-implies-equal-pr!oper-p-data-segmentp}
\=\+{\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-data-segmentp}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\-\index{proper-p-data-segmentp} \\ 
$=$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{lst\/}}, {\it{p\/}})\index{proper-p-data-segmentp})\-\-
\end{tabbing}
                   
\begin{verbatim}; We are about to prove the theorem that is our main tool for
; the invariance proofs.  However, there is one major trick ahead.
; Here is a typical step theorem we will have to prove:

;(prove-lemma xxx-preserves-proper-p-statep (rewrite)
; (implies (and (equal (p-psw p) 'run)
;               (equal (car (p-current-instruction p))
;                      'xxx)
;               (proper-p-statep p)
;               (p-xxx-okp (p-current-instruction p) p))
;          (proper-p-statep
;           (p-xxx-step (p-current-instruction p) p))))

; Recall proper-p-state-restructuring.  It is an unconditional
; rewrite that replaces the hypothesized (proper-p-statep p)
; by a conjunction of (proper-p-statep1 p) and some linear
; conditions and a gratuitous but extremely useful
; (proper-p-instructionp (p-current-instruction p) p).
; We depend on that restructuring to let us access many of the
; lemmas already proved.

; However, that same restructuring will hit our concluding
; (proper-p-statep (p-xxx-step ...)) and force us to prove
; different things than we wish.  We are going to avoid this by
; a silly syntactic trick.  The step theorems we prove will
; be of the form:

;(prove-lemma xxx-preserves-proper-p-statep (rewrite)
; (implies (and (equal (p-psw p) 'run)
;               (proper-p-statep p)
;               (p-xxx-okp (p-current-instruction p) p))
;          (ur-proper-p-statep
;           (p-xxx-step (p-current-instruction p) p))))

; where ur-proper-p-statep is in fact proper-p-statep but
; is disabled.  

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{ur-proper-p-statep}$\;\;$
{\rm{ur-proper-p-statep}}\,({\it{p\/}})\index{ur-proper-p-statep} $=$ {\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep}
\end{tabbing}

\begin{verbatim}; The lemma towards which we have been working, namely the
; lemma that rewrites (proper-p-statep p') to a conjunction
; of facts about p, will actually rewrite (ur-proper-p-statep p'):

\end{verbatim}\begin{tabbing}{\sc Theorem}:  ur-proper-p-statep-p-state \\ \index{ur-proper-p-statep-p-state}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ {\rm{same-signature}}\,({\it{new-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{ur-proper-p-statep}}\,({\rm{p-state}}\,(\=\+{\it{new-pc\/}}, \\ 
{\it{new-ctrl-stk\/}}, \\ 
{\it{new-temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{new-data-segment\/}}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{new-psw\/}})\-\index{p-state})\index{ur-proper-p-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\it{new-pc\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{new-ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-framep}}\,({\rm{top}}\,({\it{new-ctrl-stk\/}})\index{top}, {\rm{area-name}}\,({\it{new-pc\/}})\index{area-name}, {\it{p\/}})\index{proper-p-framep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{pop}}\,({\it{new-ctrl-stk\/}})\index{pop}, \\ 
{\rm{area-name}}\,({\rm{ret-pc}}\,({\rm{top}}\,({\it{new-ctrl-stk\/}})\index{top})\index{ret-pc})\index{area-name}, \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\it{new-ctrl-stk\/}})\index{p-ctrl-stk-size})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\it{new-temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\it{new-temp-stk\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{new-data-segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable ur-proper-p-statep.

\addvspace{18pt}

\begin{verbatim}; When we are all done we will reveal that ur-proper-p-statep
; is proper-p-statep and get the invariance theorem.

; To apply the main lemma above we need to establish the
; same-signature hypothesis.  We will prove the necessary
; lemmas as needed.  For the no-op case it is:

\end{verbatim}
\noindent{\sc Event}:   Enable same-signature-reflexive.

\addvspace{18pt}

\begin{verbatim}; We also have to be able to establish (proper-p-statep p)
; in a context in which it has been restructured.  This is
; a new problem -- in our previous proofs we always went after
; (proper-p-statep1 p) or explicit inequalities.  Anyway, to
; get (proper-p-statep p) it is sufficient to know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  listp-p-current-instruction \\ \index{listp-p-current-instruction}
\=\+({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\rm{pack}}\,({\it{xxx\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction})\-
\end{tabbing}


\noindent{\sc Event}:   Enable proper-p-framep.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  no-op-preserves-proper-p-statep \\ \index{no-op-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-no-op-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-no-op-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; To prove push-global we need to know that the object pushed is
; a p-objectp.  The object pushed is fetched from the data segment.
; So we have to prove the general fact that anything fetched from
; the data segment is a p-objectp.  This, of course, will be used
; in many of the subsequent proofs.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-p-objectps-implies-p-objectp \\ \index{all-p-objectps-implies-p-objectp}
({\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps} $\wedge$ ({\it{x\/}} $\in$ {\it{lst\/}})) $\rightarrow$ {\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-implies-all-p-objectps \\ \index{proper-p-data-segmentp-implies-!all-p-objectps}
\=\+({\rm{proper-p-data-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})), {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-get-p-data-segment \\ \index{p-objectp-get-p-data-segment}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{get}}\,({\it{n\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{get}, {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{verbatim}; To access global vars we use a naked car of the global data
; area, knowing that it is a listp -- i.e., there is not
; legal address check.  In addition, we don't get via the
; function get and so the lemma above is not quite what
; we need.  We take care of these details here.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  definedp-p-data-segment-implies-listp-generalized \\ \index{definedp-p-data-segment-implies!-listp-generalized}
\=\+({\rm{proper-p-data-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-p-data-segment-implies-listp \\ \index{definedp-p-data-segment-implies!-listp}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-cadr-assoc-p-data-segment \\ \index{p-objectp-cadr-assoc-p-data-seg!ment}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{car}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}))), {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{verbatim}; So that sets us up for:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  push-global-preserves-proper-p-statep \\ \index{push-global-preserves-proper-p-!statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-push-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; To do pop-global we need first to relieve the hypotheses on our
; ur-proper-p-statep-p-state lemma, namely the same-signature
; hypothesis on the data segment.  The new data segment in
; question is obtained by put-assoc and put.  So we prove:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-put-assoc-generalized \\ \index{same-signature-put-assoc-genera!lized}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{segment\/}})\index{put-assoc}, {\it{segment\/}})\index{same-signature}\-
\end{tabbing}

\begin{verbatim}; The proper-p-data-segmentp hyp above is necessary only to assure us that
; the alist does not have any nlistp members, so a less sophisticated
; (and state free) predicate could have been used.  But since I had this
; one I used it.  Unfortunately, it introduces a free variable, p, so
; I eliminate it and make it a rewrite rule by choosing the only
; instantiation I ever need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-put-assoc\{special\} \\ \index{same-signature-put-assoc\{special\}}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{val\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{put-assoc}, \\ 
{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{verbatim}; Since pop-global pops the temp stack, we have to prove that the new
; one is proper:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-temp-stk-cdr \\ \index{proper-p-temp-stk-cdr}
\=\+({\rm{listp}}\,({\it{stk\/}}) $\wedge$ {\rm{proper-p-temp-stkp}}\,({\it{stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{cdr}}\,({\it{stk\/}}), {\it{p\/}})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{verbatim}; We wouldn't need the theorem above if proper-p-statep were opened in the
; hypothesis because the (proper-p-temp-stkp (p-temp-stk p) p) would open
; given our interest in (cdr (p-temp-stk p)).

; Finally, since pop-global does a put into the data segment, we need to
; to prove that proper-p-data-segmentp is preserved by the put-assoc and
; put.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-p-objectps-put \\ \index{all-p-objectps-put}
\=\+({\rm{p-objectp}}\,({\it{val\/}}, {\it{p\/}})\index{p-objectp} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\wedge$ {\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put}, {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}


\noindent{\sc Event}:   Enable definedp-put-assoc.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-put-assoc \\ \index{proper-p-data-segmentp-put-asso!c}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{lst\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{put-assoc}}\,({\it{lst\/}}, {\it{name\/}}, {\it{segment\/}})\index{put-assoc}, {\it{p\/}})\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{verbatim}; The lemma above does the job, but note that we need to know that
; the thing we put into the data area is a p-objectp.  What is that
; thing?  It's the top of the temp stack.  So we need to prove:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-top-p-temp-stk \\ \index{p-objectp-top-p-temp-stk}
\=\+({\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\wedge$ {\rm{listp}}\,({\it{temp-stk\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{car}}\,({\it{temp-stk\/}}), {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{verbatim}; We also get the similar results for top1 and top2:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-top1-p-temp-stk \\ \index{p-objectp-top1-p-temp-stk}
\=\+({\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\wedge$ {\rm{listp}}\,({\rm{cdr}}\,({\it{temp-stk\/}}))) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cadr}}\,({\it{temp-stk\/}}), {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-top2-p-temp-stk \\ \index{p-objectp-top2-p-temp-stk}
\=\+({\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\wedge$ {\rm{listp}}\,({\rm{cddr}}\,({\it{temp-stk\/}}))) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{caddr}}\,({\it{temp-stk\/}}), {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{verbatim}; For CALL I will need a more general lemma about the first-n
; of the temp-stk, but I'll wait till I see the need.

; The provision of the three lemmas above interacts in a detrimental
; way with something else in our proofs.  Consider p-deposit-okp,
; for example.  It requires that the top of the temp-stk by a
; p-objectp of type 'addr.  When we assume that -okp we have been
; getting the p-objectp in our assumptions and the p-objectp has then
; been opening up to reveal important things like that the car of the
; object is definedp in the data-segment or, in the case of the arithmetic
; instructions, the object is a numberp.  But with the provision of the
; three p-objectp lemmas above, whenever we hypothesis that something on
; the stack is a p-objectp of a given type the hypothesis is rewritten
; simply to the fact that it is of the right type -- because the p-objectp
; is obvious by the thing merely being on the stack.  This in fact
; suggests an improvement we could make in the defns of all the -okp
; fns:  don't check p-objectp of things on the stack, just check their
; types.  I'll save that for another day.

; Meanwhile, we have a problem:  lots of rules have definedp and numberp
; hyps that will no longer be relieved because the three lemmas above
; have simplified away the p-objectps that used to open up.  What to do?

; I am taking a really simple way out, exploiting the fact that all the
; -okp fns that check for the type of an object do so with
; p-objectp-type.  I will disable it after proving the rule below, which
; not only expands p-objectp-type but also the resulting p-objectp.
; This trick just slips the p-objectp past the three lemmas above.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-type-opener \\ \index{p-objectp-type-opener}
\=\+(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{nat}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{int}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{small-integerp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-integerp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{bitv}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{bit-vectorp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{bool}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{booleanp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})\index{booleanp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{addr}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{adpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{pc}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{pcpp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{pcpp})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-objectp-type}}\,({\tt{'}}{\tt{subr}}, {\it{x\/}}, {\it{p\/}})\index{p-objectp-type} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{subr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-objectp-type.

\addvspace{18pt}

\begin{verbatim}; Confession:  I feel a little dirty for this.  If I ever remove
; the p-objectp tests in the -okp predicates, this will return to
; bite me.  By the way, this problem first arose when I did
; the deposit preservation lemma below.  I put the solution up
; here to keep it in proximity with the lemmas that caused the
; trouble.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-global-preserves-proper-p-statep \\ \index{pop-global-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pop-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; We need similar machinery to do local variable manipulation.
; In particular, we need to know that any var value extracted
; from the top frame of the ctrl stack is a p-objectp and that
; depositing any p-objectp there leaves the stack proper.

; Here's extraction:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-cdr-assoc-proper-p-alistp \\ \index{p-objectp-cdr-assoc-proper-p-ali!stp}
\=\+({\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} $\wedge$ ({\it{var\/}} $\in$ {\rm{strip-cars}}\,({\it{alist\/}}))) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{var\/}}, {\it{alist\/}})), {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{verbatim}; So we get:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  push-local-preserves-proper-p-statep \\ \index{push-local-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-push-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; And now we deal with depositing.  The p machine puts a
; new frame on the stack, replacing the old one.  We need
; to prove that the new frame is proper.  There are many
; parts.  The new frame is built with P-FRAME and the 
; "shape" requirements follow immediately from its defn:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-frame-properties \\ \index{p-frame-properties}
{\rm{listp}}\,({\rm{cdr}}\,({\rm{p-frame}}\,({\it{alist\/}}, {\it{ret-pc\/}})\index{p-frame})) $\wedge$ ({\rm{cddr}}\,({\rm{p-frame}}\,({\it{alist\/}}, {\it{ret-pc\/}})\index{p-frame}) $=$ {\bf{nil}})
\end{tabbing}

\begin{verbatim}; The requirement that the new bindings be a proper-p-alistp
; is established by:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-alistp-put-assoc \\ \index{proper-p-alistp-put-assoc}
\=\+(\=\+{\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;$({\it{var\/}} $\in$ {\rm{strip-cars}}\,({\it{alist\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{val\/}}, {\it{p\/}})\index{p-objectp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{var\/}}, {\it{alist\/}})\index{put-assoc}, {\it{p\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{verbatim}; The requirement that the strip-cars of the bindings be
; the local-vars of the current subroutine follows from the
; observation that the strip-cars of the new bindings is the
; same as for the old:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  strip-cars-put-assoc \\ \index{strip-cars-put-assoc}
{\rm{strip-cars}}\,({\rm{put-assoc}}\,({\it{val\/}}, {\it{var\/}}, {\it{alist\/}})\index{put-assoc}) $=$ {\rm{strip-cars}}\,({\it{alist\/}})
\end{tabbing}

\begin{verbatim}; That completes the proof that the new frame is proper.  We
; also have to prove that the new ctrl stack isn't too big.
; This follows immediately from the fact that the new stack is
; the same size as the old, but that simple observation doesn't
; help us unless we disable some arithmetic stuff, because the
; sizes are computed and cause some linear arithmetic splits.
; Rather than disable I'll just handle the splits.  It suffices
; to know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-equal-p-ctrl-stk-size-1 \\ \index{not-equal-p-ctrl-stk-size-1}
{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\rightarrow$ (({\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} $-\;1$) $\not=$ {\tt{0}})
\end{tabbing}

\begin{verbatim}; That completes the entire pop-local exercise.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-local-preserves-proper-p-statep \\ \index{pop-local-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pop-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-preserves-proper-p-statep \\ \index{deposit-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-deposit-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-nat-preserves-proper-p-statep \\ \index{add1-nat-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-preserves-proper-p-statep \\ \index{add-addr-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; I still need some facts about lessp length and cdr!
; I hope this will take care of it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-lessp-length-cdr-backchainer \\ \index{not-lessp-length-cdr-backchaine!r}
({\it{max\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\rightarrow$ (({\it{max\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{length}) $=$ {\bf{f}})
\end{tabbing}

\begin{verbatim}; For add-nat-with-carry we need to prove that our computed
; result is a p-objectp.  It suffices to know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  small-naturalp-fix-small-natural \\ \index{small-naturalp-fix-small-natura!l}
{\rm{small-naturalp}}\,({\rm{fix-small-natural}}\,({\it{i\/}}, {\it{n\/}})\index{fix-small-natural}, {\it{n\/}})\index{small-naturalp}
\end{tabbing}

\begin{verbatim}; These kind of lemmas will be required each time we shift to
; consideration of a new data type.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  add-nat-with-carry-preserves-proper-p-statep \\ \index{add-nat-with-carry-preserves-pr!oper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add-nat-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-nat-with-carry-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-with-carry-out-preserves-proper-p-statep \\ \index{mult2-nat-with-carry-out-preserve!s-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-with-carry-out-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-mult2-nat-with-carry-out-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-get-temp-stk \\ \index{p-objectp-get-temp-stk}
\=\+({\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{temp-stk\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{get}}\,({\it{n\/}}, {\it{temp-stk\/}})\index{get}, {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-temp-stk-preserves-proper-p-statep \\ \index{fetch-temp-stk-preserves-proper!-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-fetch-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-put \\ \index{proper-p-temp-stkp-put}
\=\+(\=\+{\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{val\/}}, {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{temp-stk\/}})\index{put}, {\it{p\/}})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-temp-stk-preserves-proper-p-statep \\ \index{deposit-temp-stk-preserves-prope!r-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-deposit-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; For POP* we clearly need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-cdr-n \\ \index{proper-p-temp-stkp-cdr-n}
\=\+({\rm{proper-p-temp-stkp}}\,({\it{stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\wedge$ ({\rm{length}}\,({\it{stk\/}})\index{length} $\not<$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{cdr-n}}\,({\it{n\/}}, {\it{stk\/}})\index{cdr-n}, {\it{p\/}})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop*-preserves-proper-p-statep \\ \index{pop*-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop*-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pop*-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-preserves-proper-p-statep \\ \index{popn-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-popn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-step})\index{ur-proper-p-statep}\-
\end{tabbing}


\begin{verbatim}; For what it's worth, this concludes the so-called "test section"
; of instructions identified as interesting in the case of the
; one-way-correspondence proof.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  set-local-preserves-proper-p-statep \\ \index{set-local-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-set-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-global-preserves-proper-p-statep \\ \index{set-global-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-set-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; To get push-constant we have to know that the case analysis done
; to unabbreviate the constant is the same as that done in the
; syntax check, proper-p-push-constant-instructionp.  It suffices
; to know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  nlistp-implies-not-p-objectp \\ \index{nlistp-implies-not-p-objectp}
({\it{x\/}} $\simeq\;${{\bf{nil}}}${}$) $\rightarrow$ ({\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} $=$ {\bf{f}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  labels-are-nlistp-generalized \\ \index{labels-are-nlistp-generalized}
\=\+({\rm{proper-labeled-p-instructionsp}}\,({\it{body\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} $\wedge$ {\rm{listp}}\,({\it{lab\/}})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{find-labelp}}\,({\it{lab\/}}, {\it{body\/}})\index{find-labelp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-implies-proper-labled-p-instructionsp \\ \index{proper-p-prog-segmentp-implies-p!roper-labled-p-instructionsp}
\=\+({\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\index{program-body}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  labels-are-nlistp \\ \index{labels-are-nlistp}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} $\wedge$ {\rm{listp}}\,({\it{lab\/}})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{find-labelp}}\,({\it{lab\/}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{program-body})\index{find-labelp})\-
\end{tabbing}

\begin{verbatim}; The following is needed to prove that when a "label" is pushed
; the object is a p-objectp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-find-label \\ \index{lessp-find-label}
{\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp} $\rightarrow$ ({\rm{find-label}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-label} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-constant-preserves-proper-p-statep \\ \index{push-constant-preserves-proper-p!-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-constant-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-push-constant-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; To get push-ctrl-stk-free-size we need to know that the number
; pushed is a small-naturalp.  Despite its name the lemma below
; actually shows that any number less than p-max-ctrl-stk-size is
; ok.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-small-naturalp-p-max-ctrl-stk-size \\ \index{proper-p-statep-implies-small-n!aturalp-p-max-ctrl-stk-size}
\=\+({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $-$ {\it{n\/}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-ctrl-stk-free-size-preserves-proper-p-statep \\ \index{push-ctrl-stk-free-size-preserve!s-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-ctrl-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-ctrl-stk-free-size-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; We prove an analogous lemma for p-max-temp-stk-size:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-small-naturalp-p-max-temp-stk-size \\ \index{proper-p-statep-implies-small-n!aturalp-p-max-temp-stk-size}
\=\+({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{small-naturalp}}\,({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $-$ {\it{n\/}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-free-size-preserves-proper-p-statep \\ \index{push-temp-stk-free-size-preserve!s-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-push-temp-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-temp-stk-free-size-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; And we prove the analogous lemma for the index pushed by push-temp-stk-index.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-small-naturalp-length-p-temp-stk \\ \index{proper-p-statep-implies-small-n!aturalp-length-p-temp-stk}
\=\+(\=\+({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{small-naturalp}}\,(({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length} $-$ {\it{n\/}}) $-\;1$, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{small-naturalp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-index-preserves-proper-p-statep \\ \index{push-temp-stk-index-preserves-p!roper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-index-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-push-temp-stk-index-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-temp-stk-index-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-preserves-proper-p-statep \\ \index{pop-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pop-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-preserves-proper-p-statep \\ \index{jump-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pushj-preserves-proper-p-statep \\ \index{pushj-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pushj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pushj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popj-preserves-proper-p-statep \\ \index{popj-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-popj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-preserves-proper-p-statep \\ \index{sub-addr-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; Since bool is disabled we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-bool \\ \index{p-objectp-bool}
{\rm{p-objectp}}\,({\rm{bool}}\,({\it{x\/}})\index{bool}, {\it{p\/}})\index{p-objectp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  eq-preserves-proper-p-statep \\ \index{eq-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-eq-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-eq-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-addr-preserves-proper-p-statep \\ \index{lt-addr-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-lt-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-preserves-proper-p-statep \\ \index{fetch-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-fetch-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-preserves-proper-p-statep \\ \index{add-int-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-step})\index{ur-proper-p-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Enable small-integerp-fix-small-integer-plus-case.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  add-int-with-carry-preserves-proper-p-statep \\ \index{add-int-with-carry-preserves-pr!oper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add-int-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-int-with-carry-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-int-preserves-proper-p-statep \\ \index{add1-int-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-preserves-proper-p-statep \\ \index{sub-int-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-step})\index{ur-proper-p-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Enable small-integerp-fix-small-integer-difference-case.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  sub-int-with-carry-preserves-proper-p-statep \\ \index{sub-int-with-carry-preserves-pr!oper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub-int-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-int-with-carry-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-int-preserves-proper-p-statep \\ \index{sub1-int-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  neg-int-preserves-proper-p-statep \\ \index{neg-int-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-neg-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-neg-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-int-preserves-proper-p-statep \\ \index{lt-int-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-lt-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; For int-to-nat conversion we clearly need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  small-integerp-implies-small-naturalp \\ \index{small-integerp-implies-small-nat!uralp}
\=\+({\rm{small-integerp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-integerp} $\wedge$ ($\neg$ {\rm{negativep}}\,({\it{x\/}}))) \\ 
$\rightarrow$$\;\;\;\;${\rm{small-naturalp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-naturalp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  int-to-nat-preserves-proper-p-statep \\ \index{int-to-nat-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-int-to-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-int-to-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-preserves-proper-p-statep \\ \index{add-nat-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-add-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-naturalp-difference \\ \index{small-naturalp-difference}
{\rm{small-naturalp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-naturalp} $\rightarrow$ {\rm{small-naturalp}}\,({\it{x\/}} $-$ {\it{y\/}}, {\it{word-size\/}})\index{small-naturalp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-preserves-proper-p-statep \\ \index{sub-nat-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; sub-nat-with-carry flag returns one of two different
; differences depending on the args.  We have to show that
; both are small-naturalps.  The first is handled by
; small-natural-difference above.

; The second is:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  small-naturalp-difference-exp-x \\ \index{small-naturalp-difference-exp-x}
({\it{x\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ {\rm{small-naturalp}}\,({\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp} $-$ {\it{x\/}}, {\it{word-size\/}})\index{small-naturalp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-with-carry-preserves-proper-p-statep \\ \index{sub-nat-with-carry-preserves-pr!oper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub-nat-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-nat-with-carry-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-naturalp-sub1 \\ \index{small-naturalp-sub1}
{\rm{small-naturalp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-naturalp} $\rightarrow$ {\rm{small-naturalp}}\,({\it{x\/}} $-\;1$, {\it{word-size\/}})\index{small-naturalp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-nat-preserves-proper-p-statep \\ \index{sub1-nat-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-sub1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-nat-preserves-proper-p-statep \\ \index{lt-nat-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-lt-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-preserves-proper-p-statep \\ \index{mult2-nat-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-mult2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; For div2-nat we must establish that the results are small-naturalps.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-lessp-remainder \\ \index{not-lessp-remainder}
{\it{x\/}} $\not<$ ({\it{x\/}} ${}${\bf{mod}}${}$ {\it{y\/}})
\end{tabbing}
           

\noindent{\sc Event}:   Enable not-lessp-quotient.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  small-naturalp-remainder \\ \index{small-naturalp-remainder}
{\rm{small-naturalp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-naturalp} $\rightarrow$ {\rm{small-naturalp}}\,({\it{x\/}} ${}${\bf{mod}}${}$ {\tt{2}}, {\it{word-size\/}})\index{small-naturalp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  small-naturalp-quotient \\ \index{small-naturalp-quotient}
{\rm{small-naturalp}}\,({\it{x\/}}, {\it{word-size\/}})\index{small-naturalp} $\rightarrow$ {\rm{small-naturalp}}\,({\it{x\/}} $\div$ {\tt{2}}, {\it{word-size\/}})\index{small-naturalp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  div2-nat-preserves-proper-p-statep \\ \index{div2-nat-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-div2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-div2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; We must show that each bit vector operation yields a bit vector:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  bit-vectorp-or-bitv \\ \index{bit-vectorp-or-bitv}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{or-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{or-bitv}, {\it{word-size\/}})\index{bit-vectorp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-and-bitv \\ \index{bit-vectorp-and-bitv}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{and-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{and-bitv}, {\it{word-size\/}})\index{bit-vectorp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-xor-bitv \\ \index{bit-vectorp-xor-bitv}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ {\rm{bit-vectorp}}\,({\it{y\/}}, {\it{word-size\/}})\index{bit-vectorp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{xor-bitv}}\,({\it{x\/}}, {\it{y\/}})\index{xor-bitv}, {\it{word-size\/}})\index{bit-vectorp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-not-bitv \\ \index{bit-vectorp-not-bitv}
{\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\rightarrow$ {\rm{bit-vectorp}}\,({\rm{not-bitv}}\,({\it{x\/}})\index{not-bitv}, {\it{word-size\/}})\index{bit-vectorp}
\end{tabbing}

\begin{verbatim}; It surprised me to see that we need, yet again, the fact that our
; machine has a non-zero word-size.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  bit-vectorp-rsh-bitv \\ \index{bit-vectorp-rsh-bitv}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{rsh-bitv}}\,({\it{x\/}})\index{rsh-bitv}, {\it{word-size\/}})\index{bit-vectorp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable rsh-bitv.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  bit-vectorp-lsh-bitv \\ \index{bit-vectorp-lsh-bitv}
\=\+({\rm{bit-vectorp}}\,({\it{x\/}}, {\it{word-size\/}})\index{bit-vectorp} $\wedge$ ({\it{word-size\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;${\rm{bit-vectorp}}\,({\rm{lsh-bitv}}\,({\it{x\/}})\index{lsh-bitv}, {\it{word-size\/}})\index{bit-vectorp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lsh-bitv.

\addvspace{18pt}

\begin{verbatim}; To use the latter two rules we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-loadablep-implies-not-zerop-p-word-size \\ \index{p-loadablep-implies-not-zerop-p!-word-size}
\=\+{\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\rightarrow$$\;\;\;\;$(({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $\not=$ {\tt{0}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bitv-preserves-proper-p-statep \\ \index{or-bitv-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-or-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bitv-preserves-proper-p-statep \\ \index{and-bitv-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-and-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bitv-preserves-proper-p-statep \\ \index{not-bitv-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-not-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bitv-preserves-proper-p-statep \\ \index{xor-bitv-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-xor-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-xor-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rsh-bitv-preserves-proper-p-statep \\ \index{rsh-bitv-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-rsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-rsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-bitv-preserves-proper-p-statep \\ \index{lsh-bitv-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-lsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; And we must do the analogous thing for the boolean type and its
; operators.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  booleanp-or-bool \\ \index{booleanp-or-bool}
({\rm{booleanp}}\,({\it{x\/}})\index{booleanp} $\wedge$ {\rm{booleanp}}\,({\it{y\/}})\index{booleanp}) $\rightarrow$ {\rm{booleanp}}\,({\rm{or-bool}}\,({\it{x\/}}, {\it{y\/}})\index{or-bool})\index{booleanp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  booleanp-and-bool \\ \index{booleanp-and-bool}
({\rm{booleanp}}\,({\it{x\/}})\index{booleanp} $\wedge$ {\rm{booleanp}}\,({\it{y\/}})\index{booleanp}) $\rightarrow$ {\rm{booleanp}}\,({\rm{and-bool}}\,({\it{x\/}}, {\it{y\/}})\index{and-bool})\index{booleanp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  booleanp-not-bool \\ \index{booleanp-not-bool}
{\rm{booleanp}}\,({\it{x\/}})\index{booleanp} $\rightarrow$ {\rm{booleanp}}\,({\rm{not-bool}}\,({\it{x\/}})\index{not-bool})\index{booleanp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bool-preserves-proper-p-statep \\ \index{or-bool-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-or-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bool-preserves-proper-p-statep \\ \index{and-bool-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-and-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bool-preserves-proper-p-statep \\ \index{not-bool-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-not-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-full-preserves-proper-p-statep \\ \index{jump-if-temp-stk-full-preserves!-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-full-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-jump-if-temp-stk-full-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-jump-if-temp-stk-full-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-empty-preserves-proper-p-statep \\ \index{jump-if-temp-stk-empty-preserve!s-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-empty-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-jump-if-temp-stk-empty-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-nat-and-jump-preserves-proper-p-statep \\ \index{test-nat-and-jump-preserves-prope!r-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-nat-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-test-nat-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-nat-and-jump-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-int-and-jump-preserves-proper-p-statep \\ \index{test-int-and-jump-preserves-prope!r-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-int-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-test-int-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-int-and-jump-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bool-and-jump-preserves-proper-p-statep \\ \index{test-bool-and-jump-preserves-pr!oper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bool-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-test-bool-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-bool-and-jump-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bitv-and-jump-preserves-proper-p-statep \\ \index{test-bitv-and-jump-preserves-pr!oper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bitv-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-test-bitv-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-bitv-and-jump-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; Since pop-locn uses put-value-indirect to modify the control
; stack, we must know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-alistp-put-value-indirect \\ \index{proper-p-alistp-put-value-indire!ct}
\=\+({\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{alist\/}})\index{length}) $\wedge$ {\rm{p-objectp}}\,({\it{val\/}}, {\it{p\/}})\index{p-objectp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{put-value-indirect}}\,({\it{val\/}}, {\it{n\/}}, {\it{alist\/}})\index{put-value-indirect}, {\it{p\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-put-value-indirect \\ \index{strip-cars-put-value-indirect}
{\rm{strip-cars}}\,({\rm{put-value-indirect}}\,({\it{val\/}}, {\it{n\/}}, {\it{alist\/}})\index{put-value-indirect}) $=$ {\rm{strip-cars}}\,({\it{alist\/}})
\end{tabbing}

\begin{verbatim}; Note:  below we prevent p-ctrl-stk-size from expanding -- either
; via its defn or the -cons-p-frame lemma proved during the call
; owc work.  This allows the lemma we proved during pop-locn 
; owc to normalize the ctrl-stk-size of the new stack.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-locn-preserves-proper-p-statep \\ \index{pop-locn-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pop-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-cdr-get-proper-p-alistp \\ \index{p-objectp-cdr-get-proper-p-alistp}
\=\+({\rm{proper-p-alistp}}\,({\it{alist\/}}, {\it{p\/}})\index{proper-p-alistp} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{alist\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cdr}}\,({\rm{get}}\,({\it{n\/}}, {\it{alist\/}})\index{get}), {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locn-preserves-proper-p-statep \\ \index{locn-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; The legality of the pc computed by a jump-case depends on the
; all-find-labelp check:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-find-labelp-implies-find-labelp-get \\ \index{all-find-labelp-implies-find-la!belp-get}
\=\+({\rm{all-find-labelp}}\,({\it{lst\/}}, {\it{body\/}})\index{all-find-labelp} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;${\rm{find-labelp}}\,({\rm{get}}\,({\it{n\/}}, {\it{lst\/}})\index{get}, {\it{body\/}})\index{find-labelp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-preserves-proper-p-statep \\ \index{jump-case-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-case-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-jump-case-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; So now we begin call.

; First we establish that the body of the called subroutine is a listp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  listp-program-body-generalized\{special\} \\ \index{listp-program-body-generalized\{special\}}
\=\+({\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\index{program-body})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-program-body\{special\} \\ \index{listp-program-body\{special\}}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{program-body})\-
\end{tabbing}

\begin{verbatim}; Next we have to know that the bindings in the new frame is proper.
; We take it in steps.  First, we divide it into the section of formals
; and the section of locals:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-alistp-append \\ \index{proper-p-alistp-append}
\=\+{\rm{properp}}\,({\it{a\/}})\index{properp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-alistp}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}), {\it{p\/}})\index{proper-p-alistp} \\ 
$=$$\;\;\;\;$({\rm{proper-p-alistp}}\,({\it{a\/}}, {\it{p\/}})\index{proper-p-alistp} $\wedge$ {\rm{proper-p-alistp}}\,({\it{b\/}}, {\it{p\/}})\index{proper-p-alistp}))\-\-
\end{tabbing}

\begin{verbatim}; In the application in question, a above is a call of pairlist.  It is 
; properp:

; A lemma properp-pairlist exists in fm9001.events, but it did not
; originally.  We accommodate this change by introducing the "my-"
; prefix below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-properp-pairlist \\ \index{my-properp-pairlist}
{\rm{properp}}\,({\rm{pairlist}}\,({\it{a\/}}, {\it{b\/}}))\index{properp}
\end{tabbing}

\begin{verbatim}; So after the rule is applied, we have to prove two proper-p-alistps.
; The first is for the pairlist of the formals to the actuals.
; The second is for the initialization of the temp vars.

; The first is handled by:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-alistp-pairlist \\ \index{proper-p-alistp-pairlist}
\=\+(\=\+{\rm{all-litatoms}}\,({\it{formals\/}})\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{all-p-objectps}}\,({\it{actuals\/}}, {\it{p\/}})\index{all-p-objectps} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{formals\/}})\index{length} $=$ {\rm{length}}\,({\it{actuals\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{pairlist}}\,({\it{formals\/}}, {\it{actuals\/}}), {\it{p\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{verbatim}; where the hypotheses above are relieved as follows.  The all-litatoms
; of the formals is derived from proper-p-prog-segmentp:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-litatoms-formal-vars-generalized \\ \index{all-litatoms-formal-vars-genera!lized}
\=\+({\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\index{formal-vars})\index{all-litatoms}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-litatoms-formal-vars \\ \index{all-litatoms-formal-vars}
\=\+(\=\+{\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{formal-vars})\index{all-litatoms}\-
\end{tabbing}

\begin{verbatim}; The all-p-objectps of the actuals is a little more interesting.  The
; actuals in question are the reverse of the first-n elements of temp-stk.
; We eliminate the reverse with:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-p-objectps-append \\ \index{all-p-objectps-append}
\=\+{\rm{properp}}\,({\it{a\/}})\index{properp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-p-objectps}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}), {\it{p\/}})\index{all-p-objectps} \\ 
$=$$\;\;\;\;$({\rm{all-p-objectps}}\,({\it{a\/}}, {\it{p\/}})\index{all-p-objectps} $\wedge$ {\rm{all-p-objectps}}\,({\it{b\/}}, {\it{p\/}})\index{all-p-objectps}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-rev \\ \index{all-p-objectps-rev}
{\rm{properp}}\,({\it{lst\/}})\index{properp} $\rightarrow$ ({\rm{all-p-objectps}}\,({\rm{rev}}\,({\it{lst\/}})\index{rev}, {\it{p\/}})\index{all-p-objectps} $=$ {\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps})
\end{tabbing}

\begin{verbatim}; where we know:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  properp-first-n \\ \index{properp-first-n}
{\rm{properp}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{lst\/}})\index{first-n})\index{properp}
\end{tabbing}

\begin{verbatim}; Then we get that the first-n elements of the temp stack are p-objects
; by:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-p-objectps-first-n \\ \index{all-p-objectps-first-n}
\=\+({\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\wedge$ ({\rm{length}}\,({\it{temp-stk\/}})\index{length} $\not<$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{temp-stk\/}})\index{first-n}, {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}

\begin{verbatim}; The third hypothesis of the pairlist lemma above is that the lengths of
; the formals and actuals are the same.  That follows from what we've
; already proved.

; Now we move to the second proper-p-alistp task, namely, for the
; initialization of the temp vars.  That is handled by:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-implies-proper-p-temp-var-dclsp \\ \index{proper-p-prog-segmentp-implies-p!roper-p-temp-var-dclsp}
\=\+({\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\index{temp-var-dcls}, {\it{p\/}})\index{proper-p-temp-var-dclsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-pair-temps-with-initial-values \\ \index{proper-p-alistp-pair-temps-with!-initial-values}
\=\+{\rm{proper-p-temp-var-dclsp}}\,({\it{var-dcls\/}}, {\it{p\/}})\index{proper-p-temp-var-dclsp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{pair-temps-with-initial-values}}\,({\it{var-dcls\/}})\index{pair-temps-with-initial-values}, {\it{p\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{verbatim}; That takes care of the proper-p-alistp of the new bindings.

; Next we have to prove that the strip-cars of the new bindings
; is correct.  We start by distributing the strip-cars over the
; append

\end{verbatim}\begin{tabbing}{\sc Theorem}:  strip-cars-append \\ \index{strip-cars-append}
{\rm{strip-cars}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}})) $=$ {\rm{append}}\,({\rm{strip-cars}}\,({\it{a\/}}), {\rm{strip-cars}}\,({\it{b\/}}))
\end{tabbing}

\begin{verbatim}; Of course, a and b are as discussed above.  So for the a side we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  strip-cars-pairlist \\ \index{strip-cars-pairlist}
{\rm{properp}}\,({\it{formals\/}})\index{properp} $\rightarrow$ ({\rm{strip-cars}}\,({\rm{pairlist}}\,({\it{formals\/}}, {\it{actuals\/}})) $=$ {\it{formals\/}})
\end{tabbing}

\begin{verbatim}; where we know

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-litatoms-implies-properp \\ \index{all-litatoms-implies-properp}
{\rm{all-litatoms}}\,({\it{lst\/}})\index{all-litatoms} $\rightarrow$ {\rm{properp}}\,({\it{lst\/}})\index{properp}
\end{tabbing}

\begin{verbatim}; and we've already set up the machinery to show that the formals are
; all-litatoms.

; For the b side, its

\end{verbatim}\begin{tabbing}{\sc Theorem}:  strip-cars-pair-temps-with-initial-values \\ \index{strip-cars-pair-temps-with-initi!al-values}
{\rm{strip-cars}}\,({\rm{pair-temps-with-initial-values}}\,({\it{lst\/}})\index{pair-temps-with-initial-values}) $=$ {\rm{strip-cars}}\,({\it{lst\/}})
\end{tabbing}

\begin{verbatim}; That completes the work for the strip-cars.  

; The next part of the proper-p-statep check is that the temp-stk
; is proper.  We did the work for that with POP*.

; And that is all we need for call.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-preserves-proper-p-statep \\ \index{call-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; Note:  The hints above are identical to those for the call owc
; proof.  The entire list of preservation lemmas was generated
; mechanically, hints and all, from the owc list.

; The call work also takes care of pop-call.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  pop-call-preserves-proper-p-statep \\ \index{pop-call-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-pop-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; The ret case splits into two parts:  a top level ret or a ret inside
; a subroutine.  In both cases the problem is to prove proper-p-framep
; of the newly exposed frame.  If we leave proper-p-framep enabled,
; the proof of the top-level return is trivial because the newly exposed
; frame IS the frame described by proper-p-statep1, where proper-p-framep
; is opened up.  But the proof of the interior return becomes complicated
; because proper-p-framep expands after we pop the stack.  We therefore
; disable proper-p-framep in our proof and first prove:

; In the lemma below we need a little more than proper-p-statep1, 
; because the arithmetic part of proper-p-statep was not put into
; proper-p-statep1.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep1-implies-proper-p-framep \\ \index{proper-p-statep1-implies-proper!-p-framep}
\=\+(\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{program-body})\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-framep}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), {\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), {\it{p\/}})\index{proper-p-framep}\-
\end{tabbing}

\begin{verbatim}; In the case of an interior return, it suffices to open up
; proper-p-ctrl-stkp to see that the newly exposed frame is ok
; and that the rest of the stack is proper.  But proper-p-ctrl-stkp
; is hidden in proper-p-statep1.  So I prove two backchaining
; lemmas:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-ctrl-stkp-implies-proper-p-framep \\ \index{proper-p-ctrl-stkp-implies-prope!r-p-framep}
\=\+(\=\+{\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-framep}}\,(\=\+{\rm{cadr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-framep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-ctrl-stkp-implies-proper-p-ctrl-stkp \\ \index{proper-p-ctrl-stkp-implies-prope!r-p-ctrl-stkp}
\=\+(\=\+{\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cddr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}), \\ 
{\rm{car}}\,({\rm{untag}}\,({\rm{ret-pc}}\,({\rm{cadr}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{untag}), \\ 
{\it{p\/}})\-\index{proper-p-ctrl-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-preserves-proper-p-statep \\ \index{ret-preserves-proper-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ret-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-ret-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-step})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; I had forgotten to handle the lemmas of the form:

; (p-xxx-okp p) -> (r-xxx-okp (p->r p)).

; So I'll do them now.  Once I tried doing them up
; there, where I had their -step correspondents, but
; I found there were several useful rules developed during
; the proper-p-state preservation lemmas.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-no-op-okp-implies-r-no-op-okp \\ \index{p-no-op-okp-implies-r-no-op-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-no-op-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-no-op-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-no-op-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-push-global-okp-implies-r-push-global-okp \\ \index{p-push-global-okp-implies-r-pus!h-global-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-global-okp}\-
\end{tabbing}


\noindent{\sc Event}:   Enable empty-stkp.

\addvspace{18pt}

\begin{verbatim}; We need to know that every p-objectp is an r-usr-data-objectp

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-is-r-usr-data-typep \\ \index{p-objectp-is-r-usr-data-typep}
{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} $\rightarrow$ {\rm{r-usr-data-typep}}\,({\rm{type}}\,({\it{x\/}})\index{type})\index{r-usr-data-typep}
\end{tabbing}
  
\begin{verbatim}; The lemma above isn't very useful as a rule because of the free
; var.  We take care of that for the instance we need right now:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-usr-data-typep-top \\ \index{r-usr-data-typep-top}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-usr-data-typep}}\,({\rm{type}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{type})\index{r-usr-data-typep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-usr-data-typep-top1 \\ \index{r-usr-data-typep-top1}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{listp}}\,({\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-usr-data-typep}}\,({\rm{type}}\,({\rm{cadr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{type})\index{r-usr-data-typep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-usr-data-typep-top2 \\ \index{r-usr-data-typep-top2}
\=\+({\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} $\wedge$ {\rm{listp}}\,({\rm{cddr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-usr-data-typep}}\,({\rm{type}}\,({\rm{caddr}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}))\index{type})\index{r-usr-data-typep}\-
\end{tabbing}

\begin{verbatim}; That was the easy part, about the type tag.  Now we do the
; nitty-gritty part.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-implies-r-objectp \\ \index{p-objectp-implies-r-objectp}
\=\+({\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} $\wedge$ {\rm{same-signature}}\,({\it{r-usr-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-objectp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{r-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pop-global-okp-implies-r-pop-global-okp \\ \index{p-pop-global-okp-implies-r-pop-!global-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pop-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-global-okp}\-
\end{tabbing}

\begin{verbatim}; To get the transition for push-local we need to know a little more
; about the size of the control stack -- recall that r-push-local-okp
; checks that several incremented stack pointers are non-empty-stkp.
; The idea is to show that the position from which we are fetching
; -- which is computed by looking up the posiition of the the var -- is not
; at the (NAT 0) marking the end of the stack.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  lessp-length-bindings \\ \index{lessp-length-bindings}
\=\+{\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\index{length} $<$ {\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-length-bindings-p-ctrl-stk \\ \index{lessp-length-bindings-p-ctrl-st!k}
\=\+{\rm{proper-p-statep1}}\,({\it{p\/}})\index{proper-p-statep1} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}))\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag}), \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length})\- \\ 
$<$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-push-local-okp-implies-r-push-local-okp \\ \index{p-push-local-okp-implies-r-push!-local-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-local-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pop-local-okp-implies-r-pop-local-okp \\ \index{p-pop-local-okp-implies-r-pop-l!ocal-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pop-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-local-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-deposit-okp-implies-r-deposit-okp \\ \index{p-deposit-okp-implies-r-deposit!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-deposit-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-deposit-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add1-nat-okp-implies-r-add1-nat-okp \\ \index{p-add1-nat-okp-implies-r-add1-n!at-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add1-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add-addr-okp-implies-r-add-addr-okp \\ \index{p-add-addr-okp-implies-r-add-ad!dr-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-addr-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add-nat-with-carry-okp-implies-r-add-nat-with-carry-okp \\ \index{p-add-nat-with-carry-okp-implie!s-r-add-nat-with-carry-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-nat-with-carry-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-mult2-nat-with-carry-out-okp-implies-r-mult2-nat-with-carry-out-okp \\ \index{p-mult2-nat-with-carry-out-okp-i!mplies-r-mult2-nat-with-carry-out-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-with-carry-out-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-mult2-nat-with-carry-out-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-fetch-temp-stk-okp-implies-r-fetch-temp-stk-okp \\ \index{p-fetch-temp-stk-okp-implies-r-!fetch-temp-stk-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-fetch-temp-stk-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-deposit-temp-stk-okp-implies-r-deposit-temp-stk-okp \\ \index{p-deposit-temp-stk-okp-implies-!r-deposit-temp-stk-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-deposit-temp-stk-okp}\-
\end{tabbing}

\begin{verbatim}; To prove the next one we need to know that small-naturalp, as
; checked in proper-p-pop*-instructionp, implies numberp, as
; checked in r-pop*-okp.  We just enable small-naturalp

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-pop*-okp-implies-r-pop*-okp \\ \index{p-pop*-okp-implies-r-pop*-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop*-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pop*-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop*-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-popn-okp-implies-r-popn-okp \\ \index{p-popn-okp-implies-r-popn-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-popn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-popn-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-set-local-okp-implies-r-set-local-okp \\ \index{p-set-local-okp-implies-r-set-l!ocal-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-set-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-set-local-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-set-global-okp-implies-r-set-global-okp \\ \index{p-set-global-okp-implies-r-set-!global-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-set-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-set-global-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-push-constant-okp-implies-r-push-constant-okp \\ \index{p-push-constant-okp-implies-r-p!ush-constant-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-constant-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-constant-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-push-ctrl-stk-free-size-okp-implies-r-push-ctrl-stk-free-size-okp \\ \index{p-push-ctrl-stk-free-size-okp-i!mplies-r-push-ctrl-stk-free-size-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-ctrl-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-ctrl-stk-free-size-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-push-temp-stk-free-size-okp-implies-r-push-temp-stk-free-size-okp \\ \index{p-push-temp-stk-free-size-okp-i!mplies-r-push-temp-stk-free-size-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-temp-stk-free-size-okp}\-
\end{tabbing}

\begin{verbatim}; Again, we enable small-naturalp to get the numberp check at the r-level.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-push-temp-stk-index-okp-implies-r-push-temp-stk-index-okp \\ \index{p-push-temp-stk-index-okp-implie!s-r-push-temp-stk-index-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-index-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-push-temp-stk-index-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pop-okp-implies-r-pop-okp \\ \index{p-pop-okp-implies-r-pop-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pop-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-jump-okp-implies-r-jump-okp \\ \index{p-jump-okp-implies-r-jump-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pushj-okp-implies-r-pushj-okp \\ \index{p-pushj-okp-implies-r-pushj-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pushj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pushj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pushj-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-popj-okp-implies-r-popj-okp \\ \index{p-popj-okp-implies-r-popj-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-popj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-popj-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub-addr-okp-implies-r-sub-addr-okp \\ \index{p-sub-addr-okp-implies-r-sub-ad!dr-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-addr-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-eq-okp-implies-r-eq-okp \\ \index{p-eq-okp-implies-r-eq-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-eq-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-eq-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-eq-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-lt-addr-okp-implies-r-lt-addr-okp \\ \index{p-lt-addr-okp-implies-r-lt-addr!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-lt-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lt-addr-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-fetch-okp-implies-r-fetch-okp \\ \index{p-fetch-okp-implies-r-fetch-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-fetch-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-fetch-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add-int-okp-implies-r-add-int-okp \\ \index{p-add-int-okp-implies-r-add-int!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-int-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add-int-with-carry-okp-implies-r-add-int-with-carry-okp \\ \index{p-add-int-with-carry-okp-implie!s-r-add-int-with-carry-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-int-with-carry-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add1-int-okp-implies-r-add1-int-okp \\ \index{p-add1-int-okp-implies-r-add1-i!nt-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add1-int-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub-int-okp-implies-r-sub-int-okp \\ \index{p-sub-int-okp-implies-r-sub-int!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-int-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub-int-with-carry-okp-implies-r-sub-int-with-carry-okp \\ \index{p-sub-int-with-carry-okp-implie!s-r-sub-int-with-carry-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-int-with-carry-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub1-int-okp-implies-r-sub1-int-okp \\ \index{p-sub1-int-okp-implies-r-sub1-i!nt-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub1-int-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-neg-int-okp-implies-r-neg-int-okp \\ \index{p-neg-int-okp-implies-r-neg-int!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-neg-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-neg-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-neg-int-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-lt-int-okp-implies-r-lt-int-okp \\ \index{p-lt-int-okp-implies-r-lt-int-o!kp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-lt-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lt-int-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-int-to-nat-okp-implies-r-int-to-nat-okp \\ \index{p-int-to-nat-okp-implies-r-int-t!o-nat-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-int-to-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-int-to-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-int-to-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-add-nat-okp-implies-r-add-nat-okp \\ \index{p-add-nat-okp-implies-r-add-nat!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-add-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub-nat-okp-implies-r-sub-nat-okp \\ \index{p-sub-nat-okp-implies-r-sub-nat!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub-nat-with-carry-okp-implies-r-sub-nat-with-carry-okp \\ \index{p-sub-nat-with-carry-okp-implie!s-r-sub-nat-with-carry-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub-nat-with-carry-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-sub1-nat-okp-implies-r-sub1-nat-okp \\ \index{p-sub1-nat-okp-implies-r-sub1-n!at-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-sub1-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-lt-nat-okp-implies-r-lt-nat-okp \\ \index{p-lt-nat-okp-implies-r-lt-nat-o!kp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-lt-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lt-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-mult2-nat-okp-implies-r-mult2-nat-okp \\ \index{p-mult2-nat-okp-implies-r-mult2!-nat-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-mult2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-mult2-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-div2-nat-okp-implies-r-div2-nat-okp \\ \index{p-div2-nat-okp-implies-r-div2-n!at-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-div2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-div2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-div2-nat-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-or-bitv-okp-implies-r-or-bitv-okp \\ \index{p-or-bitv-okp-implies-r-or-bitv!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-or-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-or-bitv-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-and-bitv-okp-implies-r-and-bitv-okp \\ \index{p-and-bitv-okp-implies-r-and-bitv!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-and-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-and-bitv-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-not-bitv-okp-implies-r-not-bitv-okp \\ \index{p-not-bitv-okp-implies-r-not-bitv!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-not-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-not-bitv-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-xor-bitv-okp-implies-r-xor-bitv-okp \\ \index{p-xor-bitv-okp-implies-r-xor-bitv!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-xor-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-xor-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-xor-bitv-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-rsh-bitv-okp-implies-r-rsh-bitv-okp \\ \index{p-rsh-bitv-okp-implies-r-rsh-bitv!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-rsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-rsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-rsh-bitv-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-lsh-bitv-okp-implies-r-lsh-bitv-okp \\ \index{p-lsh-bitv-okp-implies-r-lsh-bitv!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-lsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-lsh-bitv-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-or-bool-okp-implies-r-or-bool-okp \\ \index{p-or-bool-okp-implies-r-or-bool!-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-or-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-or-bool-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-and-bool-okp-implies-r-and-bool-okp \\ \index{p-and-bool-okp-implies-r-and-bo!ol-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-and-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-and-bool-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-not-bool-okp-implies-r-not-bool-okp \\ \index{p-not-bool-okp-implies-r-not-bo!ol-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-not-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-not-bool-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-jump-if-temp-stk-full-okp-implies-r-jump-if-temp-stk-full-okp \\ \index{p-jump-if-temp-stk-full-okp-imp!lies-r-jump-if-temp-stk-full-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-full-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-if-temp-stk-full-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-jump-if-temp-stk-empty-okp-implies-r-jump-if-temp-stk-empty-okp \\ \index{p-jump-if-temp-stk-empty-okp-imp!lies-r-jump-if-temp-stk-empty-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-empty-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-if-temp-stk-empty-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-nat-and-jump-okp-implies-r-test-nat-and-jump-okp \\ \index{p-test-nat-and-jump-okp-implies!-r-test-nat-and-jump-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-nat-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-nat-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-int-and-jump-okp-implies-r-test-int-and-jump-okp \\ \index{p-test-int-and-jump-okp-implies!-r-test-int-and-jump-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-int-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-int-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-bool-and-jump-okp-implies-r-test-bool-and-jump-okp \\ \index{p-test-bool-and-jump-okp-implie!s-r-test-bool-and-jump-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bool-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-bool-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-bitv-and-jump-okp-implies-r-test-bitv-and-jump-okp \\ \index{p-test-bitv-and-jump-okp-implie!s-r-test-bitv-and-jump-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bitv-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-test-bitv-and-jump-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pop-locn-okp-implies-r-pop-locn-okp \\ \index{p-pop-locn-okp-implies-r-pop-lo!cn-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pop-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-locn-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-locn-okp-implies-r-locn-okp \\ \index{p-locn-okp-implies-r-locn-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-locn-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-jump-case-okp-implies-r-jump-case-okp \\ \index{p-jump-case-okp-implies-r-jump-!case-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-case-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-jump-case-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-jump-case-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-var-dclsp-implies-all-p-objectps \\ \index{proper-p-temp-var-dclsp-implies!-all-p-objectps}
\=\+{\rm{proper-p-temp-var-dclsp}}\,({\it{temp-var-dcls\/}}, {\it{p\/}})\index{proper-p-temp-var-dclsp} \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{strip-cadrs}}\,({\it{temp-var-dcls\/}})\index{strip-cadrs}, {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}
 
\begin{tabbing}{\sc Theorem}:  all-p-objectps-implies-all-r-objectps \\ \index{all-p-objectps-implies-all-r-ob!jectps}
\=\+(\=\+{\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{r-usr-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-r-objectps}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{all-r-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-call-okp-implies-r-call-okp \\ \index{p-call-okp-implies-r-call-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-call-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pop-call-okp-implies-r-pop-call-okp \\ \index{p-pop-call-okp-implies-r-pop-ca!ll-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-pop-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-pop-call-okp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ret-okp-implies-r-ret-okp \\ \index{p-ret-okp-implies-r-ret-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ret-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-ret-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-ret-okp}\-
\end{tabbing}

\begin{verbatim}; We now turn to the preservation of r-equal.  Our basic strategy is to
; disable r-equal after proving rewrite rules that let us convert
; terms involving r2 to terms involving r1 under the hyp that r2 is
; r-equal to r1.  Then we will force open the r-equal in the conclusion
; of our theorems by an r-equal-r-state lemma below.  We begin with
; the very basic r-equal properties:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-properties \\ \index{r-equal-properties}
\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-statep}}\,({\it{r2\/}})\index{r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-statep}}\,({\it{r1\/}})\index{r-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{r-pc}}\,({\it{r2\/}})\index{r-pc} $=$ {\rm{r-pc}}\,({\it{r1\/}})\index{r-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-cfp}}\,({\it{r2\/}})\index{r-cfp} $=$ {\rm{r-cfp}}\,({\it{r1\/}})\index{r-cfp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-csp}}\,({\it{r2\/}})\index{r-csp} $=$ {\rm{r-csp}}\,({\it{r1\/}})\index{r-csp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-tsp}}\,({\it{r2\/}})\index{r-tsp} $=$ {\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-prog-segment}}\,({\it{r2\/}})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r1\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-usr-data-segment}}\,({\it{r2\/}})\index{r-usr-data-segment} $=$ {\rm{r-usr-data-segment}}\,({\it{r1\/}})\index{r-usr-data-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{r-csp}}\,({\it{r1\/}})\index{r-csp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r2\/}})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r1\/}})\index{r-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-psw}}\,({\it{r2\/}})\index{r-psw} $=$ {\rm{r-psw}}\,({\it{r1\/}})\index{r-psw}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-r-state \\ \index{r-equal-r-state}
\=\+{\rm{r-equal}}\,(\=\+{\rm{r-state}}\,(\=\+{\it{r-pc2\/}}, \\ 
{\it{r-cfp2\/}}, \\ 
{\it{r-csp2\/}}, \\ 
{\it{r-tsp2\/}}, \\ 
{\it{r-x2\/}}, \\ 
{\it{r-y2\/}}, \\ 
{\it{r-c-flg2\/}}, \\ 
{\it{r-v-flg2\/}}, \\ 
{\it{r-n-flg2\/}}, \\ 
{\it{r-z-flg2\/}}, \\ 
{\it{r-prog-segment\/}}, \\ 
{\it{r-usr-data-segment2\/}}, \\ 
{\it{r-sys-data-segment2\/}}, \\ 
{\it{r-word-size\/}}, \\ 
{\it{r-psw\/}})\-\index{r-state}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc1\/}}, \\ 
{\it{r-cfp1\/}}, \\ 
{\it{r-csp1\/}}, \\ 
{\it{r-tsp1\/}}, \\ 
{\it{r-x1\/}}, \\ 
{\it{r-y1\/}}, \\ 
{\it{r-c-flg1\/}}, \\ 
{\it{r-v-flg1\/}}, \\ 
{\it{r-n-flg1\/}}, \\ 
{\it{r-z-flg1\/}}, \\ 
{\it{r-prog-segment\/}}, \\ 
{\it{r-usr-data-segment1\/}}, \\ 
{\it{r-sys-data-segment1\/}}, \\ 
{\it{r-word-size\/}}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{r-equal} \\ 
$=$$\;\;\;\;$(\=\+({\it{r-pc2\/}} $=$ {\it{r-pc1\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{r-cfp2\/}} $=$ {\it{r-cfp1\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{r-csp2\/}} $=$ {\it{r-csp1\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{r-tsp2\/}} $=$ {\it{r-tsp1\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{r-usr-data-segment2\/}} $=$ {\it{r-usr-data-segment1\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\it{r-csp1\/}}, {\it{r-sys-data-segment2\/}}, {\it{r-sys-data-segment1\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\it{r-tsp1\/}}, {\it{r-sys-data-segment2\/}}, {\it{r-sys-data-segment1\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{r-sys-data-segment2\/}}, {\it{r-sys-data-segment1\/}})\index{same-signature})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-equal.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-current-instruction \\ \index{r-equal-implies-equal-r-current!-instruction}
\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\rightarrow$$\;\;\;\;$({\rm{r-current-instruction}}\,({\it{r2\/}})\index{r-current-instruction} $=$ {\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction})\-
\end{tabbing}

\begin{verbatim}; We adopt the same policy for handling proper-r-statep that we adopted
; at the r-i level:

\end{verbatim}
\noindent{\sc Event}:   Enable proper-r-statep-properties.

\addvspace{18pt}

\begin{verbatim}; Note: Unfortunately, the above remark is wrong, as I discovered much
; later below where I have to prove
; proper-r-statep-properties{augmented}.  The two statements of
; proper-r-statep-properties (in r-i.events and p-r.events) are NOT
; the same!

; Having proved that, we will

\end{verbatim}
\noindent{\sc Event}:   Disable proper-r-statep.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-add1-r-pcp \\ \index{r-equal-implies-equal-add1-r-pcp}
{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} $\rightarrow$ ({\rm{add1-r-pcp}}\,({\it{r2\/}})\index{add1-r-pcp} $=$ {\rm{add1-r-pcp}}\,({\it{r1\/}})\index{add1-r-pcp})
\end{tabbing}


\noindent{\sc Event}:   Disable add1-r-pcp.

\addvspace{18pt}

\begin{verbatim}; We need to enable empty-stkp.  The reason is that the r-equal in our
; hypothesis tells us that the tstk, say, in both r1 and r2 are stk-equal,
; but that implies the equality of the live parts only down to the empty-stk.
; It does not assure us that both stacks have the '(NAT 0) at the bottom.
; But all of our tests just insure that when we get at n in the stack,
; n is less than the length of the stack.  We now need to know that it is
; less than sub1 the length of the stack, so we're within the range checked
; by the stk-equal.  That assurance is given only by the empty-stkp.

\end{verbatim}
\noindent{\sc Event}:   Enable empty-stkp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-no-op-okp \\ \index{r-equal-implies-equal-r-no-op-o!kp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-no-op-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-no-op-okp} \\ 
$=$$\;\;\;\;${\rm{r-no-op-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-no-op-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-op-preserves-r-equal \\ \index{no-op-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-no-op-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-no-op-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-no-op-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-no-op-step}, \\ 
{\rm{r-no-op-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-no-op-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-push-global-okp \\ \index{r-equal-implies-equal-r-push-gl!obal-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-push-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-global-okp} \\ 
$=$$\;\;\;\;${\rm{r-push-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-global-okp})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma is the key to obtaining the stk-equal on the cstk
; in cases where the cstk is not being modified.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-cstk-put-assoc-tstk2 \\ \index{stk-equal-cstk-put-assoc-tstk2}
\=\+({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\it{csp\/}}, \\ 
{\rm{put-assoc}}\,({\it{val2\/}}, {\tt{'}}{\tt{tstk}}, {\it{segment2\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\it{val1\/}}, {\tt{'}}{\tt{tstk}}, {\it{segment1\/}})\index{put-assoc})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,({\it{csp\/}}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal})\-\-
\end{tabbing}

\begin{verbatim}; And now we turn to the key lemma for the stk-equal on the tstk.
; The lemma, stk-equal-put-assoc-push, below, is general enough to apply
; to the cstk as well, if it is being pushed.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  get-put\{special\} \\ \index{get-put\{special\}}
\=\+(({\it{k\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{k\/}}, {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{lst\/}})\index{put})\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{k\/}} $=$ {\it{n\/}}$\;\;${\bf then }{\it{val\/}} \\ 
{\bf else }{\rm{get}}\,({\it{k\/}}, {\it{lst\/}})\index{get}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{verbatim}; The following lemma is the inductive part of the main theorem,
; named stk-equal-put-assoc-push, below.  The form of the main
; theorem is discussed there.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-put-assoc-above-top \\ \index{stk-equal-put-assoc-above-top}
\=\+(\=\+({\it{name\/}} $=$ {\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{area1\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{area2\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ ({\rm{length}}\,({\it{area1\/}})\index{length} $-\;1$)) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ ({\rm{length}}\,({\it{area2\/}})\index{length} $-\;1$)))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\it{sp\/}}, \\ 
{\rm{put-assoc}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{area2\/}})\index{put}, {\it{name\/}}, {\it{segment2\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{area1\/}})\index{put}, {\it{name\/}}, {\it{segment1\/}})\index{put-assoc})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\it{sp\/}}, \\ 
{\rm{put-assoc}}\,({\it{area2\/}}, {\it{name\/}}, {\it{segment2\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\it{area1\/}}, {\it{name\/}}, {\it{segment1\/}})\index{put-assoc})\-\index{stk-equal})\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  equal-sub1-difference \\ \index{equal-sub1-difference}
({\tt{0}} $=$ (({\it{max\/}} $-$ {\it{n\/}}) $-\;1$)) $=$ ({\it{n\/}} $\not<$ ({\it{max\/}} $-\;1$))
\end{tabbing}

\begin{verbatim}; This is the main theorem for dealing with stk-equality on two
; stacks that have been pushed.  The lemma says, roughly, that if
; you are interested in stack equality from sp on down, and you
; just deposited equal things at sp, then pop and omit the deposits.

; But the lemma is more general that that suggests.  Consider
; the use of area1 and area2.  My first version of the lemma
; used (cdr (assoc name segmenti)) for areai.
; That limited the utility of the lemma to cases in which
; only one thing is pushed.  This version permits areai to be another
; put.  Observe that on the rhs of the lemma I omite the puts but I
; keep the put-assocs because I have to put the areai's into the
; segments.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-put-assoc-push \\ \index{stk-equal-put-assoc-push}
\=\+(\=\+{\rm{listp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $=$ {\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $=$ {\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{area1\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{area2\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}}))\index{tag}, {\it{segment1\/}})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}}))\index{tag}, {\it{segment2\/}})\index{empty-stkp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\it{sp\/}}, \\ 
{\rm{put-assoc}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{area2\/}})\index{put}, {\it{name\/}}, {\it{segment2\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{area1\/}})\index{put}, {\it{name\/}}, {\it{segment1\/}})\index{put-assoc})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{pop-stk}}\,({\it{sp\/}})\index{pop-stk}, \\ 
{\rm{put-assoc}}\,({\it{area2\/}}, {\it{name\/}}, {\it{segment2\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\it{area1\/}}, {\it{name\/}}, {\it{segment1\/}})\index{put-assoc})\-\index{stk-equal})\-\-
\end{tabbing}

\begin{verbatim}; Eventually, when all the puts are exhausted we will be putting
; the original area into the segment and the following rule will
; collapse it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  put-assoc-cdr-assoc \\ \index{put-assoc-cdr-assoc}
\=\+{\rm{listp}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put-assoc}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})), {\it{name\/}}, {\it{segment\/}})\index{put-assoc} $=$ {\it{segment\/}})\-
\end{tabbing}

\begin{verbatim}; However, to get the hypothesis above we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-tstkp \\ \index{proper-r-statep-implies-tstkp}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-assoc-tstk \\ \index{listp-assoc-tstk}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}))\-
\end{tabbing}

\begin{verbatim}; Finally, in the main theorem above we sometimes have to prove a
; non-empty-stkp of a pushed stack, which follows from the non-emptiness
; of the unpushed stack:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-empty-stkp-push\{special\} \\ \index{not-empty-stkp-push\{special\}}
\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}}))\index{tag}, {\it{segment\/}})\index{empty-stkp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}} $-\;1$))\index{tag}, {\it{segment\/}})\index{empty-stkp})\-
\end{tabbing}

\begin{verbatim}; The next lemma establishes that if we have a stk-equal at n
; we have it at all greater n.  This means that if we pop several
; things off the stack and then push one, the lemma above will take
; care of the push and the lemma below will take care of the pops.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-extends-upwards-base-case \\ \index{stk-equal-extends-upwards-base-!case}
\=\+(\=\+({\it{n\/}} $\not<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{length} $-\;1$)) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{k\/}}))\index{tag}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{stk-equal-hint-5} \\  
\=\+{\rm{stk-equal-hint-5}}\,({\it{n\/}}, {\it{name\/}}, {\it{segment\/}})\index{stk-equal-hint-5} \\ 
$=$$\;\;\;\;$\=\+{\bf if }(({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length} $-$ {\it{n\/}}) $-\;1$) $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{stk-equal-hint-5}}\,({\it{n\/}} $+$ {\tt{1}}, {\it{name\/}}, {\it{segment\/}})\index{stk-equal-hint-5}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; The next lemma is really the key result.  However, as stated it is
; not useful as a rewrite rule because it has the free-var segment1
; picked up by the stk-equal but in our applications the stk-equal is
; enclosed inside the r-equal we keep disabled.  This pattern will be
; repeated many times in the lemma development here.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-extends-upwards \\ \index{stk-equal-extends-upwards}
\=\+(\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}}))\index{tag}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{k\/}}))\index{tag}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal}\-
\end{tabbing}


\noindent{\sc Event}:   Disable stk-equal-extends-upwards-base-case.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-tag-untag \\ \index{proper-r-statep-implies-tag-unt!ag}
\=\+(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}) $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\rm{cdr}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})))\index{tag} $=$ {\it{x\/}})\-
\end{tabbing}

\begin{verbatim}; When this proper-r-statep-properties was proved in r-i.events it had some
; adp-name and other fns "closed".  But when it was proved in p-r.events I
; had expanded those names.  I did not notice this when I concatenated the two
; event lists and removed "duplicates"  -- i.e., I mistook the second occurrence
; of the name proper-r-statep-properties as a duplicate of the first when in fact
; the formulas were different by virtue of these non-rec fn expansions.  So here
; I prove the expanded conjuncts.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-properties\{augmented\} \\ \index{proper-r-statep-properties\{augmented\}}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}), {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{r-pc}}\,({\it{r\/}})\index{r-pc})\index{untag}), \\ 
{\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-)\index{program-body})\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}) $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{r-cfp}}\,({\it{r\/}})\index{r-cfp})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}) $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}) $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{full-ctrl-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{full-temp-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{empty-temp-stk-addr}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{definedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-stk-equal-extends-upwards-tstk \\ \index{r-equal-implies-stk-equal-exten!ds-upwards-tstk}
\=\+(\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{k\/}}))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{stk-equal}\-
\end{tabbing}

\begin{verbatim}; So now we can do 

\end{verbatim}\begin{tabbing}{\sc Theorem}:  push-global-preserves-r-equal \\ \index{push-global-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-global-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-push-global-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-global-step}, \\ 
{\rm{r-push-global-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-global-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; We will keep empty-stkp disabled to cut down on the arithmetic
; used.  Of course, we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-length \\ \index{r-equal-implies-equal-length}
\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-empty-stkp \\ \index{r-equal-implies-equal-empty-stkp}
\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{empty-stkp}}\,({\it{sp\/}}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\index{empty-stkp} \\ 
$=$$\;\;\;\;${\rm{empty-stkp}}\,({\it{sp\/}}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\index{empty-stkp})\-\-
\end{tabbing}

\begin{verbatim}; The next two lemmas establish that when we get from the active
; region of either the cstk or the tstk of two r-equal states
; we get the same result.  The key fact is the lemma immediately
; below, which is then instantiated for each stack and lifted up
; to r-equal.  

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-implies-equal-get \\ \index{stk-equal-implies-equal-get}
\=\+(\=\+{\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment2\/}})))\index{length} $-\;1$)))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{k\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment2\/}})))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{k\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment1\/}})))\index{get})\-\-
\end{tabbing}

\begin{verbatim}; The instantiated versions of the lemma above requires that we know
; the stack pointer at which we are getting is non-empty.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-get-tstk \\ \index{r-equal-implies-equal-get-tstk}
\=\+(\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{k\/}}))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{k\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{k\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})))\index{get})\-\-
\end{tabbing}

\begin{verbatim}; We don't actually need the cstk version just yet, but I have proved
; it because when we get to local vars we will need it.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-get-cstk \\ \index{r-equal-implies-equal-get-cstk}
\=\+(\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{k\/}}))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r1\/}})\index{r-csp})\index{untag})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{k\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{k\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})))\index{get})\-\-
\end{tabbing}

\begin{verbatim}; We now disable empty-stkp.  We will undoubtedly have to prove some
; lemmas to establish the non-empty-stkp hypotheses above.

\end{verbatim}
\noindent{\sc Event}:   Disable empty-stkp.

\addvspace{18pt}  

\begin{verbatim}; In the case where we are getting from r-tsp we need:




; We need that the r-objects of one state are those of the other.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-objectp \\ \index{r-equal-implies-equal-r-objectp}
{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} $\rightarrow$ ({\rm{r-objectp}}\,({\it{x\/}}, {\it{r2\/}})\index{r-objectp} $=$ {\rm{r-objectp}}\,({\it{x\/}}, {\it{r1\/}})\index{r-objectp})
\end{tabbing}

\begin{verbatim}; We also get the rule for r-objectp-type and disable that function
; because here we do not need to know what it means, just that if
; it is true for r2 it is true for r1.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-objectp-type \\ \index{r-equal-implies-equal-r-objectp!-type}
\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\rightarrow$$\;\;\;\;$({\rm{r-objectp-type}}\,({\it{type\/}}, {\it{x\/}}, {\it{r2\/}})\index{r-objectp-type} $=$ {\rm{r-objectp-type}}\,({\it{type\/}}, {\it{x\/}}, {\it{r1\/}})\index{r-objectp-type})\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-objectp-type.

\addvspace{18pt}

\begin{verbatim}; And we'll get the rule for r-usr-data-objectp too.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-usr-data-objectp \\ \index{r-equal-implies-equal-r-usr-dat!a-objectp}
{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} $\rightarrow$ ({\rm{r-usr-data-objectp}}\,({\it{x\/}}, {\it{r2\/}})\index{r-usr-data-objectp} $=$ {\rm{r-usr-data-objectp}}\,({\it{x\/}}, {\it{r1\/}})\index{r-usr-data-objectp})
\end{tabbing}


\noindent{\sc Event}:   Disable r-usr-data-objectp.

\addvspace{18pt}

\begin{verbatim}; Now we can also handle:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pop-global-okp \\ \index{r-equal-implies-equal-r-pop-glo!bal-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pop-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-global-okp} \\ 
$=$$\;\;\;\;${\rm{r-pop-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-global-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-global-preserves-r-equal \\ \index{pop-global-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-global-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pop-global-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-global-step}, \\ 
{\rm{r-pop-global-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-global-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-push-local-okp \\ \index{r-equal-implies-equal-r-push-lo!cal-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-push-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-local-okp} \\ 
$=$$\;\;\;\;${\rm{r-push-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-local-okp})\-\-
\end{tabbing}

\begin{verbatim}; To prove a stk-equal after a push we have to be able to establish
; the non-empty-stkp hypothesis for the pushed stack.  That follows
; from:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-non-empty-stkp-push \\ \index{proper-r-statep-implies-non-empt!y-stkp-push}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ ({\rm{free-stk-size}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{free-stk-size} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}) $-\;1$))\-\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-local-preserves-r-equal \\ \index{push-local-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-local-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-push-local-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-local-step}, \\ 
{\rm{r-push-local-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-local-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pop-local-okp \\ \index{r-equal-implies-equal-r-pop-loc!al-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pop-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-local-okp} \\ 
$=$$\;\;\;\;${\rm{r-pop-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-local-okp})\-\-
\end{tabbing}

\begin{verbatim}; That we could get to here without further work is not too surprising
; considering the nature of the instructions we've learned to handle.
; That we stopped here is also not surprising: we haven't explained
; how to handle stk-equal on the cstk (except in the rare case of
; pushes onto the cstk).  What we need is the lemma that says if two
; cstks are stk-equal and you put the same thing at the same place in
; both then they are still stk-equal.  This is sort of like the
; stk-equal-put-assoc-push lemma above except (a) we don't require
; that the put be a push and because of that (b) we don't require that
; the stk-equal start its scan at the location of the push.  This
; operation, of sticking something into the middle of a stack, is of
; course only performed on the cstk; never on the tstk.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-put-assoc-insertion \\ \index{stk-equal-put-assoc-insertion}
\=\+(\=\+{\rm{listp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $=$ {\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not<$ {\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}}))\index{tag}, {\it{segment2\/}})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}}))\index{tag}, {\it{segment1\/}})\index{empty-stkp}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\it{sp\/}}, \\ 
{\rm{put-assoc}}\,(\=\+{\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{put}, \\ 
{\it{name\/}}, \\ 
{\it{segment2\/}})\-\index{put-assoc}, \\ 
{\rm{put-assoc}}\,(\=\+{\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{put}, \\ 
{\it{name\/}}, \\ 
{\it{segment1\/}})\-\index{put-assoc})\-\index{stk-equal}\-
\end{tabbing}
                                      
\begin{verbatim}; The hypotheses above about (listp (assoc name segmenti)) will
; be relieved in our applications by:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-cstkp \\ \index{proper-r-statep-implies-cstkp}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-assoc-cstk \\ \index{listp-assoc-cstk}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}))\-
\end{tabbing}

\begin{verbatim}; The following rule is the dual of its namesake: it establishes a
; stk-equal on the tstk when the cstk has been changed.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-tstk-put-assoc-cstk2 \\ \index{stk-equal-tstk-put-assoc-cstk2}
\=\+({\rm{car}}\,({\rm{untag}}\,({\it{tsp\/}})\index{untag}) $=$ {\tt{'}}{\tt{tstk}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\it{tsp\/}}, \\ 
{\rm{put-assoc}}\,({\it{val2\/}}, {\tt{'}}{\tt{cstk}}, {\it{segment2\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\it{val1\/}}, {\tt{'}}{\tt{cstk}}, {\it{segment1\/}})\index{put-assoc})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,({\it{tsp\/}}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal})\-\-
\end{tabbing}

\begin{verbatim}; The following lemma is needed to relieve the hypothesis that we are
; putting into a legal position.  This would not be necessary if we
; had empty-stkp enabled.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  empty-stkp-backchainer \\ \index{empty-stkp-backchainer}
\=\+($\neg$ {\rm{empty-stkp}}\,({\rm{tag}}\,({\it{xxx\/}}, {\rm{cons}}\,({\it{name\/}}, {\it{k\/}}))\index{tag}, {\it{segment\/}})\index{empty-stkp}) \\ 
$\rightarrow$$\;\;\;\;$(({\it{k\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length}) $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-local-preserves-r-equal \\ \index{pop-local-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-local-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pop-local-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-local-step}, \\ 
{\rm{r-pop-local-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-local-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-deposit-okp \\ \index{r-equal-implies-equal-r-deposit!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-deposit-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-deposit-okp} \\ 
$=$$\;\;\;\;${\rm{r-deposit-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-deposit-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-preserves-r-equal \\ \index{deposit-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-deposit-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-deposit-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-deposit-step}, \\ 
{\rm{r-deposit-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-deposit-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add1-nat-okp \\ \index{r-equal-implies-equal-r-add1-nat!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add1-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-add1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add1-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-nat-preserves-r-equal \\ \index{add1-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add1-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add1-nat-step}, \\ 
{\rm{r-add1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add1-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add-addr-okp \\ \index{r-equal-implies-equal-r-add-add!r-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-addr-okp} \\ 
$=$$\;\;\;\;${\rm{r-add-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-addr-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-preserves-r-equal \\ \index{add-addr-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-addr-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-addr-step}, \\ 
{\rm{r-add-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-addr-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; The following lemma is a good example of the value of tuning
; the disable/enable strategy.  In an environment just like
; the current one except with empty-stkp enabled and the
; necessary rule that (sub1 (sub1 (difference x y))) = 0
; iff y is not lessp x-2, the following theorem took 67 seconds
; to prove and 118 seconds for io.  It now takes 3.8 to prove
; and .1 for io.  The reason is that when empty-stkp opens
; and is converted to an inequality, the linear arithmetic
; package repeatedly splits on various zerop possibilities.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add-nat-with-carry-okp \\ \index{r-equal-implies-equal-r-add-nat!-with-carry-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-nat-with-carry-okp} \\ 
$=$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-nat-with-carry-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-with-carry-preserves-r-equal \\ \index{add-nat-with-carry-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-nat-with-carry-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-nat-with-carry-step}, \\ 
{\rm{r-add-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-nat-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-mult2-nat-with-carry-out-okp \\ \index{r-equal-implies-equal-r-mult2-n!at-with-carry-out-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{mult2-nat-with-carry-out}})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-mult2-nat-with-carry-out-okp} \\ 
$=$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-mult2-nat-with-carry-out-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-with-carry-out-preserves-r-equal \\ \index{mult2-nat-with-carry-out-preserve!s-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{mult2-nat-with-carry-out}})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-mult2-nat-with-carry-out-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-mult2-nat-with-carry-out-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-mult2-nat-with-carry-out-step}, \\ 
{\rm{r-mult2-nat-with-carry-out-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-mult2-nat-with-carry-out-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-fetch-temp-stk-okp \\ \index{r-equal-implies-equal-r-fetch-te!mp-stk-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-fetch-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-fetch-temp-stk-okp} \\ 
$=$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-fetch-temp-stk-okp})\-\-
\end{tabbing}

\begin{verbatim}; To relieve the hypothesis of R-EQUAL-IMPLIES-EQUAL-GET-TSTK we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-empty-stkp-temp-stk-index \\ \index{not-empty-stkp-temp-stk-index}
\=\+({\it{n\/}} $<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length} $-\;1$)) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\tt{'}}{\tt{tstk}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-))\index{length} $-\;1$) \\ 
$-$$\;\;\;\;${\it{n\/}})\- $-\;1$)\-)\-\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-temp-stk-preserves-r-equal \\ \index{fetch-temp-stk-preserves-r-equa!l}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-fetch-temp-stk-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-fetch-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-fetch-temp-stk-step}, \\ 
{\rm{r-fetch-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-fetch-temp-stk-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-deposit-temp-stk-okp \\ \index{r-equal-implies-equal-r-deposit!-temp-stk-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-deposit-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-deposit-temp-stk-okp} \\ 
$=$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-deposit-temp-stk-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-temp-stk-preserves-r-equal \\ \index{deposit-temp-stk-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-deposit-temp-stk-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-deposit-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-deposit-temp-stk-step}, \\ 
{\rm{r-deposit-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-deposit-temp-stk-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pop*-okp \\ \index{r-equal-implies-equal-r-pop*-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pop*-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop*-okp} \\ 
$=$$\;\;\;\;${\rm{r-pop*-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop*-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop*-preserves-r-equal \\ \index{pop*-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop*-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop*-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pop*-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop*-step}, \\ 
{\rm{r-pop*-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop*-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-popn-okp \\ \index{r-equal-implies-equal-r-popn-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-popn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-popn-okp} \\ 
$=$$\;\;\;\;${\rm{r-popn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-popn-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-preserves-r-equal \\ \index{popn-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-popn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-popn-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-popn-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-popn-step}, \\ 
{\rm{r-popn-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-popn-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-set-local-okp \\ \index{r-equal-implies-equal-r-set-loc!al-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-set-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-set-local-okp} \\ 
$=$$\;\;\;\;${\rm{r-set-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-set-local-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-local-preserves-r-equal \\ \index{set-local-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-set-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-set-local-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-set-local-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-set-local-step}, \\ 
{\rm{r-set-local-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-set-local-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-set-global-okp \\ \index{r-equal-implies-equal-r-set-glo!bal-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-set-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-set-global-okp} \\ 
$=$$\;\;\;\;${\rm{r-set-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-set-global-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-global-preserves-r-equal \\ \index{set-global-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-set-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-set-global-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-set-global-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-set-global-step}, \\ 
{\rm{r-set-global-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-set-global-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-push-constant-okp \\ \index{r-equal-implies-equal-r-push-co!nstant-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-push-constant-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-constant-okp} \\ 
$=$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-constant-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-constant-preserves-r-equal \\ \index{push-constant-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-constant-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-push-constant-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-constant-step}, \\ 
{\rm{r-push-constant-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-constant-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-push-ctrl-stk-free-size-okp \\ \index{r-equal-implies-equal-r-push-ct!rl-stk-free-size-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-ctrl-stk-free-size-okp} \\ 
$=$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-ctrl-stk-free-size-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-ctrl-stk-free-size-preserves-r-equal \\ \index{push-ctrl-stk-free-size-preserve!s-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-ctrl-stk-free-size-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-push-ctrl-stk-free-size-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-ctrl-stk-free-size-step}, \\ 
{\rm{r-push-ctrl-stk-free-size-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-ctrl-stk-free-size-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-push-temp-stk-free-size-okp \\ \index{r-equal-implies-equal-r-push-te!mp-stk-free-size-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-push-temp-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-temp-stk-free-size-okp} \\ 
$=$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-temp-stk-free-size-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-free-size-preserves-r-equal \\ \index{push-temp-stk-free-size-preserve!s-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-temp-stk-free-size-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-push-temp-stk-free-size-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-temp-stk-free-size-step}, \\ 
{\rm{r-push-temp-stk-free-size-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-temp-stk-free-size-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-push-temp-stk-index-okp \\ \index{r-equal-implies-equal-r-push-te!mp-stk-index-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-push-temp-stk-index-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-temp-stk-index-okp} \\ 
$=$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-temp-stk-index-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-index-preserves-r-equal \\ \index{push-temp-stk-index-preserves-r!-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-temp-stk-index-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-push-temp-stk-index-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-push-temp-stk-index-step}, \\ 
{\rm{r-push-temp-stk-index-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-push-temp-stk-index-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pop-okp \\ \index{r-equal-implies-equal-r-pop-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pop-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-okp} \\ 
$=$$\;\;\;\;${\rm{r-pop-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-preserves-r-equal \\ \index{pop-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pop-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-step}, \\ 
{\rm{r-pop-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-jump-okp \\ \index{r-equal-implies-equal-r-jump-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-preserves-r-equal \\ \index{jump-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-step}, \\ 
{\rm{r-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pushj-okp \\ \index{r-equal-implies-equal-r-pushj-o!kp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pushj-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pushj-okp} \\ 
$=$$\;\;\;\;${\rm{r-pushj-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pushj-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pushj-preserves-r-equal \\ \index{pushj-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pushj-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pushj-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pushj-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pushj-step}, \\ 
{\rm{r-pushj-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pushj-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-popj-okp \\ \index{r-equal-implies-equal-r-popj-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-popj-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-popj-okp} \\ 
$=$$\;\;\;\;${\rm{r-popj-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-popj-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popj-preserves-r-equal \\ \index{popj-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-popj-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-popj-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-popj-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-popj-step}, \\ 
{\rm{r-popj-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-popj-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub-addr-okp \\ \index{r-equal-implies-equal-r-sub-add!r-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-addr-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-addr-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-preserves-r-equal \\ \index{sub-addr-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-addr-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-addr-step}, \\ 
{\rm{r-sub-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-addr-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-eq-okp \\ \index{r-equal-implies-equal-r-eq-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-eq-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-eq-okp} \\ 
$=$$\;\;\;\;${\rm{r-eq-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-eq-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  eq-preserves-r-equal \\ \index{eq-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-eq-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-eq-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-eq-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-eq-step}, \\ 
{\rm{r-eq-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-eq-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-lt-addr-okp \\ \index{r-equal-implies-equal-r-lt-addr!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-lt-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-addr-okp} \\ 
$=$$\;\;\;\;${\rm{r-lt-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lt-addr-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-addr-preserves-r-equal \\ \index{lt-addr-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-addr-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-lt-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-addr-step}, \\ 
{\rm{r-lt-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lt-addr-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-fetch-okp \\ \index{r-equal-implies-equal-r-fetch-o!kp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-fetch-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-fetch-okp} \\ 
$=$$\;\;\;\;${\rm{r-fetch-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-fetch-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-preserves-r-equal \\ \index{fetch-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-fetch-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-fetch-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-fetch-step}, \\ 
{\rm{r-fetch-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-fetch-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add-int-okp \\ \index{r-equal-implies-equal-r-add-int!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-int-okp} \\ 
$=$$\;\;\;\;${\rm{r-add-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-int-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-preserves-r-equal \\ \index{add-int-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-int-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-int-step}, \\ 
{\rm{r-add-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add-int-with-carry-okp \\ \index{r-equal-implies-equal-r-add-int!-with-carry-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-int-with-carry-okp} \\ 
$=$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-int-with-carry-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-with-carry-preserves-r-equal \\ \index{add-int-with-carry-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-int-with-carry-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-int-with-carry-step}, \\ 
{\rm{r-add-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-int-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add1-int-okp \\ \index{r-equal-implies-equal-r-add1-int!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add1-int-okp} \\ 
$=$$\;\;\;\;${\rm{r-add1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add1-int-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-int-preserves-r-equal \\ \index{add1-int-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add1-int-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add1-int-step}, \\ 
{\rm{r-add1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add1-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub-int-okp \\ \index{r-equal-implies-equal-r-sub-int!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-int-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-int-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-preserves-r-equal \\ \index{sub-int-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-int-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-int-step}, \\ 
{\rm{r-sub-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub-int-with-carry-okp \\ \index{r-equal-implies-equal-r-sub-int!-with-carry-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-int-with-carry-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-int-with-carry-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-with-carry-preserves-r-equal \\ \index{sub-int-with-carry-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-int-with-carry-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-int-with-carry-step}, \\ 
{\rm{r-sub-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-int-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub1-int-okp \\ \index{r-equal-implies-equal-r-sub1-int!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub1-int-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub1-int-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-int-preserves-r-equal \\ \index{sub1-int-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub1-int-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub1-int-step}, \\ 
{\rm{r-sub1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub1-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-neg-int-okp \\ \index{r-equal-implies-equal-r-neg-int!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-neg-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-neg-int-okp} \\ 
$=$$\;\;\;\;${\rm{r-neg-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-neg-int-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  neg-int-preserves-r-equal \\ \index{neg-int-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-neg-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-neg-int-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-neg-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-neg-int-step}, \\ 
{\rm{r-neg-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-neg-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-lt-int-okp \\ \index{r-equal-implies-equal-r-lt-int-!okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-lt-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-int-okp} \\ 
$=$$\;\;\;\;${\rm{r-lt-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lt-int-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-int-preserves-r-equal \\ \index{lt-int-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-int-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-lt-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-int-step}, \\ 
{\rm{r-lt-int-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lt-int-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-int-to-nat-okp \\ \index{r-equal-implies-equal-r-int-to-!nat-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-int-to-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-int-to-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-int-to-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-int-to-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  int-to-nat-preserves-r-equal \\ \index{int-to-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-int-to-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-int-to-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-int-to-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-int-to-nat-step}, \\ 
{\rm{r-int-to-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-int-to-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-add-nat-okp \\ \index{r-equal-implies-equal-r-add-nat!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-add-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-add-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-preserves-r-equal \\ \index{add-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-add-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-add-nat-step}, \\ 
{\rm{r-add-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-add-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub-nat-okp \\ \index{r-equal-implies-equal-r-sub-nat!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-preserves-r-equal \\ \index{sub-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-nat-step}, \\ 
{\rm{r-sub-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub-nat-with-carry-okp \\ \index{r-equal-implies-equal-r-sub-nat!-with-carry-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-nat-with-carry-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-nat-with-carry-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-with-carry-preserves-r-equal \\ \index{sub-nat-with-carry-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-nat-with-carry-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub-nat-with-carry-step}, \\ 
{\rm{r-sub-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub-nat-with-carry-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-sub1-nat-okp \\ \index{r-equal-implies-equal-r-sub1-nat!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-sub1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub1-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-sub1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub1-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-nat-preserves-r-equal \\ \index{sub1-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub1-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-sub1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-sub1-nat-step}, \\ 
{\rm{r-sub1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-sub1-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-lt-nat-okp \\ \index{r-equal-implies-equal-r-lt-nat-!okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-lt-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-lt-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lt-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-nat-preserves-r-equal \\ \index{lt-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-lt-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lt-nat-step}, \\ 
{\rm{r-lt-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lt-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-mult2-nat-okp \\ \index{r-equal-implies-equal-r-mult2-n!at-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-mult2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-mult2-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-mult2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-mult2-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-preserves-r-equal \\ \index{mult2-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-mult2-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-mult2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-mult2-nat-step}, \\ 
{\rm{r-mult2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-mult2-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-div2-nat-okp \\ \index{r-equal-implies-equal-r-div2-nat!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-div2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-div2-nat-okp} \\ 
$=$$\;\;\;\;${\rm{r-div2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-div2-nat-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  div2-nat-preserves-r-equal \\ \index{div2-nat-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-div2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-div2-nat-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-div2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-div2-nat-step}, \\ 
{\rm{r-div2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-div2-nat-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-or-bitv-okp \\ \index{r-equal-implies-equal-r-or-bitv!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-or-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-or-bitv-okp} \\ 
$=$$\;\;\;\;${\rm{r-or-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-or-bitv-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bitv-preserves-r-equal \\ \index{or-bitv-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-or-bitv-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-or-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-or-bitv-step}, \\ 
{\rm{r-or-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-or-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-and-bitv-okp \\ \index{r-equal-implies-equal-r-and-bitv!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-and-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-and-bitv-okp} \\ 
$=$$\;\;\;\;${\rm{r-and-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-and-bitv-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bitv-preserves-r-equal \\ \index{and-bitv-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-and-bitv-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-and-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-and-bitv-step}, \\ 
{\rm{r-and-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-and-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-not-bitv-okp \\ \index{r-equal-implies-equal-r-not-bitv!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-not-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-not-bitv-okp} \\ 
$=$$\;\;\;\;${\rm{r-not-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-not-bitv-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bitv-preserves-r-equal \\ \index{not-bitv-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-not-bitv-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-not-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-not-bitv-step}, \\ 
{\rm{r-not-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-not-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-xor-bitv-okp \\ \index{r-equal-implies-equal-r-xor-bitv!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-xor-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-xor-bitv-okp} \\ 
$=$$\;\;\;\;${\rm{r-xor-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-xor-bitv-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bitv-preserves-r-equal \\ \index{xor-bitv-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-xor-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-xor-bitv-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-xor-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-xor-bitv-step}, \\ 
{\rm{r-xor-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-xor-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-rsh-bitv-okp \\ \index{r-equal-implies-equal-r-rsh-bitv!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-rsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-rsh-bitv-okp} \\ 
$=$$\;\;\;\;${\rm{r-rsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-rsh-bitv-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rsh-bitv-preserves-r-equal \\ \index{rsh-bitv-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-rsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-rsh-bitv-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-rsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-rsh-bitv-step}, \\ 
{\rm{r-rsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-rsh-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-lsh-bitv-okp \\ \index{r-equal-implies-equal-r-lsh-bitv!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-lsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lsh-bitv-okp} \\ 
$=$$\;\;\;\;${\rm{r-lsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lsh-bitv-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-bitv-preserves-r-equal \\ \index{lsh-bitv-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lsh-bitv-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-lsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-lsh-bitv-step}, \\ 
{\rm{r-lsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-lsh-bitv-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-or-bool-okp \\ \index{r-equal-implies-equal-r-or-bool!-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-or-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-or-bool-okp} \\ 
$=$$\;\;\;\;${\rm{r-or-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-or-bool-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bool-preserves-r-equal \\ \index{or-bool-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-or-bool-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-or-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-or-bool-step}, \\ 
{\rm{r-or-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-or-bool-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-and-bool-okp \\ \index{r-equal-implies-equal-r-and-boo!l-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-and-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-and-bool-okp} \\ 
$=$$\;\;\;\;${\rm{r-and-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-and-bool-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bool-preserves-r-equal \\ \index{and-bool-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-and-bool-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-and-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-and-bool-step}, \\ 
{\rm{r-and-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-and-bool-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-not-bool-okp \\ \index{r-equal-implies-equal-r-not-boo!l-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-not-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-not-bool-okp} \\ 
$=$$\;\;\;\;${\rm{r-not-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-not-bool-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bool-preserves-r-equal \\ \index{not-bool-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-not-bool-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-not-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-not-bool-step}, \\ 
{\rm{r-not-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-not-bool-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-jump-if-temp-stk-full-okp \\ \index{r-equal-implies-equal-r-jump-if!-temp-stk-full-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-if-temp-stk-full-okp} \\ 
$=$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-if-temp-stk-full-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-full-preserves-r-equal \\ \index{jump-if-temp-stk-full-preserves!-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-if-temp-stk-full-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-jump-if-temp-stk-full-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-if-temp-stk-full-step}, \\ 
{\rm{r-jump-if-temp-stk-full-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-if-temp-stk-full-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-jump-if-temp-stk-empty-okp \\ \index{r-equal-implies-equal-r-jump-if!-temp-stk-empty-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-if-temp-stk-empty-okp} \\ 
$=$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-if-temp-stk-empty-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-empty-preserves-r-equal \\ \index{jump-if-temp-stk-empty-preserve!s-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-if-temp-stk-empty-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-jump-if-temp-stk-empty-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-if-temp-stk-empty-step}, \\ 
{\rm{r-jump-if-temp-stk-empty-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-if-temp-stk-empty-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-test-nat-and-jump-okp \\ \index{r-equal-implies-equal-r-test-nat!-and-jump-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-test-nat-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-nat-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-nat-and-jump-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-nat-and-jump-preserves-r-equal \\ \index{test-nat-and-jump-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-nat-and-jump-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-test-nat-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-nat-and-jump-step}, \\ 
{\rm{r-test-nat-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-nat-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-test-int-and-jump-okp \\ \index{r-equal-implies-equal-r-test-int!-and-jump-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-test-int-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-int-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-int-and-jump-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-int-and-jump-preserves-r-equal \\ \index{test-int-and-jump-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-int-and-jump-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-test-int-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-int-and-jump-step}, \\ 
{\rm{r-test-int-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-int-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-test-bool-and-jump-okp \\ \index{r-equal-implies-equal-r-test-bo!ol-and-jump-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-test-bool-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-bool-and-jump-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bool-and-jump-preserves-r-equal \\ \index{test-bool-and-jump-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-bool-and-jump-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-test-bool-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-bool-and-jump-step}, \\ 
{\rm{r-test-bool-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-bool-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-test-bitv-and-jump-okp \\ \index{r-equal-implies-equal-r-test-bitv!-and-jump-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-test-bitv-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-bitv-and-jump-okp} \\ 
$=$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-bitv-and-jump-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bitv-and-jump-preserves-r-equal \\ \index{test-bitv-and-jump-preserves-r-eq!ual}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-bitv-and-jump-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-test-bitv-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-test-bitv-and-jump-step}, \\ 
{\rm{r-test-bitv-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-test-bitv-and-jump-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pop-locn-okp \\ \index{r-equal-implies-equal-r-pop-loc!n-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pop-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-locn-okp} \\ 
$=$$\;\;\;\;${\rm{r-pop-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-locn-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-locn-preserves-r-equal \\ \index{pop-locn-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-locn-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pop-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-locn-step}, \\ 
{\rm{r-pop-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-locn-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-locn-okp \\ \index{r-equal-implies-equal-r-locn-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-locn-okp} \\ 
$=$$\;\;\;\;${\rm{r-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-locn-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locn-preserves-r-equal \\ \index{locn-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-locn-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-locn-step}, \\ 
{\rm{r-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-locn-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-jump-case-okp \\ \index{r-equal-implies-equal-r-jump-ca!se-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-jump-case-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-case-okp} \\ 
$=$$\;\;\;\;${\rm{r-jump-case-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-case-okp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-preserves-r-equal \\ \index{jump-case-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-case-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-case-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-jump-case-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-jump-case-step}, \\ 
{\rm{r-jump-case-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-jump-case-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; To do call, we need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-all-r-objectps \\ \index{r-equal-implies-equal-all-r-obje!ctps}
{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} $\rightarrow$ ({\rm{all-r-objectps}}\,({\it{lst\/}}, {\it{r2\/}})\index{all-r-objectps} $=$ {\rm{all-r-objectps}}\,({\it{lst\/}}, {\it{r1\/}})\index{all-r-objectps})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-call-okp \\ \index{r-equal-implies-equal-r-call-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-call-okp} \\ 
$=$$\;\;\;\;${\rm{r-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-call-okp})\-\-
\end{tabbing}

\begin{verbatim}; Now we start working on call-step itself:

; There are two main problems.  The first is that the machine fetches the
; same actuals from each of the two states.  This is a generalization of
; r-equal-implies-equal-get-tstk.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{stk-equal-fetch-n-hint} \\  
\=\+{\rm{stk-equal-fetch-n-hint}}\,({\it{n\/}}, {\it{sp\/}}, {\it{segment2\/}})\index{stk-equal-fetch-n-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment2\/}})))\index{length} $-\;1$) \\ 
$<$$\;\;\;\;${\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag})\-$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{stk-equal-fetch-n-hint}}\,({\it{n\/}} $-\;1$, {\rm{pop-stk}}\,({\it{sp\/}})\index{pop-stk}, {\it{segment2\/}})\index{stk-equal-fetch-n-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  stk-equal-implies-equal-fetch-n \\ \index{stk-equal-implies-equal-fetch-n}
\=\+(\=\+{\rm{listp}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;$({\rm{stk-length}}\,({\it{sp\/}}, {\it{segment2\/}})\index{stk-length} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{fetch-n}}\,({\it{n\/}}, {\it{sp\/}}, {\it{segment2\/}})\index{fetch-n} $=$ {\rm{fetch-n}}\,({\it{n\/}}, {\it{sp\/}}, {\it{segment1\/}})\index{fetch-n})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-fetch-n-call \\ \index{r-equal-implies-equal-fetch-n-c!all}
\=\+(\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{stk-length}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\index{stk-length} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,({\it{n\/}}, {\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{fetch-n}}\,({\it{n\/}}, {\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\index{fetch-n})\-\-
\end{tabbing}

\begin{verbatim}; The second problem is proving that deposit-lst produces stk-equal
; stacks.

; There may be an easier way to do this, but I don't see it.  My
; plan is to replace deposit-lst by deposit-lst1, which runs down
; the list in the reverse order and does the put-assocs on the outside
; of its recursion.  This function, which we prove equivalent to
; deposit-lst, is easier for stk-equal to handle because each time
; it recurses it kicks out a put-assoc for the stk-equal to eat.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{deposit-lst1} \\  
\=\+{\rm{deposit-lst1}}\,({\it{lst\/}}, {\it{name\/}}, {\it{n\/}}, {\it{segment\/}})\index{deposit-lst1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{lst\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{segment\/}} \\ 
{\bf else }{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\rm{car}}\,({\it{lst\/}}), \\ 
{\it{n\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{deposit-lst1}}\,(\=\+{\rm{cdr}}\,({\it{lst\/}}), \\ 
{\it{name\/}}, \\ 
$1\;+$ {\it{n\/}}, \\ 
{\it{segment\/}})\-\index{deposit-lst1})\-))\-\index{put}, \\ 
{\it{name\/}}, \\ 
{\it{segment\/}})\-\index{put-assoc}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; To prove deposit-lst is deposit-lst1 we need to make explicit the
; relation with append because the main theorem involves reverse:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  deposit-lst1-append \\ \index{deposit-lst1-append}
\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-lst1}}\,({\rm{append}}\,({\it{a\/}}, {\rm{list}}\,({\it{x\/}})), {\it{name\/}}, {\it{n\/}}, {\it{segment\/}})\index{deposit-lst1} \\ 
$=$$\;\;\;\;${\rm{deposit-lst1}}\,(\=\+{\it{a\/}}, \\ 
{\it{name\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{put-assoc}}\,(\=\+{\rm{put}}\,(\=\+{\it{x\/}}, \\ 
{\it{n\/}} $+$ {\rm{length}}\,({\it{a\/}})\index{length}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\-\index{put}, \\ 
{\it{name\/}}, \\ 
{\it{segment\/}})\-\index{put-assoc})\-\index{deposit-lst1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plus-difference\{special\} \\ \index{plus-difference\{special\}}
({\it{x\/}} $\not<$ {\it{y\/}}) $\rightarrow$ (({\it{y\/}} $+$ ({\it{x\/}} $-$ {\it{y\/}})) $=$ {\rm{fix}}\,({\it{x\/}}))
\end{tabbing}

\begin{verbatim}; So here is the equivalence of the two versions of deposit-lst.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  deposit-lst-equal-deposit-lst1 \\ \index{deposit-lst-equal-deposit-lst1}
\=\+(({\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $\not<$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-lst}}\,({\it{lst\/}}, {\it{sp\/}}, {\it{segment\/}})\index{deposit-lst} \\ 
$=$$\;\;\;\;${\rm{deposit-lst1}}\,(\=\+{\rm{rev}}\,({\it{lst\/}})\index{rev}, \\ 
{\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), \\ 
{\rm{cdr}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}) $-$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$), \\ 
{\it{segment\/}})\-\index{deposit-lst1})\-\-
\end{tabbing}

\begin{verbatim}; Now I am headed for the theorem that says that if you have
; two stk-equal segments then the result of doing deposit-lst is
; stk-equal.  In the proof deposit-lst will be replaced, as above,
; by deposit-lst1, and then I will use arithmetic, including

\end{verbatim}
\noindent{\sc Event}:   Enable difference-elim.

\addvspace{18pt}

\noindent{\sc Event}:   Enable difference-elim-rewrite.

\addvspace{18pt}

\begin{verbatim}; and

\end{verbatim}\begin{tabbing}{\sc Theorem}:  difference-sub1-plus-etc \\ \index{difference-sub1-plus-etc}
\=\+(({\it{v\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{listp}}\,({\it{lst\/}})) \\ 
$\rightarrow$$\;\;\;\;$(((({\it{v\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length}) $-\;1$) $-$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$)) $=$ {\it{v\/}})\-
\end{tabbing}

\begin{verbatim}; to reduce the stk-equal-deposit-lst-generalized theorem to an instance of
; stk-equal-deposit-lst1, below.  By the way, the order of the
; actuals, whether reversed or not, is unimportant here; i.e., the
; reverse introduced above is now simply generalized away.

; The proof of stk-equal-deposit-lst1 relies on stk-equal-put-assoc-push
; to eat each put-assoc kicked out by deposit-lst1.  We need to relieve
; the hypotheses of the -push lemma:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-cdr-assoc-deposit-lst1 \\ \index{length-cdr-assoc-deposit-lst1}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length} $\not<$ ({\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-lst1}}\,({\it{lst\/}}, {\it{name\/}}, {\it{n\/}}, {\it{segment\/}})\index{deposit-lst1})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})\-\-
\end{tabbing}

\begin{verbatim}; In the main theorem to which we are heading, we have tag, type, and
; untag enabled.  We therefore need to state this lemma in terms of list
; rather than tag, and enable the accessors.  We explain below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  room-to-deposit-lst-implies-not-empty-stkp \\ \index{room-to-deposit-lst-implies-not!-empty-stkp}
\=\+(({\it{n\/}} $+$ {\rm{length}}\,({\rm{cdr}}\,({\it{lst\/}}))\index{length}) $<$ ({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{length} $-\;1$)) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,({\rm{list}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}})), {\it{segment1\/}})\index{empty-stkp})\-
\end{tabbing}

\begin{verbatim}; After we relieve the hyps we need to simplify the rhs.  Recall that
; the rhs of the stk-equal-put-assoc-push lemma says that you continue
; the stk-equal at the next higher position after put-associng the
; name with the list into which you did the put.  In our case, the
; list into which we did the put is obtained by associng for
; the name in the result of the continued deposit-lst1.  In any case,
; the identity we need is this:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-put-assoc-cdr-assoc \\ \index{stk-equal-put-assoc-cdr-assoc}
\=\+(({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{old-segment1\/}})\index{definedp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{old-segment2\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\rm{list}}\,({\it{sys-addr\/}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}})), \\ 
{\rm{put-assoc}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})), {\it{name\/}}, {\it{old-segment1\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})), {\it{name\/}}, {\it{old-segment2\/}})\index{put-assoc})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,({\rm{list}}\,({\it{sys-addr\/}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}})), {\it{segment1\/}}, {\it{segment2\/}})\index{stk-equal})\-\-
\end{tabbing}

\begin{verbatim}; This is the key result for stk-equal and deposit-lst1.  The lemma is
; a little unusual in having sys-addr as a variable.  Most of the time
; we've used the constant 'sys-addr.  The reason we used a variable
; this time is just that in the lemma we are headed for,
; stk-equal-deposit-lst-generalized, we don't bother to say that
; sp-init is a sys-addr address.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-deposit-lst1 \\ \index{stk-equal-deposit-lst1}
\=\+(\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(({\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(({\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$(({\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length}) $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{list}}\,({\it{sys-addr\/}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length})), \\ 
{\it{segment2\/}}, \\ 
{\it{segment1\/}})\-\index{stk-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{list}}\,({\it{sys-addr\/}}, {\rm{cons}}\,({\it{name\/}}, {\it{n\/}})), \\ 
{\rm{deposit-lst1}}\,({\it{lst\/}}, {\it{name\/}}, {\it{n\/}}, {\it{segment2\/}})\index{deposit-lst1}, \\ 
{\rm{deposit-lst1}}\,({\it{lst\/}}, {\it{name\/}}, {\it{n\/}}, {\it{segment1\/}})\index{deposit-lst1})\-\index{stk-equal}\-
\end{tabbing}

\begin{verbatim}; Here is the main theorem about stk-equal and deposit-lst.  As noted, the
; proof involves an elim to get rid of the difference introduced when we
; trade deposit-lst for deposit-lst1.  That elim also introduces conses for
; sp-init, below, and so we need to enable type and untag so they compute on
; conses.  That is why the lemma development above used list instead of tag
; everywhere.  The lemma is of lemma class nil because we need to instantiate
; it later to derive the actual rewrite rule we need.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-deposit-lst-generalized \\ \index{stk-equal-deposit-lst-generalize!d}
\=\+(\=\+({\rm{cddr}}\,({\it{sp-init\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,({\it{sp-init\/}}, {\it{segment2\/}})\index{addressp} \\ 
$\wedge$$\;\;\;\;${\rm{addressp}}\,({\it{sp-init\/}}, {\it{segment1\/}})\index{addressp} \\ 
$\wedge$$\;\;\;\;$({\rm{free-stk-size}}\,({\it{sp-init\/}})\index{free-stk-size} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\it{sp-init\/}}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{push-stk-n}}\,({\rm{length}}\,({\it{lst\/}})\index{length}, {\it{sp-init\/}})\index{push-stk-n}, \\ 
{\rm{deposit-lst}}\,({\it{lst\/}}, {\rm{push-stk}}\,({\it{sp-init\/}})\index{push-stk}, {\it{segment2\/}})\index{deposit-lst}, \\ 
{\rm{deposit-lst}}\,({\it{lst\/}}, {\rm{push-stk}}\,({\it{sp-init\/}})\index{push-stk}, {\it{segment1\/}})\index{deposit-lst})\-\index{stk-equal}\-
\end{tabbing}

\begin{verbatim}; We now disable the things we introduced just for this proof.

\end{verbatim}
\noindent{\sc Event}:   Disable deposit-lst-equal-deposit-lst1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-elim.

\addvspace{18pt}

\noindent{\sc Event}:   Disable difference-sub1-plus-etc.

\addvspace{18pt}

\noindent{\sc Event}:   Disable room-to-deposit-lst-implies-not-empty-stkp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  stk-equal-deposit-lst \\ \index{stk-equal-deposit-lst}
\=\+(\=\+({\it{n-final\/}} $=$ ({\it{n-init\/}} $-$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{cstk}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n-init\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n-init\/}} $\not<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{n-init\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment2\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{n-init\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{cstk}}, {\it{segment1\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n-init\/}}))\index{tag}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n-final\/}}))\index{tag}, \\ 
{\rm{deposit-lst}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n-init\/}} $-\;1$))\index{tag}, \\ 
{\it{segment2\/}})\-\index{deposit-lst}, \\ 
{\rm{deposit-lst}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n-init\/}} $-\;1$))\index{tag}, \\ 
{\it{segment1\/}})\-\index{deposit-lst})\-\index{stk-equal}\-
\end{tabbing}
                        

\begin{verbatim}; Returning now to the consideration of call itself and the stk-equality
; on the new cstks, the theorem above reduces (actually backchains) the
; problem to one of the stk-equality after the first pushes of the old fp
; and ret-pc.  The following lemma establishes that the stack on which
; we're pushing is non-empty and allows the famous stk-equal-put-assoc-push
; to handle those two pushes:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-empty-stkp-push-csp \\ \index{not-empty-stkp-push-csp}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ ({\it{n\/}} $<$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r\/}})\index{r-csp})\index{untag}))) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{empty-stkp}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\-\index{empty-stkp})\-
\end{tabbing}

\begin{verbatim}; We are finally left with the stk-equality of the two cstks below the
; new frame.  That is given to us, except that we have torn the csp
; apart with all the stuff above and need to put it back together:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-tag-untag-cstk \\ \index{proper-r-statep-implies-tag-unt!ag-cstk}
\=\+(\=\+({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{sys-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{untag}}\,({\it{x\/}})\index{untag}) $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{x\/}}) $=$ {\bf{nil}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\rm{cdr}}\,({\rm{untag}}\,({\it{x\/}})\index{untag})))\index{tag} $=$ {\it{x\/}})\-
\end{tabbing}

\begin{verbatim}; This completes the argument that the new cstks are stk-equal.

; We now turn to the stk-equality of the new tstks.

; The only observation we need to make is that the deposit-lst on the
; cstk does not affect the question of stk-equality on the tstk.  Then
; the knowledge that stk-equal extends upwards will handle things for
; us.

; The strategy is the same as before: replace deposit-lst with
; deposit-lst1 and appeal to the simple theorem about deposit-lst1:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-tstk-deposit-lst1-cstk \\ \index{stk-equal-tstk-deposit-lst1-cst!k}
\=\+{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{deposit-lst1}}\,({\it{lst\/}}, {\tt{'}}{\tt{cstk}}, {\it{k\/}}, {\it{segment2\/}})\index{deposit-lst1}, \\ 
{\rm{deposit-lst1}}\,({\it{lst\/}}, {\tt{'}}{\tt{cstk}}, {\it{k\/}}, {\it{segment1\/}})\index{deposit-lst1})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{n\/}}))\index{tag}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal}\-
\end{tabbing}

\begin{verbatim}; So here is the result we needed for the stk-equality on the tstk:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-tstk-deposit-lst-cstk \\ \index{stk-equal-tstk-deposit-lst-cstk}
\=\+(\=\+({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $=$ {\tt{'}}{\tt{cstk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $\not<$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$)))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{n\/}}))\index{tag}, \\ 
{\rm{deposit-lst}}\,({\it{lst\/}}, {\it{csp\/}}, {\it{segment2\/}})\index{deposit-lst}, \\ 
{\rm{deposit-lst}}\,({\it{lst\/}}, {\it{csp\/}}, {\it{segment1\/}})\index{deposit-lst})\-\index{stk-equal} \\ 
$=$$\;\;\;\;${\rm{stk-equal}}\,({\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, {\it{n\/}}))\index{tag}, {\it{segment2\/}}, {\it{segment1\/}})\index{stk-equal})\-\-
\end{tabbing}

\begin{verbatim}; The last thing we have to handle is the same-signature of the new
; sys-data-segments.  We use deposit-lst1 again.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-deposit-lst1 \\ \index{same-signature-deposit-lst1}
\=\+(\=\+{\rm{litatom}}\,({\it{name\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment1\/}})))\index{length} $\not<$ ({\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment2\/}})))\index{length} $\not<$ ({\it{n\/}} $+$ {\rm{length}}\,({\it{lst\/}})\index{length})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\rm{deposit-lst1}}\,({\it{lst\/}}, {\it{name\/}}, {\it{n\/}}, {\it{segment2\/}})\index{deposit-lst1}, \\ 
{\rm{deposit-lst1}}\,({\it{lst\/}}, {\it{name\/}}, {\it{n\/}}, {\it{segment1\/}})\index{deposit-lst1})\-\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment2\/}}, {\it{segment1\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-deposit-lst\{special\} \\ \index{same-signature-deposit-lst\{special\}}
\=\+(\=\+{\rm{litatom}}\,({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag})) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}), {\it{segment1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}), {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $\not<$ ({\rm{length}}\,({\it{lst\/}})\index{length} $-\;1$)) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}), {\it{segment1\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{csp\/}})\index{untag}), {\it{segment2\/}})))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\rm{deposit-lst}}\,({\it{lst\/}}, {\it{csp\/}}, {\it{segment2\/}})\index{deposit-lst}, \\ 
{\rm{deposit-lst}}\,({\it{lst\/}}, {\it{csp\/}}, {\it{segment1\/}})\index{deposit-lst})\-\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment2\/}}, {\it{segment1\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{verbatim}; And that completes the r-equal work for call!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-preserves-r-equal \\ \index{call-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-call-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-call-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-call-step}, \\ 
{\rm{r-call-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-call-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; In order to reduce the pop-call case to call, we need to
; explain that the fake state created by pop-call does not
; affect the tests we make:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-objectp-on-pop-call-state \\ \index{r-objectp-on-pop-call-state}
\=\+(\=\+({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment} $=$ {\it{r-prog-segment\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment} $=$ {\it{r-usr-data-segment\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size} $=$ {\it{r-word-size\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-objectp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\it{r-prog-segment\/}}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\it{r-word-size\/}}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{r-objectp} \\ 
$=$$\;\;\;\;${\rm{r-objectp}}\,({\it{x\/}}, {\it{r\/}})\index{r-objectp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-r-objectps-on-pop-call-state \\ \index{all-r-objectps-on-pop-call-state}
\=\+(\=\+({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment} $=$ {\it{r-prog-segment\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment} $=$ {\it{r-usr-data-segment\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size} $=$ {\it{r-word-size\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-r-objectps}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\it{r-prog-segment\/}}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\it{r-word-size\/}}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{all-r-objectps} \\ 
$=$$\;\;\;\;${\rm{all-r-objectps}}\,({\it{lst\/}}, {\it{r\/}})\index{all-r-objectps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-r-pcp-on-pop-call-state \\ \index{add1-r-pcp-on-pop-call-state}
\=\+(({\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment} $=$ {\it{r-prog-segment\/}}) $\wedge$ ({\rm{r-pc}}\,({\it{r\/}})\index{r-pc} $=$ {\it{r-pc\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{add1-r-pcp}}\,({\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\it{r-prog-segment\/}}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\it{r-word-size\/}}, \\ 
{\it{r-psw\/}})\-\index{r-state})\index{add1-r-pcp} \\ 
$=$$\;\;\;\;${\rm{add1-r-pcp}}\,({\it{r\/}})\index{add1-r-pcp})\-\-
\end{tabbing}
         
\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-pop-call-okp \\ \index{r-equal-implies-equal-r-pop-cal!l-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-pop-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-call-okp} \\ 
$=$$\;\;\;\;${\rm{r-pop-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-call-okp})\-\-
\end{tabbing}

\begin{verbatim}; Recall the lemma r-equal-implies-equal-fetch-n-call.  It rewrites
; (fetch-n n (r-tsp r1) (r-sys-data-segment r2)).  That will not
; do for pop-call because instead of (r-tsp r1) we are interested
; in (pop-stk (r-tsp r1)), with the pop-stk expanded.  So we
; prove a slightly different version:

; The proper-r-statep hypothesis added below is necessary to
; insure that (tag 'sys-addr (cons 'tstk (cdr (untag (r-tsp r1)))))
; is in fact (r-tsp r1).

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-fetch-n-pop-call \\ \index{r-equal-implies-equal-fetch-n-p!op-call}
\=\+(\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{stk-length}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, $1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag})))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{stk-length} \\ 
$\not<$$\;\;\;\;${\it{n\/}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{tstk}}, $1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag})))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment})\-\index{fetch-n} \\ 
$=$$\;\;\;\;${\rm{fetch-n}}\,(\=\+{\it{n\/}}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{sys-addr}}, \\ 
{\rm{cons}}\,({\tt{'}}{\tt{tstk}}, $1\;+$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r1\/}})\index{r-tsp})\index{untag})))\-\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{fetch-n})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-call-preserves-r-equal \\ \index{pop-call-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-call-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-pop-call-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-pop-call-step}, \\ 
{\rm{r-pop-call-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-pop-call-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-ret-okp \\ \index{r-equal-implies-equal-r-ret-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-ret-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ret-okp} \\ 
$=$$\;\;\;\;${\rm{r-ret-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ret-okp})\-\-
\end{tabbing}

\begin{verbatim}; Needless to say, on ret we need to know that the stk-equality
; on the cstk extends upwards too.  Previously we had proved it
; only for the tstk.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-stk-equal-extends-upwards-cstk \\ \index{r-equal-implies-stk-equal-exten!ds-upwards-cstk}
\=\+(\=\+{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{k\/}} $\not<$ {\rm{cdr}}\,({\rm{untag}}\,({\rm{r-csp}}\,({\it{r1\/}})\index{r-csp})\index{untag})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{sys-addr}}, {\rm{cons}}\,({\tt{'}}{\tt{cstk}}, {\it{k\/}}))\index{tag}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r2\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\it{r1\/}})\index{r-sys-data-segment})\-\index{stk-equal}\-
\end{tabbing}

\begin{verbatim}; And we need to know about r-halt:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-r-equal-r-halt \\ \index{r-equal-implies-r-equal-r-halt}
{\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal} $\rightarrow$ {\rm{r-equal}}\,({\rm{r-halt}}\,({\it{r2\/}}, {\it{r-psw\/}})\index{r-halt}, {\rm{r-halt}}\,({\it{r1\/}}, {\it{r-psw\/}})\index{r-halt})\index{r-equal}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-preserves-r-equal \\ \index{ret-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-ret-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ret-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-ret-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ret-step}, \\ 
{\rm{r-ret-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ret-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; We also have to prove that p-loadablep is preserved by p-step.
; We do it in the expected way, beginning with the individual
; instruction steppers.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  no-op-preserves-p-loadablep \\ \index{no-op-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-no-op-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-no-op-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-global-preserves-p-loadablep \\ \index{push-global-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-push-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-global-preserves-p-loadablep \\ \index{pop-global-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pop-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-local-preserves-p-loadablep \\ \index{push-local-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-push-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-local-preserves-p-loadablep \\ \index{pop-local-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pop-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-preserves-p-loadablep \\ \index{deposit-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-deposit-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-nat-preserves-p-loadablep \\ \index{add1-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-add1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-preserves-p-loadablep \\ \index{add-addr-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-add-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-with-carry-preserves-p-loadablep \\ \index{add-nat-with-carry-preserves-p-!loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-add-nat-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-with-carry-out-preserves-p-loadablep \\ \index{mult2-nat-with-carry-out-preserve!s-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-with-carry-out-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-mult2-nat-with-carry-out-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-temp-stk-preserves-p-loadablep \\ \index{fetch-temp-stk-preserves-p-load!ablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-fetch-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-temp-stk-preserves-p-loadablep \\ \index{deposit-temp-stk-preserves-p-lo!adablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-deposit-temp-stk-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop*-preserves-p-loadablep \\ \index{pop*-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop*-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pop*-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-preserves-p-loadablep \\ \index{popn-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-popn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-local-preserves-p-loadablep \\ \index{set-local-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-set-local-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  set-global-preserves-p-loadablep \\ \index{set-global-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-set-global-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-constant-preserves-p-loadablep \\ \index{push-constant-preserves-p-loada!blep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-constant-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-push-constant-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-ctrl-stk-free-size-preserves-p-loadablep \\ \index{push-ctrl-stk-free-size-preserve!s-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-ctrl-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-push-ctrl-stk-free-size-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-free-size-preserves-p-loadablep \\ \index{push-temp-stk-free-size-preserve!s-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-push-temp-stk-free-size-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-free-size-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  push-temp-stk-index-preserves-p-loadablep \\ \index{push-temp-stk-index-preserves-p!-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-index-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-push-temp-stk-index-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-preserves-p-loadablep \\ \index{pop-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pop-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-preserves-p-loadablep \\ \index{jump-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pushj-preserves-p-loadablep \\ \index{pushj-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pushj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pushj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popj-preserves-p-loadablep \\ \index{popj-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-popj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-preserves-p-loadablep \\ \index{sub-addr-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-sub-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  eq-preserves-p-loadablep \\ \index{eq-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-eq-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-eq-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-addr-preserves-p-loadablep \\ \index{lt-addr-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-lt-addr-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-preserves-p-loadablep \\ \index{fetch-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-fetch-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-preserves-p-loadablep \\ \index{add-int-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-add-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-int-with-carry-preserves-p-loadablep \\ \index{add-int-with-carry-preserves-p-!loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-add-int-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-int-preserves-p-loadablep \\ \index{add1-int-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-add1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-preserves-p-loadablep \\ \index{sub-int-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-sub-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-int-with-carry-preserves-p-loadablep \\ \index{sub-int-with-carry-preserves-p-!loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-sub-int-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-int-preserves-p-loadablep \\ \index{sub1-int-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-sub1-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  neg-int-preserves-p-loadablep \\ \index{neg-int-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-neg-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-neg-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-int-preserves-p-loadablep \\ \index{lt-int-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-lt-int-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  int-to-nat-preserves-p-loadablep \\ \index{int-to-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-int-to-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-int-to-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-nat-preserves-p-loadablep \\ \index{add-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-add-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-preserves-p-loadablep \\ \index{sub-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-sub-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-nat-with-carry-preserves-p-loadablep \\ \index{sub-nat-with-carry-preserves-p-!loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-sub-nat-with-carry-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-nat-preserves-p-loadablep \\ \index{sub1-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-sub1-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lt-nat-preserves-p-loadablep \\ \index{lt-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-lt-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mult2-nat-preserves-p-loadablep \\ \index{mult2-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-mult2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  div2-nat-preserves-p-loadablep \\ \index{div2-nat-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-div2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-div2-nat-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bitv-preserves-p-loadablep \\ \index{or-bitv-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-or-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bitv-preserves-p-loadablep \\ \index{and-bitv-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-and-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bitv-preserves-p-loadablep \\ \index{not-bitv-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-not-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  xor-bitv-preserves-p-loadablep \\ \index{xor-bitv-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-xor-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-xor-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  rsh-bitv-preserves-p-loadablep \\ \index{rsh-bitv-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-rsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-rsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lsh-bitv-preserves-p-loadablep \\ \index{lsh-bitv-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-lsh-bitv-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  or-bool-preserves-p-loadablep \\ \index{or-bool-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-or-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  and-bool-preserves-p-loadablep \\ \index{and-bool-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-and-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-bool-preserves-p-loadablep \\ \index{not-bool-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-not-bool-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-full-preserves-p-loadablep \\ \index{jump-if-temp-stk-full-preserves!-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-full-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-jump-if-temp-stk-full-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-if-temp-stk-empty-preserves-p-loadablep \\ \index{jump-if-temp-stk-empty-preserve!s-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-empty-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-jump-if-temp-stk-empty-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-nat-and-jump-preserves-p-loadablep \\ \index{test-nat-and-jump-preserves-p-l!oadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-nat-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-test-nat-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-int-and-jump-preserves-p-loadablep \\ \index{test-int-and-jump-preserves-p-l!oadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-int-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-test-int-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bool-and-jump-preserves-p-loadablep \\ \index{test-bool-and-jump-preserves-p-!loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bool-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-test-bool-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  test-bitv-and-jump-preserves-p-loadablep \\ \index{test-bitv-and-jump-preserves-p-!loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bitv-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,(\=\+{\rm{p-test-bitv-and-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-step}, \\ 
{\it{load-addr\/}})\-\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-locn-preserves-p-loadablep \\ \index{pop-locn-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pop-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locn-preserves-p-loadablep \\ \index{locn-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  jump-case-preserves-p-loadablep \\ \index{jump-case-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-case-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-jump-case-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-preserves-p-loadablep \\ \index{call-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-call-preserves-p-loadablep \\ \index{pop-call-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-pop-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-preserves-p-loadablep \\ \index{ret-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ret-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-ret-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{verbatim}; We now turn our attention to putting all these lemmas together to
; get the p-step and r-step versions of each.

\end{verbatim}
\noindent{\sc Event}:   Disable p-call-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-call-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-ret-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-ret-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-locn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-locn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-constant-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-constant-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-ctrl-stk-free-size-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-ctrl-stk-free-size-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-temp-stk-free-size-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-temp-stk-free-size-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-temp-stk-index-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-push-temp-stk-index-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-if-temp-stk-full-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-if-temp-stk-full-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-if-temp-stk-empty-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-if-temp-stk-empty-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop*-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop*-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-popn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-popn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-locn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-locn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-call-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pop-call-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-fetch-temp-stk-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-fetch-temp-stk-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-deposit-temp-stk-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-deposit-temp-stk-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-case-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-jump-case-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pushj-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-pushj-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-popj-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-popj-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-set-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-set-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-set-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-set-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-nat-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-nat-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-int-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-int-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-bool-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-bool-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-bitv-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-test-bitv-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-no-op-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-no-op-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-eq-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-eq-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lt-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lt-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-fetch-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-fetch-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-deposit-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-deposit-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-int-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-int-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add1-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add1-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-int-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-int-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub1-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub1-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-neg-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-neg-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lt-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lt-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-int-to-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-int-to-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-nat-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add-nat-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add1-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-add1-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-nat-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub-nat-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub1-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-sub1-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lt-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lt-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-mult2-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-mult2-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-mult2-nat-with-carry-out-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-mult2-nat-with-carry-out-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-div2-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-div2-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-or-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-or-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-and-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-and-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-not-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-not-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-xor-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-xor-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-rsh-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-rsh-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lsh-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-lsh-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-or-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-or-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-and-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-and-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-not-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-not-bool-step.

\addvspace{18pt}


\noindent{\sc Event}:   Disable r-call-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-call-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ret-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ret-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-locn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-locn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-constant-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-constant-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-ctrl-stk-free-size-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-ctrl-stk-free-size-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-free-size-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-free-size-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-index-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-push-temp-stk-index-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-full-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-full-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-empty-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-if-temp-stk-empty-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop*-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop*-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-locn-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-locn-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-call-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pop-call-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-temp-stk-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-temp-stk-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-temp-stk-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-temp-stk-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-case-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-jump-case-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pushj-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-pushj-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popj-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-popj-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-local-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-local-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-global-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-set-global-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-nat-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-nat-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-int-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-int-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bool-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bool-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bitv-and-jump-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-test-bitv-and-jump-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-no-op-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-no-op-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-eq-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-eq-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-addr-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-addr-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-fetch-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-deposit-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-int-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-int-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-neg-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-neg-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-int-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-int-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-int-to-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-int-to-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add-nat-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-add1-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-with-carry-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub-nat-with-carry-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-sub1-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lt-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-with-carry-out-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-mult2-nat-with-carry-out-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-div2-nat-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-div2-nat-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-xor-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-xor-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-rsh-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-rsh-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lsh-bitv-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-lsh-bitv-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-or-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-and-bool-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bool-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-not-bool-step.

\addvspace{18pt}

\begin{verbatim}; Our plan for putting everything together requires -- as every plan must
; I think -- enough Lisp stack space for the rewriter to completely explore
; the if-nest in r-ins-step and the other "big switch" functions.
; Unfortunately that is not the case.  So we artificially partition our
; functions into two nearly equal halves and deal with each half separately.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{r-ins-okp2} \\  
\=\+{\rm{r-ins-okp2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp2} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{r-eq-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-okp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-okp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-okp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-okp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-okp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-okp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-okp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-okp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-okp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-okp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-neg-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-okp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-okp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-int-to-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-okp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-okp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-okp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-add1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-okp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-okp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-okp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-okp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-lt-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-okp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-okp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{r-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{r-div2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-okp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-okp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-okp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-okp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-xor-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-okp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-okp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{r-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-okp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-or-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-okp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-and-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-okp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{r-not-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-okp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{r-ins-okp1} \\  
\=\+{\rm{r-ins-okp1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp1} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{r-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-call-okp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{r-ret-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ret-okp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-locn-okp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-constant-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-constant-okp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-local-okp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-global-okp} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{r-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-push-temp-stk-index-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-okp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop*-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop*-okp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{r-popn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popn-okp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-local-okp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-global-okp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-locn-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-locn-okp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{r-pop-call-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pop-call-okp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-temp-stk-okp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{r-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-temp-stk-okp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-okp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{r-jump-case-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-jump-case-okp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{r-pushj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-pushj-okp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{r-popj-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-popj-okp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-local-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-local-okp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{r-set-global-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-set-global-okp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-nat-and-jump-okp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-int-and-jump-okp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bool-and-jump-okp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{r-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-test-bitv-and-jump-okp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{r-no-op-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-no-op-okp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-add-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-addr-okp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{r-sub-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-addr-okp} \\ 
{\bf otherwise }{\rm{r-ins-okp2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp2}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-ins-okp-is-r-ins-okp1 \\ \index{r-ins-okp-is-r-ins-okp1}
{\rm{r-ins-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp} $=$ {\rm{r-ins-okp1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp1}
\end{tabbing}


\noindent{\sc Event}:   Disable r-ins-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ins-okp-is-r-ins-okp1.

\addvspace{18pt}

\begin{verbatim}; We repeat the exercise for r-ins-step.

\end{verbatim}
\noindent{\sc Event}:   Enable r-ins-step-is-r-ins-step1.

\addvspace{18pt}


\noindent{\sc Event}:   Disable r-ins-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ins-step-is-r-ins-step1.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-ins-okp2} \\  
\=\+{\rm{p-ins-okp2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp2} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{p-eq-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-okp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-okp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-okp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-okp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-okp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-okp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-okp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-okp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-okp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-okp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-neg-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-okp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-okp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-int-to-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-okp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-okp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-okp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-okp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-okp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-okp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-okp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-okp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-okp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-div2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-okp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-okp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-okp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-okp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-xor-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-okp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-okp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-okp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-okp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-okp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-okp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ins-okp1} \\  
\=\+{\rm{p-ins-okp1}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp1} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{p-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-okp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{p-ret-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-okp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-okp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-constant-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-okp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-okp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-okp} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-okp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop*-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-okp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{p-popn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-okp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-okp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-okp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-okp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-okp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-okp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-okp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-okp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-case-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-okp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{p-pushj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-okp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{p-popj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-okp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-okp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-okp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-okp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-okp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-okp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-okp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{p-no-op-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-okp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-okp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-okp} \\ 
{\bf otherwise }{\rm{p-ins-okp2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp2}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-okp-is-p-ins-okp1 \\ \index{p-ins-okp-is-p-ins-okp1}
{\rm{p-ins-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp} $=$ {\rm{p-ins-okp1}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp1}
\end{tabbing}


\noindent{\sc Event}:   Disable p-ins-okp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-ins-okp-is-p-ins-okp1.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-ins-step2} \\  
\=\+{\rm{p-ins-step2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step2} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{p-eq-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-step} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-step} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-step} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-step} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-step} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-int-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-step} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-step} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-step} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-int-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-step} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-step} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-neg-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-step} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-int-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-step} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-int-to-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-step} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-step} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-nat-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-step} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-add1-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-step} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-step} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-nat-with-carry-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-step} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub1-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-step} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-lt-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-step} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-step} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{p-mult2-nat-with-carry-out-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-step} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{p-div2-nat-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-step} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-step} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-step} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-step} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-xor-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-step} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-rsh-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-step} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{p-lsh-bitv-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-step} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-or-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-step} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-and-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-step} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{p-not-bool-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-step} \\ 
{\bf otherwise }{\rm{p-halt}}\,({\it{p\/}}, {\tt{'}}{\tt{run}})\index{p-halt}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-ins-step1} \\  
\=\+{\rm{p-ins-step1}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step1} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{p-call-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-step} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{p-ret-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-step} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-locn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-step} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-constant-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-step} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-step} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-step} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-ctrl-stk-free-size-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-free-size-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-step} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{p-push-temp-stk-index-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-full-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-step} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-if-temp-stk-empty-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-step} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-step} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop*-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-step} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{p-popn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-step} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-step} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-step} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-locn-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-step} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{p-pop-call-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-step} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-fetch-temp-stk-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-step} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{p-deposit-temp-stk-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-step} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-step} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{p-jump-case-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-step} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{p-pushj-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-step} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{p-popj-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-step} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-local-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-step} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{p-set-global-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-step} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-nat-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-step} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-int-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-step} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bool-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-step} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{p-test-bitv-and-jump-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-step} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{p-no-op-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-step} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-add-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-step} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{p-sub-addr-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-step} \\ 
{\bf otherwise }{\rm{p-ins-step2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step2}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-step-is-p-ins-step1 \\ \index{p-ins-step-is-p-ins-step1}
{\rm{p-ins-step}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step} $=$ {\rm{p-ins-step1}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-step1}
\end{tabbing}


\noindent{\sc Event}:   Disable p-ins-step.

\addvspace{18pt}

\noindent{\sc Event}:   Disable p-ins-step-is-p-ins-step1.

\addvspace{18pt}

\begin{verbatim}; We disable p-ins-okp because the main owc theorem involves p-ins-okp
; and p-ins-step, and opening either is sufficient to drive the case
; analysis.  If both open, then we get cross-multiplied cases and
; there is a lot of silly propositional work to do.  So we arbitrarily
; choose to keep p-ins-okp disabled.  Now we could choose to rewrite
; it to p-xxx-okp when the car of ins is 'xxx, analogously to what we
; did for r-ins-okp above.  But the proof of the owc should be faster
; if we do this: keep p-ins-okp disabled and show that p-xxx-okp holds
; if the car of ins is 'xxx.  The reason is that when we fire the
; xxx-one-way-correspondence-p-r lemma we will want to get p-xxx-okp
; and we'll be governed by a p-ins-okp and a hyp about car ins.  But
; the hyp about car ins won't have been raised all the way to the top
; and so won't yet be available to tell the p-ins-okp which way to go.
; This is the same strategy used for r-ins-okp in the r-i level proof.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-ins-okp2-backchainer \\ \index{p-ins-okp2-backchainer}
\=\+{\rm{p-ins-okp2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp2} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{eq}}) $\rightarrow$ {\rm{p-eq-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-eq-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-addr}}) $\rightarrow$ {\rm{p-lt-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-addr-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{fetch}}) $\rightarrow$ {\rm{p-fetch-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{deposit}}) $\rightarrow$ {\rm{p-deposit-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-int}}) $\rightarrow$ {\rm{p-add-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-int-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add1-int}}) $\rightarrow$ {\rm{p-add1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-int}}) $\rightarrow$ {\rm{p-sub-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-int-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub1-int}}) $\rightarrow$ {\rm{p-sub1-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{neg-int}}) $\rightarrow$ {\rm{p-neg-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-neg-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-int}}) $\rightarrow$ {\rm{p-lt-int-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{int-to-nat}}) $\rightarrow$ {\rm{p-int-to-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-int-to-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-nat}}) $\rightarrow$ {\rm{p-add-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-nat-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add1-nat}}) $\rightarrow$ {\rm{p-add1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add1-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-nat}}) $\rightarrow$ {\rm{p-sub-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-nat-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub1-nat}}) $\rightarrow$ {\rm{p-sub1-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub1-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-nat}}) $\rightarrow$ {\rm{p-lt-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lt-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{mult2-nat}}) $\rightarrow$ {\rm{p-mult2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{div2-nat}}) $\rightarrow$ {\rm{p-div2-nat-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-div2-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{or-bitv}}) $\rightarrow$ {\rm{p-or-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{and-bitv}}) $\rightarrow$ {\rm{p-and-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bitv}}) $\rightarrow$ {\rm{p-not-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{xor-bitv}}) $\rightarrow$ {\rm{p-xor-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-xor-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{rsh-bitv}}) $\rightarrow$ {\rm{p-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-rsh-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lsh-bitv}}) $\rightarrow$ {\rm{p-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-lsh-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{or-bool}}) $\rightarrow$ {\rm{p-or-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-or-bool-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{and-bool}}) $\rightarrow$ {\rm{p-and-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-and-bool-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bool}}) $\rightarrow$ {\rm{p-not-bool-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-not-bool-okp}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-ins-okp2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-ins-okp-backchainer \\ \index{p-ins-okp-backchainer}
\=\+{\rm{p-ins-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{call}}) $\rightarrow$ {\rm{p-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-call-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{ret}}) $\rightarrow$ {\rm{p-ret-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ret-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{locn}}) $\rightarrow$ {\rm{p-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-locn-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-push-constant-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-constant-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-local}}) $\rightarrow$ {\rm{p-push-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-local-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-global}}) $\rightarrow$ {\rm{p-push-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-global-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-push-ctrl-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-push-temp-stk-free-size-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-push-temp-stk-index-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-push-temp-stk-index-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-jump-if-temp-stk-full-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-jump-if-temp-stk-empty-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop}}) $\rightarrow$ {\rm{p-pop-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop*}}) $\rightarrow$ {\rm{p-pop*-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop*-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{popn}}) $\rightarrow$ {\rm{p-popn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popn-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-local}}) $\rightarrow$ {\rm{p-pop-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-local-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-global}}) $\rightarrow$ {\rm{p-pop-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-global-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-locn}}) $\rightarrow$ {\rm{p-pop-locn-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-locn-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pop-call}}) $\rightarrow$ {\rm{p-pop-call-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pop-call-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-fetch-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-fetch-temp-stk-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-deposit-temp-stk-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-deposit-temp-stk-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump}}) $\rightarrow$ {\rm{p-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{jump-case}}) $\rightarrow$ {\rm{p-jump-case-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-jump-case-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{pushj}}) $\rightarrow$ {\rm{p-pushj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-pushj-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{popj}}) $\rightarrow$ {\rm{p-popj-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-popj-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{set-local}}) $\rightarrow$ {\rm{p-set-local-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-local-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{set-global}}) $\rightarrow$ {\rm{p-set-global-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-set-global-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-test-nat-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-nat-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-test-int-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-int-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-test-bool-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bool-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-test-bitv-and-jump-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-test-bitv-and-jump-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{no-op}}) $\rightarrow$ {\rm{p-no-op-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-no-op-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-addr}}) $\rightarrow$ {\rm{p-add-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-add-addr-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-addr}}) $\rightarrow$ {\rm{p-sub-addr-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-sub-addr-okp}))\-\-
\end{tabbing}

\begin{verbatim}; The only problem with these backchainers is that we don't know that the
; above cases are exhaustive.  That is, suppose the current instruction
; is none of the above.  Then p-ins-okp is false.  We need to know that.
; The most natural expression of this fact is that if the instruction
; is not call and not ret and, etc., then p-ins-okp is false.  But that
; is an inefficient way to hang it, because every time we see p-ins-okp
; we'll try to show the instruction is none of the above and most of the time
; it will be one of the ones listed half-way through the list.  So we'll
; hang it on one of the instructions!  It reads: if p-ins-okp is true
; and the instruction is not call, not ret, etc., then the instruction
; is 'not-bool, except we split it into two lemmas.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-ins-okp-exhausted \\ \index{p-ins-okp-exhausted}
\=\+(\=\+{\rm{p-ins-okp}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub-addr}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-ins-okp2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-okp2-exhausted \\ \index{p-ins-okp2-exhausted}
\=\+(\=\+{\rm{p-ins-okp2}}\,({\it{ins\/}}, {\it{p\/}})\index{p-ins-okp2} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{and-bool}}))\- \\ 
$\rightarrow$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bool}}) $=$ {\bf{t}})\-
\end{tabbing}

\begin{verbatim}; We will package the owc lemmas for each instruction into two lemmas
; about p-ins-okp v. r-ins-okp and p-ins-step v. r-ins-step.  Then we will
; put those together to get a p-step v. r-step lemma.

; Look at p-ins-okp-implies-r-ins-okp below.  We will let the r-ins-okp
; drive the case analysis, by enabling it during the proof.  It will
; open into an if, carrying the (p->r p) down into the maw of each of
; the n r-xxx-okps, each  governed by a hyp on the car of the current
; instruction.  When (r-xxx-okp (p-current-instruction p) (p->r p)) is
; formed, it will fire the p-xxx-okp-implies-r-xxx-okp lemma.  That will
; back chain to p-xxx-okp, under the hyp about the current instruction
; being 'xxx, and that will backchain into p-ins-okp by the lemma above.
; Every single case will be proved by appeal to one of our lemmas and
; all that will be left is proving that the case analysis done by r-ins-okp
; exhausts p-ins-okp.  But we already have that.  So one rewrite will
; prove the theorem.

; Of course, we want the following disabled:

\end{verbatim}
\noindent{\sc Event}:   Disable p-$>$r.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-statep-restructuring.

\addvspace{18pt}

\begin{verbatim}; And we need to split the proof into two manageable sized steps.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-r-ins-okp2 \\ \index{p-r-ins-okp2}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp2})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-ins-okp2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-ins-okp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-r-ins-okp \\ \index{p-r-ins-okp}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-ins-okp}\-
\end{tabbing}

\begin{verbatim}; Now we move on to the p v. r ins-step case.

; Now consider p-r-ins-step-owc below.  We will let both the p-ins-step
; and the r-ins-step expand.  They both go to ghastly if expressions.
; With the following lemma we will bring the p-ins-step's ifs out of p->r:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-$>$r-if \\ \index{p-$>$r-if}
\=\+{\rm{p-$>$r}}\,(\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-)\index{p-$>$r} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{p-$>$r}}\,({\it{b\/}})\index{p-$>$r} \\ 
{\bf else }{\rm{p-$>$r}}\,({\it{c\/}})\index{p-$>$r}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; So now the r-equal has two if nests as its args.  If we let the theorem
; prover handle things it would cross multiply them.  But there is a simpler
; way because the two nests have identical tests in the same order.  So
; we can use:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-if \\ \index{r-equal-if}
\=\+{\rm{r-equal}}\,(\=\+\=\+{\bf if }{\it{op\/}}$\;\;${\bf then }{\it{r1\/}} \\ 
{\bf else }{\it{r2\/}}$\;${\bf  endif}\-, \\ 
\=\+{\bf if }{\it{op\/}}$\;\;${\bf then }{\it{r3\/}} \\ 
{\bf else }{\it{r4\/}}$\;${\bf  endif}\-)\-\index{r-equal} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{op\/}}$\;\;${\bf then }{\rm{r-equal}}\,({\it{r1\/}}, {\it{r3\/}})\index{r-equal} \\ 
{\bf else }{\rm{r-equal}}\,({\it{r2\/}}, {\it{r4\/}})\index{r-equal}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Since r2 and r4 are themselves ifs, this will just drive on down.  At the
; bottom we will need:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  stk-equal-reflexive \\ \index{stk-equal-reflexive}
{\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment\/}}, {\it{segment\/}})\index{stk-equal}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-reflexive \\ \index{r-equal-reflexive}
{\rm{r-statep}}\,({\it{r\/}})\index{r-statep} $\rightarrow$ {\rm{r-equal}}\,({\it{r\/}}, {\it{r\/}})\index{r-equal}
\end{tabbing}

\begin{verbatim}; Each of the branches of this new if will be an r-equality between 
; (p->r (p-xxx-step ...)) and (r-xxx-step ... (p->r p)), governed by
; the hyp that the instruction is 'xxx.  That will fire our individual
; one way correspondence lemmas and backchain to (p-xxx-okp ...), which
; we'll get, as above, from the p-ins-okp.

; So once again, under these rules, the following theorem rewrites to
; T in one pass:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-r-ins-step2-owc \\ \index{p-r-ins-step2-owc}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp2})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-ins-step2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step2})\index{p-$>$r}, \\ 
{\rm{r-ins-step2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-ins-step2})\-\index{r-equal}\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-ins-step2.

\addvspace{18pt}

\noindent{\sc Event}:   Disable r-ins-step2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-r-ins-step-owc \\ \index{p-r-ins-step-owc}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{p-$>$r}}\,({\rm{p-ins-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step})\index{p-$>$r}, \\ 
{\rm{r-ins-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-ins-step})\-\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; We now package the p-r-ins-okp and p-r-ins-step pair into p-r-step:

; We need to know a few things about the psw to get through r-step properly.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-psw-p-$>$r \\ \index{r-psw-p-$>$r}
{\rm{r-psw}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-psw} $=$ {\rm{p-psw}}\,({\it{p\/}})\index{p-psw}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  step-one-way-correspondence-p-r \\ \index{step-one-way-correspondence-p-r}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,({\rm{p-$>$r}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-$>$r}, {\rm{r-step}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-step})\index{r-equal}\-
\end{tabbing}

\begin{verbatim}; So that completes the packaging of the owc lemmas.  Now we move on to
; the packaging of the proper-p-statep preservation lemmas.

; Recall that we proved the lemmas about ur-proper-p-statep.  So we
; take it in two steps.  First we gather all the lemmas into a single
; stepper concluding with ur-proper-p-statep.  Then we expose the true
; identity of ur-proper-p-statep.  As above, we deal first with p-ins-step.

; The strategy is to let p-ins-step open, bring the ifs through
; ur-proper-p-statep, and then hit each branch with the preservation
; lemma for the governing case.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  ur-proper-p-statep-if \\ \index{ur-proper-p-statep-if}
\=\+{\rm{ur-proper-p-statep}}\,(\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-)\index{ur-proper-p-statep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{ur-proper-p-statep}}\,({\it{b\/}})\index{ur-proper-p-statep} \\ 
{\bf else }{\rm{ur-proper-p-statep}}\,({\it{c\/}})\index{ur-proper-p-statep}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-step2-preserves-ur-proper-p-statep \\ \index{p-ins-step2-preserves-ur-proper!-p-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp2} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-ins-step2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step2})\index{ur-proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-step-preserves-ur-proper-p-statep \\ \index{p-ins-step-preserves-ur-proper-p!-statep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{ur-proper-p-statep}}\,({\rm{p-ins-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step})\index{ur-proper-p-statep}\-
\end{tabbing}
           
\begin{verbatim}; Now we show the true identity of ur-proper-p-statep.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-ins-step-preserves-proper-p-statep \\ \index{p-ins-step-preserves-proper-p-st!atep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p-ins-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step})\index{proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; And now we package it up to the p-step level:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-step-preserves-proper-p-statep \\ \index{p-step-preserves-proper-p-statep}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; And that completes the packaging of the proper-p-statep preservation.

; Finally, we prove the preservation of r-equality by r-step.

; This whole exercise would be simpler if we did two things.
; (1) in all of the lemmas of the form r-equal-implies-equal-r-xxx-okp
; replace the concluding (equal lhs rhs) with (equal (equal lhs rhs) t).
; (2) in all of the lemmas r-xxx-step-preserves-r-equal, replace
; the (r-xxx-okp ... r2) hyp by (r-xxx-okp ... r1).  Then my
; concern about r-equal-reflexivity can be forgotten.  !!! except
; in the r-step lemma below -- the r-ins-okp lemma below must still
; be (equal lhs rhs) and so reflexivity must be disabled when 
; I use that lemma.


; We need a backchainer for r-ins-okp analogous to that used for p-ins-okp 
; above:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-ins-okp2-backchainer \\ \index{r-ins-okp2-backchainer}
\=\+{\rm{r-ins-okp2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp2} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{eq}}) $\rightarrow$ {\rm{r-eq-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-eq-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-addr}}) $\rightarrow$ {\rm{r-lt-addr-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-addr-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{fetch}}) $\rightarrow$ {\rm{r-fetch-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-fetch-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{deposit}}) $\rightarrow$ {\rm{r-deposit-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-deposit-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-int}}) $\rightarrow$ {\rm{r-add-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-int-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add1-int}}) $\rightarrow$ {\rm{r-add1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-int}}) $\rightarrow$ {\rm{r-sub-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-int-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub1-int}}) $\rightarrow$ {\rm{r-sub1-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{neg-int}}) $\rightarrow$ {\rm{r-neg-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-neg-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-int}}) $\rightarrow$ {\rm{r-lt-int-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-int-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{int-to-nat}}) $\rightarrow$ {\rm{r-int-to-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-int-to-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-nat}}) $\rightarrow$ {\rm{r-add-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add-nat-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{add1-nat}}) $\rightarrow$ {\rm{r-add1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-add1-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-nat}}) $\rightarrow$ {\rm{r-sub-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub-nat-with-carry-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{sub1-nat}}) $\rightarrow$ {\rm{r-sub1-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-sub1-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lt-nat}}) $\rightarrow$ {\rm{r-lt-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lt-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{mult2-nat}}) $\rightarrow$ {\rm{r-mult2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{div2-nat}}) $\rightarrow$ {\rm{r-div2-nat-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-div2-nat-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{or-bitv}}) $\rightarrow$ {\rm{r-or-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{and-bitv}}) $\rightarrow$ {\rm{r-and-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bitv}}) $\rightarrow$ {\rm{r-not-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{xor-bitv}}) $\rightarrow$ {\rm{r-xor-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-xor-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{rsh-bitv}}) $\rightarrow$ {\rm{r-rsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-rsh-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{lsh-bitv}}) $\rightarrow$ {\rm{r-lsh-bitv-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-lsh-bitv-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{or-bool}}) $\rightarrow$ {\rm{r-or-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-or-bool-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{and-bool}}) $\rightarrow$ {\rm{r-and-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-and-bool-okp}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{not-bool}}) $\rightarrow$ {\rm{r-not-bool-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-not-bool-okp}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable r-ins-okp2.

\addvspace{18pt}


\noindent{\sc Event}:   Enable r-ins-okp-backchainer.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  r-ins-okp-exhausted \\ \index{r-ins-okp-exhausted}
\=\+(\=\+{\rm{r-ins-okp}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{ins\/}}) $\not=$ {\tt{'}}{\tt{sub-addr}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-ins-okp2}}\,({\it{ins\/}}, {\it{r\/}})\index{r-ins-okp2}\-
\end{tabbing}

\begin{verbatim}; Now we'll prove that r-equal implies r-ins-okp is indifferent to
; which state it gets.  

; The plan is to let r-ins-okp expand into ifs on both sides of the
; equal and then take them out with:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  equal-if \\ \index{equal-if}
\=\+(\=\+\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{r1\/}} \\ 
{\bf else }{\it{r2\/}}$\;${\bf  endif}\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{r3\/}} \\ 
{\bf else }{\it{r4\/}}$\;${\bf  endif}\-)\- \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{r1\/}} $=$ {\it{r3\/}} \\ 
{\bf else }{\it{r2\/}} $=$ {\it{r4\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; The proof requires some care.  If you leave r-equal-reflexive enabled
; we infinitely rewrite (r-xxx-okp ins r1) to (r-xxx-okp ins r1)
; because we know r1 is r-equal to itself.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-ins-okp2 \\ \index{r-equal-implies-equal-r-ins-okp!2}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-ins-okp2}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ins-okp2} \\ 
$=$$\;\;\;\;${\rm{r-ins-okp2}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ins-okp2})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-equal-implies-equal-r-ins-okp \\ \index{r-equal-implies-equal-r-ins-okp}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ins-okp} \\ 
$=$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ins-okp})\-\-
\end{tabbing}



\begin{verbatim}; Now we do the r-ins-step.

; We'll let r-ins-step open on both sides of the r-equal.  The r-equal-if
; lemma will drive the r-equal through the matching if-nests and we'll
; appeal to our previously proved preservation lemmas.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-ins-step2-preserves-r-equal \\ \index{r-ins-step2-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp2}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ins-okp2} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-ins-step2}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ins-step2}, \\ 
{\rm{r-ins-step2}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ins-step2})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-ins-step-preserves-r-equal \\ \index{r-ins-step-preserves-r-equal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r1\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,(\=\+{\rm{r-ins-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r2\/}})\index{r-ins-step}, \\ 
{\rm{r-ins-step}}\,({\rm{r-current-instruction}}\,({\it{r1\/}})\index{r-current-instruction}, {\it{r1\/}})\index{r-ins-step})\-\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-step-preserves-r-equal \\ \index{r-step-preserves-r-equal}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,({\rm{r-step}}\,({\it{r2\/}})\index{r-step}, {\rm{r-step}}\,({\it{r1\/}})\index{r-step})\index{r-equal}\-
\end{tabbing}
 
\begin{verbatim}; Now we package up the p-loadablep results into a p-step.
; The approach is exactly the same as used above.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-loadablep-if \\ \index{p-loadablep-if}
\=\+{\rm{p-loadablep}}\,(\=\+\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\it{b\/}} \\ 
{\bf else }{\it{c\/}}$\;${\bf  endif}\-, \\ 
{\it{load-addr\/}})\-\index{p-loadablep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{a\/}}$\;\;${\bf then }{\rm{p-loadablep}}\,({\it{b\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
{\bf else }{\rm{p-loadablep}}\,({\it{c\/}}, {\it{load-addr\/}})\index{p-loadablep}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-step2-preserves-p-loadablep \\ \index{p-ins-step2-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp2} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-ins-step2}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step2}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ins-step-preserves-p-loadablep \\ \index{p-ins-step-preserves-p-loadablep}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-ins-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-step-preserves-p-loadablep \\ \index{p-step-preserves-p-loadablep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-loadablep}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step}, {\it{load-addr\/}})\index{p-loadablep}\-
\end{tabbing}

\begin{verbatim};  Now we grab an event from the r-i proofs:

#|
(include-book r-i-book "r-i" t nil)

;  The following status expression has the effect of enabling only
;  proper-r-statep-r-step among all the other things brought in by
;  the above inclusion.  It also disables r-step.

(status r-i-book-status
        (set-difference
         (union (@ *e* p-step-preserves-p-loadablep)
                '(proper-r-statep-r-step))
         '(r-step)))

|#

\end{verbatim}
\noindent{\sc Event}:   Enable proper-r-statep-r-step.

\addvspace{18pt}


\noindent{\sc Event}:   Disable r-step.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  r-preserves-r-equal \\ \index{r-preserves-r-equal}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r1\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\it{r1\/}})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,({\rm{r}}\,({\it{r2\/}}, {\it{n\/}})\index{r}, {\rm{r}}\,({\it{r1\/}}, {\it{n\/}})\index{r})\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  transitivity-of-same-signature \\ \index{transitivity-of-same-signature}
\=\+({\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature} $\wedge$ {\rm{same-signature}}\,({\it{segment2\/}}, {\it{segment3\/}})\index{same-signature}) \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment3\/}})\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  transitivity-of-stk-equal \\ \index{transitivity-of-stk-equal}
\=\+(\=\+{\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment1\/}}, {\it{segment2\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;${\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment2\/}}, {\it{segment3\/}})\index{stk-equal} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment2\/}})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment1\/}})))\index{length})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment3\/}})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\it{sp\/}})\index{untag}), {\it{segment1\/}})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{stk-equal}}\,({\it{sp\/}}, {\it{segment1\/}}, {\it{segment3\/}})\index{stk-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  transitivity-of-r-equal \\ \index{transitivity-of-r-equal}
({\rm{r-equal}}\,({\it{r1\/}}, {\it{r2\/}})\index{r-equal} $\wedge$ {\rm{r-equal}}\,({\it{r2\/}}, {\it{r3\/}})\index{r-equal}) $\rightarrow$ {\rm{r-equal}}\,({\it{r1\/}}, {\it{r3\/}})\index{r-equal}
\end{tabbing}


\begin{verbatim}; We are now headed toward the proof that proper-p-statep maps down via
; p->r to a proper-r-statep.

; Proper temp-var-dcls at the p level implies the corresponding thing
; at the r level:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-temp-var-dclsp-implies-r-temp-var-dclsp \\ \index{proper-p-temp-var-dclsp-implies!-r-temp-var-dclsp}
{\rm{proper-p-temp-var-dclsp}}\,({\it{lst\/}}, {\it{p\/}})\index{proper-p-temp-var-dclsp} $\rightarrow$ {\rm{r-temp-var-dclsp}}\,({\it{lst\/}})\index{r-temp-var-dclsp}
\end{tabbing}

\begin{verbatim}; The surprisingly hard result is that proper programs at the p level
; implies proper programs at the r level.  We start with two
; observations: anything occuring as a label in a properly labeled
; list of instructions is a litatom; and to be a proper instruction at
; the p level means (among many other things) that the car is a piton
; opcode and push-constants satisfy the
; proper-p-push-constant-instructionp predicate.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-implies-litatom-labels \\ \index{proper-labeled-p-instructionsp-i!mplies-litatom-labels}
\=\+({\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} $\wedge$ {\rm{find-labelp}}\,({\it{lab\/}}, {\it{lst\/}})\index{find-labelp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{litatom}}\,({\it{lab\/}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-call-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-ret-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-locn-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-push-constant-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-push-local-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-push-global-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-push-ctrl-stk-free-size-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-push-temp-stk-free-size-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-push-temp-stk-index-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-jump-if-temp-stk-full-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-jump-if-temp-stk-empty-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pop-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pop*-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-popn-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pop-local-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pop-global-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pop-locn-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pop-call-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-fetch-temp-stk-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-deposit-temp-stk-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-jump-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-jump-case-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-pushj-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-popj-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-set-local-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-set-global-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-test-nat-and-jump-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-test-int-and-jump-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-test-bool-and-jump-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-test-bitv-and-jump-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-no-op-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add-addr-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub-addr-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-eq-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-lt-addr-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-fetch-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-deposit-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add-int-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add-int-with-carry-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add1-int-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub-int-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub-int-with-carry-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub1-int-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-neg-int-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-lt-int-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-int-to-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add-nat-with-carry-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-add1-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub-nat-with-carry-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-sub1-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-lt-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-mult2-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-mult2-nat-with-carry-out-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-div2-nat-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-or-bitv-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-and-bitv-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-not-bitv-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-xor-bitv-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-rsh-bitv-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-lsh-bitv-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-or-bool-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-and-bool-instructionp.

\addvspace{18pt}

\noindent{\sc Event}:   Disable proper-p-not-bool-instructionp.

\addvspace{18pt}

\begin{verbatim}; We split proper-p-instructionp into two parts, as usual with our
; big switches.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{proper-p-instructionp2} \\  
\=\+{\rm{proper-p-instructionp2}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp2} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{eq\/}} \\ 
{\bf then }{\rm{proper-p-eq-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-eq-instructionp} \\ 
{\bf case = }{\it{lt-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-addr-instructionp} \\ 
{\bf case = }{\it{fetch\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-fetch-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-instructionp} \\ 
{\bf case = }{\it{deposit\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-deposit-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-instructionp} \\ 
{\bf case = }{\it{add-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-instructionp} \\ 
{\bf case = }{\it{add-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-int-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-int-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{add1-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-int-instructionp} \\ 
{\bf case = }{\it{sub-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-instructionp} \\ 
{\bf case = }{\it{sub-int-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-int-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-int-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{sub1-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub1-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-int-instructionp} \\ 
{\bf case = }{\it{neg-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-neg-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-neg-int-instructionp} \\ 
{\bf case = }{\it{lt-int\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-int-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-int-instructionp} \\ 
{\bf case = }{\it{int-to-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-int-to-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-int-to-nat-instructionp} \\ 
{\bf case = }{\it{add-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-instructionp} \\ 
{\bf case = }{\it{add-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-nat-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-nat-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{add1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add1-nat-instructionp} \\ 
{\bf case = }{\it{sub-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-instructionp} \\ 
{\bf case = }{\it{sub-nat-with-carry\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-nat-with-carry-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-nat-with-carry-inst!ructionp} \\ 
{\bf case = }{\it{sub1-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub1-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub1-nat-instructionp} \\ 
{\bf case = }{\it{lt-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lt-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lt-nat-instructionp} \\ 
{\bf case = }{\it{mult2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-mult2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-mult2-nat-instructionp} \\ 
{\bf case = }{\it{mult2-nat-with-carry-out\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-mult2-nat-with-carry-out-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-mult2-nat-with-carry-o!ut-instructionp} \\ 
{\bf case = }{\it{div2-nat\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-div2-nat-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-div2-nat-instructionp} \\ 
{\bf case = }{\it{or-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-or-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bitv-instructionp} \\ 
{\bf case = }{\it{and-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-and-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bitv-instructionp} \\ 
{\bf case = }{\it{not-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-not-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bitv-instructionp} \\ 
{\bf case = }{\it{xor-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-xor-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-xor-bitv-instructionp} \\ 
{\bf case = }{\it{rsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-rsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-rsh-bitv-instructionp} \\ 
{\bf case = }{\it{lsh-bitv\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-lsh-bitv-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-lsh-bitv-instructionp} \\ 
{\bf case = }{\it{or-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-or-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-or-bool-instructionp} \\ 
{\bf case = }{\it{and-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-and-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-and-bool-instructionp} \\ 
{\bf case = }{\it{not-bool\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-not-bool-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-not-bool-instructionp} \\ 
{\bf otherwise }{\bf{f}}$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{proper-p-instructionp1} \\  
\=\+{\rm{proper-p-instructionp1}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{properp}}\,({\it{ins\/}})\index{properp} \\ 
$\wedge$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\it{ins\/}}): \\ 
{\bf case = }{\it{call\/}} \\ 
{\bf then }{\rm{proper-p-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-call-instructionp} \\ 
{\bf case = }{\it{ret\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-ret-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-ret-instructionp} \\ 
{\bf case = }{\it{locn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-locn-instructionp} \\ 
{\bf case = }{\it{push-constant\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-constant-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-constant-instructi!onp} \\ 
{\bf case = }{\it{push-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-local-instructionp} \\ 
{\bf case = }{\it{push-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-global-instructio!np} \\ 
{\bf case = }{\it{push-ctrl-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-ctrl-stk-free-size-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-ctrl-stk-free-size!-instructionp} \\ 
{\bf case = }{\it{push-temp-stk-free-size\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-temp-stk-free-size-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-temp-stk-free-size!-instructionp} \\ 
{\bf case = }{\it{push-temp-stk-index\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-push-temp-stk-index-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-temp-stk-index-in!structionp} \\ 
{\bf case = }{\it{jump-if-temp-stk-full\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-if-temp-stk-full-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-if-temp-stk-full-i!nstructionp} \\ 
{\bf case = }{\it{jump-if-temp-stk-empty\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-if-temp-stk-empty-instructionp}}\,(\=\+{\it{ins\/}}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-jump-if-temp-stk-empty!-instructionp} \\ 
{\bf case = }{\it{pop\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-instructionp} \\ 
{\bf case = }{\it{pop*\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop*-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop*-instructionp} \\ 
{\bf case = }{\it{popn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-popn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popn-instructionp} \\ 
{\bf case = }{\it{pop-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-local-instructionp} \\ 
{\bf case = }{\it{pop-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-global-instructionp} \\ 
{\bf case = }{\it{pop-locn\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-locn-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-locn-instructionp} \\ 
{\bf case = }{\it{pop-call\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pop-call-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pop-call-instructionp} \\ 
{\bf case = }{\it{fetch-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-fetch-temp-stk-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-fetch-temp-stk-instructi!onp} \\ 
{\bf case = }{\it{deposit-temp-stk\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-deposit-temp-stk-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-deposit-temp-stk-instr!uctionp} \\ 
{\bf case = }{\it{jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-instructionp} \\ 
{\bf case = }{\it{jump-case\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-jump-case-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-jump-case-instructionp} \\ 
{\bf case = }{\it{pushj\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-pushj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-pushj-instructionp} \\ 
{\bf case = }{\it{popj\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-popj-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-popj-instructionp} \\ 
{\bf case = }{\it{set-local\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-set-local-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-local-instructionp} \\ 
{\bf case = }{\it{set-global\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-set-global-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-set-global-instructionp} \\ 
{\bf case = }{\it{test-nat-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-nat-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-nat-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-int-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-int-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-int-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-bool-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-bool-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-bool-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{test-bitv-and-jump\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-test-bitv-and-jump-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-test-bitv-and-jump-inst!ructionp} \\ 
{\bf case = }{\it{no-op\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-no-op-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-no-op-instructionp} \\ 
{\bf case = }{\it{add-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-add-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-add-addr-instructionp} \\ 
{\bf case = }{\it{sub-addr\/}} \\ 
{\bf $\;\;$then }{\rm{proper-p-sub-addr-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-sub-addr-instructionp} \\ 
{\bf otherwise }{\rm{proper-p-instructionp2}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp2}$\;${\bf  endcase}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-is-proper-p-instructionp1 \\ \index{proper-p-instructionp-is-proper!-p-instructionp1}
{\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} $=$ {\rm{proper-p-instructionp1}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp1}
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-instructionp-is-proper-p-instructionp1.

\addvspace{18pt}

\begin{verbatim}; The following theorem is the proper-p-instructionp2 analogoue of the
; next theorem, except that piton-opcodes has been expanded since
; I am using this as a rewrite rule.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-instructionp2-implies-member-piton-opcodes \\ \index{proper-p-instructionp2-implies-!member-piton-opcodes}
\=\+{\rm{proper-p-instructionp2}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp2} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{car}}\,({\it{ins\/}}) \\ 
$\in$$\;\;\;\;${\tt{'}}{\tt{(}}\=\+{\tt{call}}{\tt{ }}{\tt{ret}}{\tt{ }}{\tt{locn}}{\tt{ }}{\tt{push-constant}}{\tt{ }}{\tt{push-local}} \\ 
{\tt{push-global}}{\tt{ }}{\tt{push-ctrl-stk-free-size}} \\ 
{\tt{push-temp-stk-free-size}}{\tt{ }}{\tt{push-temp-stk-index}} \\ 
{\tt{jump-if-temp-stk-full}}{\tt{ }}{\tt{jump-if-temp-stk-empty}} \\ 
{\tt{pop}}{\tt{ }}{\tt{pop*}}{\tt{ }}{\tt{popn}}{\tt{ }}{\tt{pop-local}}{\tt{ }}{\tt{pop-global}}{\tt{ }}{\tt{pop-locn}} \\ 
{\tt{pop-call}}{\tt{ }}{\tt{fetch-temp-stk}}{\tt{ }}{\tt{deposit-temp-stk}}{\tt{ }}{\tt{jump}} \\ 
{\tt{jump-case}}{\tt{ }}{\tt{pushj}}{\tt{ }}{\tt{popj}}{\tt{ }}{\tt{set-local}}{\tt{ }}{\tt{set-global}} \\ 
{\tt{test-nat-and-jump}}{\tt{ }}{\tt{test-int-and-jump}} \\ 
{\tt{test-bool-and-jump}}{\tt{ }}{\tt{test-bitv-and-jump}}{\tt{ }}{\tt{no-op}} \\ 
{\tt{add-addr}}{\tt{ }}{\tt{sub-addr}}{\tt{ }}{\tt{eq}}{\tt{ }}{\tt{lt-addr}}{\tt{ }}{\tt{fetch}}{\tt{ }}{\tt{deposit}} \\ 
{\tt{add-int}}{\tt{ }}{\tt{add-int-with-carry}}{\tt{ }}{\tt{add1-int}}{\tt{ }}{\tt{sub-int}} \\ 
{\tt{sub-int-with-carry}}{\tt{ }}{\tt{sub1-int}}{\tt{ }}{\tt{neg-int}}{\tt{ }}{\tt{lt-int}} \\ 
{\tt{int-to-nat}}{\tt{ }}{\tt{add-nat}}{\tt{ }}{\tt{add-nat-with-carry}}{\tt{ }}{\tt{add1-nat}} \\ 
{\tt{sub-nat}}{\tt{ }}{\tt{sub-nat-with-carry}}{\tt{ }}{\tt{sub1-nat}}{\tt{ }}{\tt{lt-nat}} \\ 
{\tt{mult2-nat}}{\tt{ }}{\tt{mult2-nat-with-carry-out}}{\tt{ }}{\tt{div2-nat}} \\ 
{\tt{or-bitv}}{\tt{ }}{\tt{and-bitv}}{\tt{ }}{\tt{not-bitv}}{\tt{ }}{\tt{xor-bitv}}{\tt{ }}{\tt{rsh-bitv}} \\ 
{\tt{lsh-bitv}}{\tt{ }}{\tt{or-bool}}{\tt{ }}{\tt{and-bool}}{\tt{ }}{\tt{not-bool}}{\tt{)}}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-push-constant-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-constant-instructi!onp})\-)\-\-
\end{tabbing} 


\noindent{\sc Event}:   Disable proper-p-instructionp2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-implies-member-piton-opcodes \\ \index{proper-p-instructionp-implies-me!mber-piton-opcodes}
\=\+{\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $\in$ {\sc{piton-opcodes}}\index{piton-opcodes}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{ins\/}}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-push-constant-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-push-constant-instructi!onp})\-)\-\-
\end{tabbing}

\begin{verbatim}; The push-constant predicate checks that the constant is (possibly)
; a p-object.  The r level makes sure it is not a fake dl.  We need
; to know p-objects aren't dls:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-implies-not-dl \\ \index{p-objectp-implies-not-dl}
{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} $\rightarrow$ ({\rm{car}}\,({\it{x\/}}) $\not=$ {\tt{'}}{\tt{dl}})
\end{tabbing}

\begin{verbatim}; Any program defined within a proper-p-prog-segmentp has a properly
; labelled body:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-contains-proper-labeled-p-instructionsp \\ \index{proper-p-prog-segmentp-contains!-proper-labeled-p-instructionsp}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ {\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}}))\index{program-body}, \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{verbatim}; So, if you have a proper list of instructions at the p level then
; it is proper at the r level, provided the name is defined within
; a proper-p-prog-segmentp.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-implies-r-instructionp \\ \index{proper-p-instructionp-implies-r!-instructionp}
\=\+(\=\+{\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-instructionp}}\,({\it{ins\/}})\index{r-instructionp}\-
\end{tabbing}

\begin{verbatim}; Consequently, a properly labelled sequence of instructions at the p
; level is a proper sequence at the r level -- this is just an induction
; applying the lemma above.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-implies-r-program-bodyp \\ \index{proper-labeled-p-instructionsp-i!mplies-r-program-bodyp}
\=\+(\=\+{\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-program-bodyp}}\,({\it{lst\/}})\index{r-program-bodyp}\-
\end{tabbing}

\begin{verbatim}; So a proper p prog-segment is a proper r prog-segment.  But it is
; pretty tricky to state a general enough lemma.  The trouble is that we
; need to induct on the segment while holding the state and its prog-segment
; fixed.  We need the auxiliary concept that every name in one segment
; is defined in the state's:

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{all-names-definedp} \\  
\=\+{\rm{all-names-definedp}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{all-names-definedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{segment1\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+{\rm{definedp}}\,({\rm{name}}\,({\rm{car}}\,({\it{segment1\/}}))\index{name}, {\it{segment2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{all-names-definedp}}\,({\rm{cdr}}\,({\it{segment1\/}}), {\it{segment2\/}})\index{all-names-definedp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim}; Now we can state the essence of the theorem:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-implies-r-prog-segmentp-generalized \\ \index{proper-p-prog-segmentp-implies-!r-prog-segmentp-generalized}
\=\+(\=\+{\rm{proper-p-prog-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{all-names-definedp}}\,({\it{segment\/}}, {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{all-names-definedp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-prog-segmentp}}\,({\it{segment\/}})\index{r-prog-segmentp}\-
\end{tabbing}

\begin{verbatim}; But of course,

\end{verbatim}\begin{tabbing}{\sc Theorem}:  all-names-definedp-cdr \\ \index{all-names-definedp-cdr}
{\rm{all-names-definedp}}\,({\it{x\/}}, {\rm{cdr}}\,({\it{y\/}}))\index{all-names-definedp} $\rightarrow$ {\rm{all-names-definedp}}\,({\it{x\/}}, {\it{y\/}})\index{all-names-definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-names-definedp-reflexive \\ \index{all-names-definedp-reflexive}
{\rm{all-names-definedp}}\,({\it{segment\/}}, {\it{segment\/}})\index{all-names-definedp}
\end{tabbing}

\begin{verbatim}; And so we can instantiate the lemma above,
; proper-p-prog-segmentp-implies-r-prog-segmentp-generalized, with
; segment replaced by (p-prog-segment p) and collapse the hyps to get:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-implies-r-prog-segmentp \\ \index{proper-p-prog-segmentp-implies-!r-prog-segmentp}
\=\+{\rm{proper-p-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\rightarrow$$\;\;\;\;${\rm{r-prog-segmentp}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{r-prog-segmentp}\-
\end{tabbing}

\begin{verbatim}; Whew!  The delicacy of that proof really surprised me.

; So, now we move on the next part of the proper-r-statep predicate,
; the consideration of the usr-data-segment.

; The core of course is just showing that p-objects are 
; r-usr-data-objects.  Then we lift it up through several layers
; of recursion.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-objectp-implies-r-usr-data-typep \\ \index{p-objectp-implies-r-usr-data-typep}
{\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} $\rightarrow$ {\rm{r-usr-data-typep}}\,({\rm{type}}\,({\it{x\/}})\index{type})\index{r-usr-data-typep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-implies-r-usr-data-objectp \\ \index{p-objectp-implies-r-usr-data-ob!jectp}
\=\+({\rm{p-objectp}}\,({\it{x\/}}, {\it{p\/}})\index{p-objectp} $\wedge$ {\rm{same-signature}}\,({\it{r-usr-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature}) \\ 
$\rightarrow$$\;\;\;\;${\rm{r-usr-data-objectp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{r-usr-data-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-implies-all-r-usr-data-objectps \\ \index{all-p-objectps-implies-all-r-us!r-data-objectps}
\=\+(\=\+{\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{r-usr-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-r-usr-data-objectps}}\,(\=\+{\it{lst\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{all-r-usr-data-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-implies-proper-r-usr-data-segmentp \\ \index{proper-p-data-segmentp-implies-p!roper-r-usr-data-segmentp}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{segment\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{r-usr-data-segment\/}}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-usr-data-segmentp}}\,(\=\+{\it{segment\/}}, \\ 
{\rm{r-state}}\,(\=\+{\it{r-pc\/}}, \\ 
{\it{r-cfp\/}}, \\ 
{\it{r-csp\/}}, \\ 
{\it{r-tsp\/}}, \\ 
{\it{r-x\/}}, \\ 
{\it{r-y\/}}, \\ 
{\it{r-c-flg\/}}, \\ 
{\it{r-v-flg\/}}, \\ 
{\it{r-n-flg\/}}, \\ 
{\it{r-z-flg\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}, \\ 
{\it{r-usr-data-segment\/}}, \\ 
{\it{r-sys-data-segment\/}}, \\ 
{\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}, \\ 
{\it{r-psw\/}})\-\index{r-state})\-\index{proper-r-usr-data-segmentp}\-
\end{tabbing}


\begin{verbatim}; That completes the data segment work.  Finally, we consider the question
; of loadability.

; The need for the second and third hypotheses surprised me. The size
; of the mapped down stacks is as expected only if the p level stacks
; are sufficiently small.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-loadablep-implies-r-loadablep \\ \index{p-loadablep-implies-r-loadablep}
\=\+(\=\+{\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $\not<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{icompile}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{icompile})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment})\index{segment-length})\- \\ 
$<$$\;\;\;\;${\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\index{exp})\-\-
\end{tabbing}

\begin{verbatim}; So, here we are at what we wanted:  proper states map
; down from p to r.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-proper-r-statep \\ \index{proper-p-statep-implies-proper-!r-statep}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ {\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-r-statep}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r}, {\it{load-addr\/}})\index{proper-r-statep}\-
\end{tabbing}

\begin{verbatim}; So we can now complete the p-r level proof by just observing the
; usual things about the treatment of errors.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  once-errorp-always-errorp-step\{special\} \\ \index{once-errorp-always-errorp-step\{special\}}
($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-psw})\index{errorp}) $\rightarrow$ ($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\it{p\/}})\index{p-psw})\index{errorp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  once-errorp-always-errorp\{special\} \\ \index{once-errorp-always-errorp\{special\}}
($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp}) $\rightarrow$ ($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\it{p\/}})\index{p-psw})\index{errorp})
\end{tabbing}

\begin{verbatim}; The following lemma wasn't necessary until I added load-addr.  Its
; only purpose is to solve a free-var problem in r-preserves-r-equal.
; Essentially it is just that lemma except we've gone ahead and
; backchained up to (p-loadablep p load-addr) so that the
; instantiation of load-addr can be found in
; one-way-correspondence-p-r immediately below.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-preserves-r-equal-bridge \\ \index{r-preserves-r-equal-bridge}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r2\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-equal}}\,({\it{r2\/}}, {\rm{r-step}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-step})\index{r-equal})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,({\rm{r}}\,({\it{r2\/}}, {\it{n\/}})\index{r}, {\rm{r}}\,({\rm{r-step}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-step}, {\it{n\/}})\index{r})\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  one-way-correspondence-p-r \\ \index{one-way-correspondence-p-r}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{r-equal}}\,({\rm{p-$>$r}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-$>$r}, {\rm{r}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r}, {\it{n\/}})\index{r})\index{r-equal}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-preserves-proper-p-statep \\ \index{p-preserves-proper-p-statep}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{proper-p-statep}\-
\end{tabbing}

\begin{verbatim}; Book: prim.events (sort of).  This section contains an informal
; sketch of how all of the foregoing are put together into the final
; result.

; In the FM8502 script this informal sketch was followed by its
; formalization: we were virtually done at this point.  This section
; began as prim.events which just imported the names enabled below,
; proved a few little helpers, and then combined the results to get
; the map from P down to FM8502.  But when we tried to do that for
; FM9001 we learned that to get the map up from FM9001 to M we needed
; a constraint on the link tables having to do with the size of the
; physical memory.  (In the first effort to move Piton to FM9001 we
; proved the map down and just left the map up for this section,
; thinking it would be simple.  When we discovered the problem, we
; defined the constraint (PLAUSIBLE-DATA-LINK-TABLEP) in the section
; on m to FM9001 and we proved that it was sufficient to get the map
; up, but we did not show that the plausibility condition was
; satisfied.  We left that for here because its satisfaction is tied
; up with the notion of same-signature, which was not available at the
; time we defined plausibility.)

; So this section of the script begins the final assault on the proof
; but then has a long "digression" were we show how to get the
; plausibility condition.

\end{verbatim}
\noindent{\sc Event}:   Set the status of all events.  The status of each event is to be set as follows.  Each `boot-strap' satellite is to be returned to the initial condition.  Each `add-shell' satellite is to be enabled.  Each `*1* function' is to be enabled.  disabled.  Anything not otherwise mentioned is to be disabled.   Name this event `close-data-base-5'.\index{close-data-base-5}

\addvspace{18pt}


\noindent{\sc Event}:   Enable theory (proper-p-statep-implies-proper-r-statep proper-r-statep-implies-proper-i-user-data-segmentp proper-r-statep-r proper-r-statep-r-step proper-r-statep-implies-i-state-okp-r->i display-fm9001-data-segment-m->fm9001 display-m-data-segment-inverts-i->m i-link-tables-i i-state-okp-i-ins-step){proper-p-statep-implies-proper-r-statep, proper-r-statep-implies-proper-i-user-data-segmentp, proper-r-statep-r, proper-r-statep-r-step, proper-r-statep-implies-i-state-okp-r-$>$i, display-fm9001-data-segment-m-$>$fm9001, display-m-data-segment-inverts-i-$>$m, i-link-tables-i, i-state-okp-i-ins-step}.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  fm9001-m-owc \\ \index{fm9001-m-owc}
{\rm{proper-m-statep}}\,({\it{m\/}})\index{proper-m-statep} $\rightarrow$ ({\rm{fm9001}}\,({\rm{m-$>$fm9001}}\,({\it{m\/}})\index{m-$>$fm9001}, {\it{n\/}})\index{fm9001} $=$ {\rm{m-$>$fm9001}}\,({\rm{m}}\,({\it{m\/}}, {\it{n\/}})\index{m})\index{m-$>$fm9001})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-m-owc \\ \index{i-m-owc}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{i-psw}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i})\index{i-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{m}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m}, {\it{n\/}})\index{m} \\ 
$=$$\;\;\;\;${\rm{i-$>$m}}\,({\rm{i}}\,({\it{i\/}}, {\it{n\/}}, {\it{load-addr\/}})\index{i}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\-\-
\end{tabbing}

\begin{verbatim}; (This one was oriented the other way.)

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-i-owc \\ \index{r-i-owc}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{i}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\rm{clock}}\,({\it{r\/}}, {\it{n\/}})\index{clock}, {\it{load-addr\/}})\index{i} $=$ {\rm{r-$>$i}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-$>$i})\-
\end{tabbing}

\begin{verbatim}; (This one was oriented the other way.)

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-r-owc-corrolary \\ \index{p-r-owc-corrolary}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{r-psw}}\,({\rm{r}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r}, {\it{n\/}})\index{r})\index{r-psw} $=$ {\rm{p-psw}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-psw}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-usr-data-segment}}\,({\rm{r}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r}, {\it{n\/}})\index{r})\index{r-usr-data-segment} $=$ {\rm{p-data-segment}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-data-segment}))\-\-
\end{tabbing}

\begin{verbatim}; (This one was packaged up with R-EQUAL and now we are just interested
; in the equality of the psw and data segment components.)

; The three owc theorems have hypotheses about word-size, proper states,
; and psws.  The proper states hyps are all obtainable from the
; proper-p-statep in the top goal and the previously noted theorem
; that proper-p-statep implies proper-r-statep of p->r and the corresponding
; relation down to the i-level by r->i.  However, the lemma that we
; can get from proper r states to proper i states is not a REWRITE
; rule and so we package it up now:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-i-state-okp-r-$>$i-rewrite \\ \index{proper-r-statep-implies-i-state!-okp-r-$>$i-rewrite}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\it{r\/}})\index{r-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{i-state-okp}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\it{load-addr\/}})\index{i-state-okp}\-
\end{tabbing}

\begin{verbatim}; The main theorem contains the hypothesis that the word size at the p-level
; is 32.  But our i-m-owc requires that the word size at the i level be 32.
; Clearly we need to know that the word size is the same all the way down:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-word-size-r-$>$i \\ \index{i-word-size-r-$>$i}
{\rm{i-word-size}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{i-word-size} $=$ {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-word-size-p-$>$r \\ \index{r-word-size-p-$>$r}
{\rm{r-word-size}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-word-size} $=$ {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}
\end{tabbing}

\begin{verbatim}; Similarly, the main theorem gives us that the final p-psw is not an errorp.
; But the i-m-owc requires that the final i-psw is 'run.  The corrollary to
; the p-r-owc gives us that the r-psw is not an error.  So it suffices to
; observe

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-psw-r-$>$i \\ \index{i-psw-r-$>$i}
($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\it{r\/}})\index{r-psw})\index{errorp}) $\rightarrow$ ({\rm{i-psw}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{i-psw} $=$ {\tt{'}}{\tt{run}})
\end{tabbing}

\begin{verbatim}; That completes the preliminaries.  We will use the three owcs without
; further attention to their hyps.  We now give the proof of the top goal.

; Note:  The following comments are from the FM8502 proof.  But all of this
; still holds except that we now have one more mapping function, M->FM9001,
; after i->m.

; Consider the display-m-data-segment expression in the top goal:

; (display-m-data-segment (fm8502 (i->m (r->i (p->r p0)) boot-lst load-addr) ...) ...)

; By the equivalence of m and fm8502, this becomes

; (display-m-data-segment (m (i->m (r->i (p->r p0)) boot-lst load-addr) ...) ...).

; Then, by i-m-owc, the i->m is brought outside the m to produce:

; (display-m-data-segment (i->m (i (r->i (p->r p0)) n load-addr) boot-lst load-addr) ...).

; Then, by r-i-owc, the r->i is brought outside the i:

; (display-m-data-segment (i->m (r->i (r (p->r p0) n)) boot-lst load-addr)
;                         (type-specification (p-data-segment (p p0 n)))
;                         (link-tables p0 load-addr))

; In addition, link-tables expands and we get:

; (display-m-data-segment (i->m (r->i (r (p->r p0) n)) boot-lst load-addr)
;                         (type-specification (p-data-segment (p p0 n)))
;                         (i-link-tables (r->i (p->r p0)) load-addr))

; We wish that would match the left-hand side of the conclusion of
; display-m-data-segment-inverts-i->m, said conclusion being:

; (equal (display-m-data-segment (i->m i boot-lst load-addr)
;                                (type-specification (i-usr-data-segment i))
;                                (i-link-tables i load-addr))
;        (i-usr-data-segment i)))

; But it does not because of the second and third args.

; We therefore build a bridged version of the lemma noted above.  It
; is:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  display-m-data-segment-inverts-i-$>$m-bridge \\ \index{display-m-data-segment-inverts-i!-$>$m-bridge}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment}, {\it{i\/}})\index{proper-i-usr-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{i-state-okp}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-state-okp} \\ 
$\wedge$$\;\;\;\;$({\it{type-spec\/}} $=$ {\rm{type-specification}}\,({\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\index{type-specification}) \\ 
$\wedge$$\;\;\;\;$({\it{link-tables\/}} $=$ {\rm{i-link-tables}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-link-tables}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{display-m-data-segment}}\,(\=\+{\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m}, \\ 
{\it{type-spec\/}}, \\ 
{\it{link-tables\/}})\-\index{display-m-data-segment} \\ 
$=$$\;\;\;\;${\rm{i-usr-data-segment}}\,({\it{i\/}})\index{i-usr-data-segment})\-\-
\end{tabbing}

\begin{verbatim}; Suppose we could relieve the four hyps.   Then the top goal would reduce
; to:

;  (equal (i-usr-data-segment (r->i (r (p->r p0) n)))
;         (p-data-segment (p p0 n))).

; But we know

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-usr-data-segment-r-$>$i \\ \index{i-usr-data-segment-r-$>$i}
{\rm{i-usr-data-segment}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{i-usr-data-segment} $=$ {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}
\end{tabbing}

\begin{verbatim}; So the top goal becomes:

;  (equal (r-usr-data-segment (r (p->r p0) n))
;         (p-data-segment (p p0 n))).

; which t by the corrollary of p-r-owc.

; So it only remains to relieve the hypotheses of the bridged display lemma 
; above.  There are four:

; Hyp1. (proper-i-usr-data-segmentp (i-usr-data-segment i) i)
; Hyp2. (i-state-okp i load-addr)
; Hyp3. (equal type-spec (type-specification (i-usr-data-segment i)))
; Hyp4. (equal link-tables (i-link-tables i load-addr)))

; where i           is   (r->i (r (p->r p0) n))
;       type-spec   is   (type-specification (p-data-segment (p p0 n)))
;       link-tables is   (i-link-tables (r->i (p->r p0)) load-addr)

; We deal with them in turn.

; Hyp1.  The fully instantiated first hypothesis is:

;   (proper-i-usr-data-segmentp (i-usr-data-segment (r->i (r (p->r p0) n)))
;                               (r->i (r (p->r p0) n)))

; If we apply the previous rule for simplifying the i-usr-data-segment of
; r->i, we would get:

;   (proper-i-usr-data-segmentp (r-usr-data-segment (r (p->r p0) n))
;                               (r->i (r (p->r p0) n)))

; This would immediately match the imported theorem
; proper-r-statep-implies-proper-i-user-data-segmentp
; and we would only have to establish that (r (p->r p0) n) was a
; proper-r-statep.  This follows from the fact that p->r is a
; proper-r-statep (since p0 is a proper-p-statep) and r preserves
; proper-r-statep.  [Note:  we could have relied on p preserving
; proper-p-statep, but then we'd need to express the r term above
; as (p->r (p p0 n)).]

; But this simple argument doesn't work because of the presence of
; the p-r-owc corrollary.  In particular, (r-usr-data-segment (r (p->r p0) n))
; rewrites to (p-data-segment (p p0 n)) by the corrollary and we no
; longer get the match on proper-r-statep-implies-proper-i-user-data-segmentp.

; So we prove a bridged version of that rule:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-r-statep-implies-proper-i-user-data-segmentp-bridge \\ \index{proper-r-statep-implies-proper-i!-user-data-segmentp-bridge}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ ({\it{segment\/}} $=$ {\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\it{segment\/}}, {\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i})\index{proper-i-usr-data-segmentp}\-
\end{tabbing}

\begin{verbatim}; That completes hyp1.

; Hyp2.  (i-state-okp (r->i (r (p->r p0) n)) load-addr) follows from the fact that
; r->i produces okp i states from proper r states.

; Hyp3.  The third hypothesis to prove is that the equivalence of

;    (type-specification (p-data-segment (p p0 n)))

; and

;    (type-specification (i-usr-data-segment (r->i (r (p->r p0 n))))).

; The first is what occurs in the top goal; the second is what our lemma
; expects.  But the previously noted fact about the i-usr-data-segment
; of r->i reduces the second to:

;    (type-specification (r-usr-data-segment (r (p->r p0 n))))

; And the corrollary of p-r-owc reduces that to the first.

; Hyp4.  The last hypothesis is the equivalence of

;    (i-link-tables (r->i (p->r p0)) load-addr)

; and

;    (i-link-tables (r->i (r (p->r p0) n)) load-addr).

; Observe that what we are asked to show is that execution on the r machine
; preserves the i-link-tables (computed from mapped down r states).  But
; we know that the i machine preserves link tables.  And we know, from
; r-i-owc, that any mapped down r computation can be seen as an i computation
; on the mapped down states.  So the above requirement follows.  Here is
; a formal rendering of it:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  i-link-tables-r-$>$i \\ \index{i-link-tables-r-$>$i}
\=\+(\=\+({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r0\/}})\index{r-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r0\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\it{r0\/}}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{i-link-tables}}\,({\rm{r-$>$i}}\,({\rm{r}}\,({\it{r0\/}}, {\it{n\/}})\index{r})\index{r-$>$i}, {\it{load-addr\/}})\index{i-link-tables} \\ 
$=$$\;\;\;\;${\rm{i-link-tables}}\,({\rm{r-$>$i}}\,({\it{r0\/}})\index{r-$>$i}, {\it{load-addr\/}})\index{i-link-tables})\-\-
\end{tabbing}


\begin{verbatim}; That completes the proof of FM8501 Piton.  We have to define the
; witness function, FM8502-CLOCK, but that is easy:

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{fm9001-clock}$\;\;$
{\rm{fm9001-clock}}\,({\it{p\/}}, {\it{n\/}})\index{fm9001-clock} $=$ {\rm{clock}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r}, {\it{n\/}})\index{clock}
\end{tabbing}

\begin{verbatim}; Note:  In the FM8502 script we were in fact done!  Here we simply
; put top-goal.  But no longer.  We must relieve the plausibility
; constraint.

; Book: plausibility.  We now depart from the FM8502 proof and begin
; to work on deriving the plausibility condition from the fact that
; the initial p state is proper.  We ultimately have to establish that
; the intermediate machines preserve the word size of the state as
; well as the signatures of the program and data segments.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  bvp-listp-append \\ \index{bvp-listp-append}
{\rm{bvp-listp}}\,({\it{a\/}})\index{bvp-listp} $\rightarrow$ ({\rm{bvp-listp}}\,({\rm{append}}\,({\it{a\/}}, {\it{b\/}}))\index{bvp-listp} $=$ {\rm{bvp-listp}}\,({\it{b\/}})\index{bvp-listp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-listp-link-area \\ \index{bvp-listp-link-area}
{\rm{bvp-listp}}\,({\rm{link-area}}\,({\it{lst\/}}, {\it{link-tables\/}}, {\tt{32}})\index{link-area})\index{bvp-listp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-listp-link-segment \\ \index{bvp-listp-link-segment}
{\rm{bvp-listp}}\,({\rm{link-segment}}\,({\it{lst\/}}, {\it{link-tables\/}}, {\tt{32}})\index{link-segment})\index{bvp-listp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bvp-listp-boot-code \\ \index{bvp-listp-boot-code}
{\rm{bvp-listp}}\,({\rm{boot-code}}\,({\it{boot-lst\/}}, {\it{n\/}}, {\tt{32}})\index{boot-code})\index{bvp-listp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-m-statep-i-$>$m \\ \index{proper-m-statep-i-$>$m}
\=\+(({\rm{i-word-size}}\,({\it{i\/}})\index{i-word-size} $=$ {\tt{32}}) $\wedge$ {\rm{i-loadablep}}\,({\it{i\/}}, {\it{load-addr\/}})\index{i-loadablep}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-m-statep}}\,({\rm{i-$>$m}}\,({\it{i\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{proper-m-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-loadable-r-$>$i \\ \index{i-loadable-r-$>$i}
{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\rightarrow$ {\rm{i-loadablep}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\it{load-addr\/}})\index{i-loadablep}
\end{tabbing}

\begin{verbatim}; I need to show that r preserves the word-size.  It surprises me that I haven't
; proved this at every level.  I apparently haven't proved this at any level!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  r-word-size-r-step1 \\ \index{r-word-size-r-step1}
{\rm{r-word-size}}\,({\rm{r-step1}}\,({\it{ins\/}}, {\it{r\/}})\index{r-step1})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-word-size-r-step \\ \index{r-word-size-r-step}
{\rm{r-word-size}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-word-size-r \\ \index{r-word-size-r}
{\rm{r-word-size}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-word-size} $=$ {\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size}
\end{tabbing}

\begin{verbatim}; I have confirmed that if we add the following PLAUSIBLE-TYPE-
; SPEC-AND-LINK-TABLESP instance as an axiom, we can prove top-goal.
; So the entire problem reduces to that described below.  Everything
; between here and the proof of consolidated-plausibility-argument was
; created over a 3 day period (Oct 9-11, 1991) in order to establish
; the plausibility hypothesis necessary to apply DISPLAY-FM9001-
; DATA-SEGMENT-M->FM9001.  That hypothesis is:

; (PLAUSIBLE-DATA-LINK-TABLEP
;         (TYPE-SPECIFICATION (P-DATA-SEGMENT (P P0 N)))
;         (LENGTH (M-MEM (I->M (R->I (R (P->R P0) N)) boot-lst LOAD-ADDR)))
;         (USR-DATA-LINKS (I-LINK-TABLES (R->I (P->R P0)) LOAD-ADDR)))
; under the assumptions
; (NOT (ERRORP (P-PSW (P P0 N))))
; (EQUAL (P-WORD-SIZE P0) 32)
; (P-LOADABLEP P0 LOAD-ADDR)
; (PROPER-P-STATEP P0)

; Plausibility insures that, for each area in the type-spec, the base address of
; the area plus the length of the area must be less than or equal to the length of
; the memory.  

; We start by noting 

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-plausible-data-link-tablep \\ \index{same-signature-plausible-data-li!nk-tablep}
\=\+(\=\+{\rm{same-signature}}\,({\it{seg1\/}}, {\it{seg2\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,({\rm{type-specification}}\,({\it{seg1\/}})\index{type-specification}, {\it{n\/}}, {\it{table\/}})\index{plausible-data-link-tablep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,({\rm{type-specification}}\,({\it{seg2\/}})\index{type-specification}, {\it{n\/}}, {\it{table\/}})\index{plausible-data-link-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-reflexive-1 \\ \index{same-signature-reflexive-1}
{\rm{same-signature}}\,({\it{segment\/}}, {\it{segment\/}})\index{same-signature}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-proper-alistp \\ \index{proper-p-data-segmentp-proper-a!listp}
{\rm{proper-p-data-segmentp}}\,({\it{x\/}}, {\it{p\/}})\index{proper-p-data-segmentp} $\rightarrow$ {\rm{proper-alistp}}\,({\it{x\/}})\index{proper-alistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-alistp-p-data-segment \\ \index{proper-alistp-p-data-segment}
{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\rightarrow$ {\rm{proper-alistp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{proper-alistp}
\end{tabbing}

\begin{verbatim}; Our next goal is to prove that the p machine does not change the
; signature of the data segment.  Most instructions don't change
; the data segment at all and the corresponding lemma can be proved
; without using most of the hypotheses provided.  But we make all of the
; lemmas of the same form simply so we can use an Emacs macro to
; create them all.  Had these proofs been done at the appropriate
; stage in the proof of the p-r, we would not need to give the hints.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-call \\ \index{same-signature-p-ins-step-call}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-call-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-call-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-ret \\ \index{same-signature-p-ins-step-ret}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-ret-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-ret-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ret-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-locn \\ \index{same-signature-p-ins-step-locn}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-locn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-locn-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-push-constant \\ \index{same-signature-p-ins-step-push-!constant}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-constant-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-push-constant-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-constant-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-push-local \\ \index{same-signature-p-ins-step-push-!local}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-push-local-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-local-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-push-global \\ \index{same-signature-p-ins-step-push-!global}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-push-global-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-global-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-push-ctrl-stk-free-size \\ \index{same-signature-p-ins-step-push-!ctrl-stk-free-size}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-ctrl-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-ctrl-stk-free-size-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-push-temp-stk-free-size \\ \index{same-signature-p-ins-step-push-te!mp-stk-free-size}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-free-size-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-push-temp-stk-free-size-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-temp-stk-free-size-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-push-temp-stk-index \\ \index{same-signature-p-ins-step-push-te!mp-stk-index}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-push-temp-stk-index-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-push-temp-stk-index-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-push-temp-stk-index-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-jump-if-temp-stk-full \\ \index{same-signature-p-ins-step-jump-i!f-temp-stk-full}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-full-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-jump-if-temp-stk-full-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-jump-if-temp-stk-full-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-jump-if-temp-stk-empty \\ \index{same-signature-p-ins-step-jump-i!f-temp-stk-empty}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-if-temp-stk-empty-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-jump-if-temp-stk-empty-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pop \\ \index{same-signature-p-ins-step-pop}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pop-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pop* \\ \index{same-signature-p-ins-step-pop*}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop*-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pop*-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop*-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-popn \\ \index{same-signature-p-ins-step-popn}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-popn-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popn-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pop-local \\ \index{same-signature-p-ins-step-pop-l!ocal}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pop-local-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-pop-local-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{verbatim}; So here is the first occasion on which we need to investigate the hyps to
; get the proof.  An important fact here is that since the state is proper
; the programs are all proper so that the pop-global instruction we are
; executing references a legal area name in the data section.  If it did not
; the resulting deposit would change the signature!  Similarly, we must know that
; the length of the area is sufficient.  We have to enable the rules that were
; freely available during the p-r correspondence work.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pop-global \\ \index{same-signature-p-ins-step-pop-g!lobal}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pop-global-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-pop-global-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pop-locn \\ \index{same-signature-p-ins-step-pop-l!ocn}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-locn-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pop-locn-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-pop-locn-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pop-call \\ \index{same-signature-p-ins-step-pop-c!all}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pop-call-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pop-call-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-pop-call-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-fetch-temp-stk \\ \index{same-signature-p-ins-step-fetch!-temp-stk}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-fetch-temp-stk-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-fetch-temp-stk-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-deposit-temp-stk \\ \index{same-signature-p-ins-step-deposit!-temp-stk}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-temp-stk-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-deposit-temp-stk-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-deposit-temp-stk-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-jump \\ \index{same-signature-p-ins-step-jump}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-jump-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-jump-case \\ \index{same-signature-p-ins-step-jump-!case}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-jump-case-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-jump-case-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-jump-case-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-pushj \\ \index{same-signature-p-ins-step-pushj}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-pushj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-pushj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-pushj-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-popj \\ \index{same-signature-p-ins-step-popj}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-popj-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-popj-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-popj-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-set-local \\ \index{same-signature-p-ins-step-set-l!ocal}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-local-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-set-local-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-set-local-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-set-global \\ \index{same-signature-p-ins-step-set-g!lobal}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-set-global-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-set-global-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-set-global-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-test-nat-and-jump \\ \index{same-signature-p-ins-step-test-!nat-and-jump}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-nat-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-test-nat-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-nat-and-jump-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-test-int-and-jump \\ \index{same-signature-p-ins-step-test-i!nt-and-jump}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-int-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-test-int-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-int-and-jump-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-test-bool-and-jump \\ \index{same-signature-p-ins-step-test-!bool-and-jump}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bool-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-test-bool-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-bool-and-jump-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-test-bitv-and-jump \\ \index{same-signature-p-ins-step-test-!bitv-and-jump}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-test-bitv-and-jump-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-test-bitv-and-jump-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-test-bitv-and-jump-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-no-op \\ \index{same-signature-p-ins-step-no-op}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-no-op-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-no-op-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-no-op-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add-addr \\ \index{same-signature-p-ins-step-add-a!ddr}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add-addr-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-addr-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub-addr \\ \index{same-signature-p-ins-step-sub-a!ddr}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub-addr-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-addr-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-eq \\ \index{same-signature-p-ins-step-eq}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-eq-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-eq-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-eq-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-lt-addr \\ \index{same-signature-p-ins-step-lt-ad!dr}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-addr-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-lt-addr-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-lt-addr-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-fetch \\ \index{same-signature-p-ins-step-fetch}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-fetch-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-fetch-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-fetch-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-deposit \\ \index{same-signature-p-ins-step-deposit}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-deposit-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-deposit-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-deposit-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add-int \\ \index{same-signature-p-ins-step-add-i!nt}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add-int-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-int-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add-int-with-carry \\ \index{same-signature-p-ins-step-add-i!nt-with-carry}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add-int-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-int-with-carry-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add1-int \\ \index{same-signature-p-ins-step-add1-i!nt}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add1-int-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add1-int-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub-int \\ \index{same-signature-p-ins-step-sub-i!nt}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub-int-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-int-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub-int-with-carry \\ \index{same-signature-p-ins-step-sub-i!nt-with-carry}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-int-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub-int-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-int-with-carry-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub1-int \\ \index{same-signature-p-ins-step-sub1-i!nt}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub1-int-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub1-int-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-neg-int \\ \index{same-signature-p-ins-step-neg-i!nt}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-neg-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-neg-int-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-neg-int-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-lt-int \\ \index{same-signature-p-ins-step-lt-int}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-int-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-lt-int-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-lt-int-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-int-to-nat \\ \index{same-signature-p-ins-step-int-t!o-nat}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-int-to-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-int-to-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-int-to-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add-nat \\ \index{same-signature-p-ins-step-add-n!at}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add-nat-with-carry \\ \index{same-signature-p-ins-step-add-n!at-with-carry}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add-nat-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add-nat-with-carry-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-add1-nat \\ \index{same-signature-p-ins-step-add1-!nat}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-add1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-add1-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-add1-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub-nat \\ \index{same-signature-p-ins-step-sub-n!at}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub-nat-with-carry \\ \index{same-signature-p-ins-step-sub-n!at-with-carry}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub-nat-with-carry-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub-nat-with-carry-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub-nat-with-carry-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-sub1-nat \\ \index{same-signature-p-ins-step-sub1-!nat}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-sub1-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-sub1-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-sub1-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-lt-nat \\ \index{same-signature-p-ins-step-lt-nat}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lt-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-lt-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-lt-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-mult2-nat \\ \index{same-signature-p-ins-step-mult2!-nat}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-mult2-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-mult2-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-mult2-nat-with-carry-out \\ \index{same-signature-p-ins-step-mult2!-nat-with-carry-out}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-mult2-nat-with-carry-out-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-mult2-nat-with-carry-out-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-div2-nat \\ \index{same-signature-p-ins-step-div2-!nat}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-div2-nat-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-div2-nat-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-div2-nat-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-or-bitv \\ \index{same-signature-p-ins-step-or-bitv}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-or-bitv-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-or-bitv-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-and-bitv \\ \index{same-signature-p-ins-step-and-bitv}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-and-bitv-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-and-bitv-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-not-bitv \\ \index{same-signature-p-ins-step-not-bitv}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-not-bitv-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-not-bitv-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-xor-bitv \\ \index{same-signature-p-ins-step-xor-bitv}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-xor-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-xor-bitv-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-xor-bitv-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-rsh-bitv \\ \index{same-signature-p-ins-step-rsh-bitv}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-rsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-rsh-bitv-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-rsh-bitv-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-lsh-bitv \\ \index{same-signature-p-ins-step-lsh-bitv}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-lsh-bitv-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-lsh-bitv-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-lsh-bitv-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-or-bool \\ \index{same-signature-p-ins-step-or-bo!ol}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-or-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-or-bool-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-or-bool-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-and-bool \\ \index{same-signature-p-ins-step-and-b!ool}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-and-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-and-bool-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-and-bool-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step-not-bool \\ \index{same-signature-p-ins-step-not-b!ool}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-not-bool-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-not-bool-step}}\,(\=\+{\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, \\ 
{\it{p\/}})\-\index{p-not-bool-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{verbatim}; We now put these all together.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-p-ins-step \\ \index{same-signature-p-ins-step}
\=\+(\=\+({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{p-ins-okp}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p-ins-step}}\,({\rm{p-current-instruction}}\,({\it{p\/}})\index{p-current-instruction}, {\it{p\/}})\index{p-ins-step})\index{p-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-step \\ \index{same-signature-p-step}
\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-data-segment})\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p-transitivity-lemma \\ \index{same-signature-p-transitivity-le!mma}
\=\+(\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step}, {\it{n\/}} $-\;1$)\index{p})\index{p-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step}, {\it{n\/}} $-\;1$)\index{p})\index{p-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\rm{p}}\,({\rm{p-step}}\,({\it{p\/}})\index{p-step}, {\it{n\/}} $-\;1$)\index{p})\index{p-data-segment})\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-p \\ \index{same-signature-p}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\rm{p}}\,({\it{p\/}}, {\it{n\/}})\index{p})\index{p-data-segment})\index{same-signature}\-
\end{tabbing}

\begin{verbatim}; What we wish to prove is:
; (PLAUSIBLE-DATA-LINK-TABLEP
;   (TYPE-SPECIFICATION (P-DATA-SEGMENT (P P0 N)))
;   (LENGTH (M-MEM (I->M (R->I (R (P->R P0) N)) boot-lst LOAD-ADDR)))
;   (USR-DATA-LINKS (I-LINK-TABLES (R->I (P->R P0)) LOAD-ADDR)))

; By instantiating same-signature-plausible-data-link-tablep with 
; (seg1 (p-data-segment p0))
; (seg2 (p-data-segment (p p0 n)))
; and applealing to same-signature-p, we can backchain from our goal to

; (PLAUSIBLE-DATA-LINK-TABLEP
;   (TYPE-SPECIFICATION (P-DATA-SEGMENT P0))
;   (LENGTH (M-MEM (I->M (R->I (R (P->R P0) N)) boot-lst LOAD-ADDR)))
;   (USR-DATA-LINKS (I-LINK-TABLES (R->I (P->R P0)) LOAD-ADDR)))

; Next I need to show that
; (length (m-mem (i->m (r->i (r pr n)) boot-lst load-addr)))
;  = (length (m-mem (i->m (r->i pr) boot-lst load-addr))).
; This follows from the fact that the r-prog-segment is unchanged by r and the
; signatures of both the usr-data-segment and sys-data-segment are unchanged.

; So now we undertake those proofs. (!)

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-call \\ \index{same-signature-r-ins-step-call}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-call-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-call-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-call-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-call-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-call-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-call-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-ret \\ \index{same-signature-r-ins-step-ret}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{ret}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-ret-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-ret-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ret-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-ret-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-ret-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-ret-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-ret-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-locn \\ \index{same-signature-r-ins-step-locn}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-locn-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-locn-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-locn-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-locn-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-locn-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-push-constant \\ \index{same-signature-r-ins-step-push-!constant}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-constant}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-constant-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-push-constant-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-constant-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-push-constant-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-constant-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-push-constant-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-constant-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-push-local \\ \index{same-signature-r-ins-step-push-!local}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-push-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-local-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-push-local-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-local-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-push-local-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-local-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-push-global \\ \index{same-signature-r-ins-step-push-!global}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-push-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-global-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-push-global-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-global-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-push-global-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-global-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-push-ctrl-stk-free-size \\ \index{same-signature-r-ins-step-push-!ctrl-stk-free-size}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-ctrl-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-ctrl-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-ctrl-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-ctrl-stk-free-size-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-ctrl-stk-free-size-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-push-ctrl-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-ctrl-stk-free-size-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-push-temp-stk-free-size \\ \index{same-signature-r-ins-step-push-te!mp-stk-free-size}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-free-size}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-free-size-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-free-size-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-push-temp-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-free-size-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-push-temp-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-free-size-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-push-temp-stk-free-size-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-free-size-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-push-temp-stk-index \\ \index{same-signature-r-ins-step-push-te!mp-stk-index}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{push-temp-stk-index}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-push-temp-stk-index-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-push-temp-stk-index-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-push-temp-stk-index-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-index-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-push-temp-stk-index-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-index-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-push-temp-stk-index-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-push-temp-stk-index-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-jump-if-temp-stk-full \\ \index{same-signature-r-ins-step-jump-i!f-temp-stk-full}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-full}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-full-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-full-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-jump-if-temp-stk-full-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-full-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-jump-if-temp-stk-full-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-full-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-jump-if-temp-stk-full-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-full-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-jump-if-temp-stk-empty \\ \index{same-signature-r-ins-step-jump-i!f-temp-stk-empty}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-if-temp-stk-empty}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-if-temp-stk-empty-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-if-temp-stk-empty-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-empty-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-empty-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-jump-if-temp-stk-empty-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-if-temp-stk-empty-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pop \\ \index{same-signature-r-ins-step-pop}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pop-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pop-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pop-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pop* \\ \index{same-signature-r-ins-step-pop*}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop*}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop*-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pop*-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop*-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pop*-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop*-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pop*-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop*-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-popn \\ \index{same-signature-r-ins-step-popn}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-popn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-popn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popn-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-popn-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-popn-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-popn-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-popn-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pop-local \\ \index{same-signature-r-ins-step-pop-l!ocal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pop-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-local-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pop-local-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-local-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pop-local-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-local-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pop-global \\ \index{same-signature-r-ins-step-pop-g!lobal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pop-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-global-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pop-global-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-global-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pop-global-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-global-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pop-locn \\ \index{same-signature-r-ins-step-pop-l!ocn}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-locn}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-locn-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pop-locn-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-locn-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pop-locn-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-locn-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pop-locn-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-locn-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pop-call \\ \index{same-signature-r-ins-step-pop-c!all}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pop-call}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pop-call-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pop-call-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pop-call-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pop-call-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-call-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pop-call-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pop-call-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-fetch-temp-stk \\ \index{same-signature-r-ins-step-fetch!-temp-stk}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-fetch-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-temp-stk-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-fetch-temp-stk-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-fetch-temp-stk-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-fetch-temp-stk-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-fetch-temp-stk-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{verbatim}; I am having trouble getting same-signature-r-ins-step-DEPOSIT-TEMP-STK
; so I am proving a lemma just for it.  I'm sure there is one like this
; somewhere already here.  I am embarassed to confess that the following
; dumb helper is also beyond the abilities of the unassisted prover in its
; current disabled state!  I suppose I could find lemmas to make this go
; through too, but I'll just push it through by induction!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-deposit-temp-stk-lemma-helper \\ \index{same-signature-r-ins-step-deposit!-temp-stk-lemma-helper}
({\it{n\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ (((({\it{n\/}} $-\;1$) $-\;1$) $-$ {\it{untag\/}}) $<$ {\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-deposit-temp-stk-lemma \\ \index{same-signature-r-ins-step-deposit!-temp-stk-lemma}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+\=\+{\bf if }({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length} $-\;1$) $=$ {\tt{0}} \\ 
{\bf then }{\tt{0}} \\ 
{\bf else }\=\+(({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length} $-\;1$) $-\;1$) \\ 
$-$$\;\;\;\;${\rm{untag}}\,({\rm{fetch}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{fetch})\index{untag}\-$\;${\bf  endif}\- \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length})\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-deposit-temp-stk \\ \index{same-signature-r-ins-step-deposit!-temp-stk}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit-temp-stk}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-temp-stk-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-deposit-temp-stk-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-temp-stk-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-deposit-temp-stk-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-deposit-temp-stk-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-deposit-temp-stk-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-deposit-temp-stk-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-jump \\ \index{same-signature-r-ins-step-jump}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-jump-case \\ \index{same-signature-r-ins-step-jump-!case}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{jump-case}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-jump-case-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-jump-case-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-jump-case-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-jump-case-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-case-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-jump-case-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-jump-case-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-pushj \\ \index{same-signature-r-ins-step-pushj}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{pushj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-pushj-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-pushj-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-pushj-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-pushj-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pushj-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-pushj-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-pushj-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-popj \\ \index{same-signature-r-ins-step-popj}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{popj}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-popj-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-popj-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-popj-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-popj-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-popj-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-popj-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-popj-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-set-local \\ \index{same-signature-r-ins-step-set-l!ocal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-local}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-set-local-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-set-local-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-local-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-set-local-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-set-local-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-set-local-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-set-local-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-set-global \\ \index{same-signature-r-ins-step-set-g!lobal}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{set-global}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-set-global-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-set-global-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-set-global-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-set-global-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-set-global-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-set-global-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-set-global-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-test-nat-and-jump \\ \index{same-signature-r-ins-step-test-!nat-and-jump}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-nat-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-nat-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-test-nat-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-nat-and-jump-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-test-nat-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-nat-and-jump-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-test-nat-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-nat-and-jump-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-test-int-and-jump \\ \index{same-signature-r-ins-step-test-i!nt-and-jump}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-int-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-int-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-test-int-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-int-and-jump-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-test-int-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-int-and-jump-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-test-int-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-int-and-jump-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-test-bool-and-jump \\ \index{same-signature-r-ins-step-test-!bool-and-jump}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bool-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bool-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-test-bool-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bool-and-jump-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-test-bool-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-bool-and-jump-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-test-bool-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-bool-and-jump-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-test-bitv-and-jump \\ \index{same-signature-r-ins-step-test-!bitv-and-jump}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{test-bitv-and-jump}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-test-bitv-and-jump-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-test-bitv-and-jump-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-test-bitv-and-jump-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-test-bitv-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-bitv-and-jump-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-test-bitv-and-jump-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-test-bitv-and-jump-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-no-op \\ \index{same-signature-r-ins-step-no-op}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{no-op}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-no-op-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-no-op-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-no-op-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-no-op-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-no-op-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-no-op-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-no-op-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add-addr \\ \index{same-signature-r-ins-step-add-a!ddr}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-addr-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add-addr-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-addr-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add-addr-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-addr-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub-addr \\ \index{same-signature-r-ins-step-sub-a!ddr}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-addr-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub-addr-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-addr-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub-addr-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-addr-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-eq \\ \index{same-signature-r-ins-step-eq}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{eq}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-eq-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-eq-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-eq-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-eq-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-eq-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-eq-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-eq-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-lt-addr \\ \index{same-signature-r-ins-step-lt-ad!dr}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-addr-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-lt-addr-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-addr-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-lt-addr-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lt-addr-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-lt-addr-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lt-addr-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-fetch \\ \index{same-signature-r-ins-step-fetch}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{fetch}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-fetch-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-fetch-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-fetch-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-fetch-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-fetch-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-fetch-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-fetch-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-deposit \\ \index{same-signature-r-ins-step-deposit}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{deposit}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-deposit-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-deposit-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-deposit-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-deposit-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-deposit-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-deposit-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-deposit-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add-int \\ \index{same-signature-r-ins-step-add-i!nt}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-int-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-int-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-deposit-adp \\ \index{definedp-deposit-adp}
{\rm{definedp}}\,({\it{name\/}}, {\rm{deposit-adp}}\,({\it{val\/}}, {\it{adp\/}}, {\it{segment\/}})\index{deposit-adp})\index{definedp} $=$ {\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp}
\end{tabbing}

\begin{verbatim}; We need a special lemma here because add-int-with-carry pushes two things.
; As usual, there is undoubtedly a set of lemmas already available for this
; if I only wanted to understand every detail of the old proofs.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  adpp-add-adp-hack \\ \index{adpp-add-adp-hack}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+({\tt{1}} $+$ {\rm{adp-offset}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag})\index{adp-offset}) \\ 
$<$$\;\;\;\;$(({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\tt{'}}{\tt{tstk}}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})))\index{length} $-\;1$) $-\;1$))\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{add-adp}}\,({\rm{untag}}\,({\rm{r-tsp}}\,({\it{r\/}})\index{r-tsp})\index{untag}, {\tt{2}})\index{add-adp}, {\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add-int-with-carry \\ \index{same-signature-r-ins-step-add-i!nt-with-carry}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-int-with-carry-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add-int-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-int-with-carry-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add-int-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-int-with-carry-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add1-int \\ \index{same-signature-r-ins-step-add1-i!nt}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-int-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add1-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add1-int-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add1-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add1-int-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub-int \\ \index{same-signature-r-ins-step-sub-i!nt}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-int-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-int-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub-int-with-carry \\ \index{same-signature-r-ins-step-sub-i!nt-with-carry}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-int-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-int-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub-int-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-int-with-carry-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub-int-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-int-with-carry-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub-int-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-int-with-carry-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub1-int \\ \index{same-signature-r-ins-step-sub1-i!nt}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub1-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-int-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub1-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub1-int-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub1-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub1-int-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-neg-int \\ \index{same-signature-r-ins-step-neg-i!nt}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{neg-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-neg-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-neg-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-neg-int-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-neg-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-neg-int-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-neg-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-neg-int-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-lt-int \\ \index{same-signature-r-ins-step-lt-int}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-int}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-int-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-lt-int-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-int-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-lt-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lt-int-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-lt-int-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lt-int-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-int-to-nat \\ \index{same-signature-r-ins-step-int-t!o-nat}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{int-to-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-int-to-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-int-to-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-int-to-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-int-to-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-int-to-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-int-to-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-int-to-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add-nat \\ \index{same-signature-r-ins-step-add-n!at}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add-nat-with-carry \\ \index{same-signature-r-ins-step-add-n!at-with-carry}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add-nat-with-carry-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add-nat-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-nat-with-carry-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add-nat-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add-nat-with-carry-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-add1-nat \\ \index{same-signature-r-ins-step-add1-!nat}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{add1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-add1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-add1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-add1-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-add1-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add1-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-add1-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-add1-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub-nat \\ \index{same-signature-r-ins-step-sub-n!at}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub-nat-with-carry \\ \index{same-signature-r-ins-step-sub-n!at-with-carry}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub-nat-with-carry}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub-nat-with-carry-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub-nat-with-carry-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub-nat-with-carry-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub-nat-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-nat-with-carry-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub-nat-with-carry-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub-nat-with-carry-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-sub1-nat \\ \index{same-signature-r-ins-step-sub1-!nat}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{sub1-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-sub1-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-sub1-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-sub1-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-sub1-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub1-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-sub1-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-sub1-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-lt-nat \\ \index{same-signature-r-ins-step-lt-nat}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lt-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lt-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-lt-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lt-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-lt-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lt-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-lt-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lt-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-mult2-nat \\ \index{same-signature-r-ins-step-mult2!-nat}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-mult2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-mult2-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-mult2-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-mult2-nat-with-carry-out \\ \index{same-signature-r-ins-step-mult2!-nat-with-carry-out}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{mult2-nat-with-carry-out}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-mult2-nat-with-carry-out-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-mult2-nat-with-carry-out-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-with-carry-out-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-with-carry-out-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-mult2-nat-with-carry-out-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-mult2-nat-with-carry-out-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-div2-nat \\ \index{same-signature-r-ins-step-div2-!nat}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{div2-nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-div2-nat-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-div2-nat-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-div2-nat-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-div2-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-div2-nat-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-div2-nat-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-div2-nat-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-or-bitv \\ \index{same-signature-r-ins-step-or-bitv}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-or-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bitv-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-or-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-or-bitv-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-or-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-or-bitv-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-and-bitv \\ \index{same-signature-r-ins-step-and-bitv}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-and-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bitv-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-and-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-and-bitv-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-and-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-and-bitv-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-not-bitv \\ \index{same-signature-r-ins-step-not-bitv}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-not-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bitv-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-not-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-not-bitv-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-not-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-not-bitv-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-xor-bitv \\ \index{same-signature-r-ins-step-xor-bitv}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{xor-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-xor-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-xor-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-xor-bitv-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-xor-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-xor-bitv-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-xor-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-xor-bitv-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-rsh-bitv \\ \index{same-signature-r-ins-step-rsh-bitv}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{rsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-rsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-rsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-rsh-bitv-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-rsh-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-rsh-bitv-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-rsh-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-rsh-bitv-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-lsh-bitv \\ \index{same-signature-r-ins-step-lsh-bitv}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{lsh-bitv}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-lsh-bitv-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-lsh-bitv-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-lsh-bitv-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-lsh-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lsh-bitv-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-lsh-bitv-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-lsh-bitv-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-or-bool \\ \index{same-signature-r-ins-step-or-bo!ol}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{or-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-or-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-or-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-or-bool-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-or-bool-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-or-bool-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-or-bool-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-or-bool-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-and-bool \\ \index{same-signature-r-ins-step-and-b!ool}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{and-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-and-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-and-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-and-bool-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-and-bool-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-and-bool-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-and-bool-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-and-bool-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-ins-step-not-bool \\ \index{same-signature-r-ins-step-not-b!ool}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}) $=$ {\tt{'}}{\tt{not-bool}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;${\rm{r-not-bool-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-okp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{r-prog-segment}}\,({\rm{r-not-bool-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-not-bool-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-not-bool-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-not-bool-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-not-bool-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-not-bool-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{verbatim}; Now we put these all together.  We'll do each segment individually
; because the case splitting is pretty bad here:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-r-prog-segment-r-ins-step \\ \index{same-signature-r-prog-segment-r!-ins-step}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{r-prog-segment}}\,({\rm{r-ins-step}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-step})\index{r-prog-segment} \\ 
$=$$\;\;\;\;${\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-usr-data-segment-r-ins-step \\ \index{same-signature-r-usr-data-segme!nt-r-ins-step}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-ins-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-ins-step})\index{r-usr-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-sys-data-segment-r-ins-step \\ \index{same-signature-r-sys-data-segme!nt-r-ins-step}
\=\+(\=\+({\rm{r-psw}}\,({\it{r\/}})\index{r-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{r-ins-okp}}\,({\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, {\it{r\/}})\index{r-ins-okp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-ins-step}}\,(\=\+{\rm{r-current-instruction}}\,({\it{r\/}})\index{r-current-instruction}, \\ 
{\it{r\/}})\-\index{r-ins-step})\index{r-sys-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-step \\ \index{same-signature-r-step}
\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{r-prog-segment}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-transitivity-lemma1 \\ \index{same-signature-r-transitivity-le!mma1}
\=\+(\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r})\index{r-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r})\index{r-usr-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r-transitivity-lemma2 \\ \index{same-signature-r-transitivity-le!mma2}
\=\+(\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r})\index{r-sys-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r})\index{r-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r}}\,({\rm{r-step}}\,({\it{r\/}})\index{r-step}, {\it{n\/}} $-\;1$)\index{r})\index{r-sys-data-segment})\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-r \\ \index{same-signature-r}
\=\+({\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} $\wedge$ ($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{r-prog-segment}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-prog-segment} $=$ {\rm{r-prog-segment}}\,({\it{r\/}})\index{r-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-usr-data-segment}}\,({\it{r\/}})\index{r-usr-data-segment}, \\ 
{\rm{r-usr-data-segment}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-usr-data-segment})\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{r-sys-data-segment}}\,({\it{r\/}})\index{r-sys-data-segment}, \\ 
{\rm{r-sys-data-segment}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-sys-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{verbatim}; So now we can derive from this same-signature invariance the fact that
; the length of the mapped down memory is preserved by the r machine.

; The key lemma relating same-signature and link-mem...

\end{verbatim}\begin{tabbing}{\sc Theorem}:  same-signature-implies-length-link-mem \\ \index{same-signature-implies-length-li!nk-mem}
\=\+(\=\+{\rm{same-signature}}\,({\it{usr-data-segment1\/}}, {\it{usr-data-segment2\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{sys-data-segment1\/}}, {\it{sys-data-segment2\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{link-mem}}\,(\=\+{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}}, \\ 
{\it{usr-data-segment2\/}}, \\ 
{\it{prog-segment\/}}, \\ 
{\it{sys-data-segment2\/}}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-mem})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{link-mem}}\,(\=\+{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}}, \\ 
{\it{usr-data-segment1\/}}, \\ 
{\it{prog-segment\/}}, \\ 
{\it{sys-data-segment1\/}}, \\ 
{\it{tables\/}}, \\ 
{\it{word-size\/}})\-\index{link-mem})\index{length})\-\-
\end{tabbing}

\begin{verbatim}; ... which we can use to show that the mapped down memory is the same size:

\end{verbatim}\begin{tabbing}{\sc Theorem}:  length-m-mem-r-$>$i-$>$m \\ \index{length-m-mem-r-$>$i-$>$m}
\=\+(\=\+{\rm{proper-r-statep}}\,({\it{r\/}}, {\it{load-addr\/}})\index{proper-r-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp}) \\ 
$\wedge$$\;\;\;\;$({\rm{r-word-size}}\,({\it{r\/}})\index{r-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{m-mem}}\,({\rm{i-$>$m}}\,({\rm{r-$>$i}}\,({\rm{r}}\,({\it{r\/}}, {\it{n\/}})\index{r})\index{r-$>$i}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-mem})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{m-mem}}\,({\rm{i-$>$m}}\,({\rm{r-$>$i}}\,({\it{r\/}})\index{r-$>$i}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-mem})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-usr-data-segment-p-$>$r-$>$i \\ \index{i-usr-data-segment-p-$>$r-$>$i}
{\rm{i-usr-data-segment}}\,({\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-$>$i})\index{i-usr-data-segment} $=$ {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  once-errorp-always-errorp\{mapping\} \\ \index{once-errorp-always-errorp\{mapping\}}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p0\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p0\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p0\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{r-psw}}\,({\rm{r}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r}, {\it{n\/}})\index{r})\index{r-psw})\index{errorp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-m-mem-p-$>$r-$>$i-$>$m \\ \index{length-m-mem-p-$>$r-$>$i-$>$m}
\=\+{\rm{length}}\,({\rm{m-mem}}\,({\rm{i-$>$m}}\,({\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r})\index{r-$>$i}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{i-$>$m})\index{m-mem})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{icompile}}\,({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment})\index{icompile})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p0\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p0\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p0\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p0\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment})\index{segment-length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  i-prog-segment-p-$>$r-$>$i \\ \index{i-prog-segment-p-$>$r-$>$i}
{\rm{i-prog-segment}}\,({\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r})\index{r-$>$i})\index{i-prog-segment} $=$ {\rm{icompile}}\,({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment})\index{icompile}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  consolidated-plausibility-argument-lemma \\ \index{consolidated-plausibility-argume!nt-lemma}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p0\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p0\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p0\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp}) \\ 
$\wedge$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\rm{type-specification}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment})\index{type-specification}, \\ 
\=\+{\it{load-addr\/}} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{icompile}}\,({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment})\index{icompile})\index{segment-length} \\ 
$+$$\;\;\;\;${\rm{segment-length}}\,({\rm{p-$>$r\_sys-data-segment}}\,(\=\+{\rm{p-ctrl-stk}}\,({\it{p0\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{p0\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-temp-stk}}\,({\it{p0\/}})\index{p-temp-stk}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{p0\/}})\index{p-max-temp-stk-size})\-\index{p-$>$r\_sys-data-segment})\index{segment-length}\-, \\ 
{\rm{link-table-for-segment}}\,(\=\+{\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, \\ 
{\it{load-addr\/}})\-\index{link-table-for-segment})\-\index{plausible-data-link-tablep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\rm{type-specification}}\,({\rm{p-data-segment}}\,({\rm{p}}\,({\it{p0\/}}, {\it{n\/}})\index{p})\index{p-data-segment})\index{type-specification}, \\ 
{\rm{length}}\,({\rm{m-mem}}\,({\rm{i-$>$m}}\,(\=\+{\rm{r-$>$i}}\,({\rm{r}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r}, {\it{n\/}})\index{r})\index{r-$>$i}, \\ 
{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}})\-\index{i-$>$m})\index{m-mem})\index{length}, \\ 
{\rm{usr-data-links}}\,({\rm{i-link-tables}}\,(\=\+{\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r})\index{r-$>$i}, \\ 
{\it{load-addr\/}})\-\index{i-link-tables})\index{usr-data-links})\-\index{plausible-data-link-tablep}\-
\end{tabbing}

\begin{verbatim}; So to establish the desired plausibility condition we can backchain through
; the above and reduce the goal to:

; (plausible-data-link-tablep
;            (type-specification (p-data-segment p0)) 
;            (plus (segment-length (icompile (p-prog-segment p0))) 
;                  (segment-length (p-data-segment p0)) 
;                  (segment-length 
;                   (p->r_sys-data-segment (p-ctrl-stk p0) 
;                                          (p-max-ctrl-stk-size p0) 
;                                          (p-temp-stk p0) 
;                                          (p-max-temp-stk-size p0)))) 
;            (link-table-for-segment (p-data-segment p0)  
;                                    (segment-length (icompile (p-prog-segment p0)))))

; Which is in fact an instance of

; (plausible-data-link-tablep
;            (type-specification seg) 
;            (plus i (segment-length seg) j)
;            (link-table-for-segment seg i))

; It is this more general plausibility condition that we now attack.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  not-lessp-segment-length-plus-link-table-entry-length \\ \index{not-lessp-segment-length-plus-li!nk-table-entry-length}
\=\+{\rm{segment-length}}\,({\it{segment\/}})\index{segment-length} \\ 
$\not<$$\;\;\;\;$({\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry} $+$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-absolute-address-segment-length-rewrite\{weakened-instance\} \\ \index{lessp-absolute-address-segment-!length-rewrite\{weakened-instance\}}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\it{segment\/}})\index{definedp} $\wedge$ ({\it{i\/}} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{segment\/}})))\index{length})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{segment-length}}\,({\it{segment\/}})\index{segment-length} $\not<$ ({\it{i\/}} $+$ {\rm{link-table-entry}}\,({\it{name\/}}, {\it{segment\/}})\index{link-table-entry}))\-
\end{tabbing}
  
\begin{tabbing}{\sc Theorem}:  plausible-data-link-tablep-link-table-for-segment \\ \index{plausible-data-link-tablep-link!-table-for-segment}
\=\+(\=\+{\rm{subsegmentp}}\,({\it{seg1\/}}, {\it{seg2\/}})\index{subsegmentp} \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max\/}} $\not<$ ({\it{i\/}} $+$ {\rm{segment-length}}\,({\it{seg2\/}})\index{segment-length})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\rm{type-specification}}\,({\it{seg1\/}})\index{type-specification}, \\ 
{\it{max\/}}, \\ 
{\rm{link-table-for-segment}}\,({\it{seg2\/}}, {\it{i\/}})\index{link-table-for-segment})\-\index{plausible-data-link-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  r-usr-data-segment-p-$>$r \\ \index{r-usr-data-segment-p-$>$r}
{\rm{r-usr-data-segment}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-usr-data-segment} $=$ {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}
\end{tabbing}

\begin{verbatim}; Note:  The use and disable hints below were unnecessary
; before load-addr became an insidious free variable.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  proper-p-statep-implies-proper-i-usr-data-segmentp \\ \index{proper-p-statep-implies-proper-i!-usr-data-segmentp}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ {\rm{p-loadablep}}\,({\it{p\/}}, {\it{load-addr\/}})\index{p-loadablep} $\wedge$ ({\it{load-addr\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-i-usr-data-segmentp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p\/}})\index{p-$>$r})\index{r-$>$i})\index{proper-i-usr-data-segmentp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable length-m-mem-p-$>$r-$>$i-$>$m.

\addvspace{18pt}

\noindent{\sc Event}:   Disable length-m-mem-r-$>$i-$>$m.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  consolidated-plausibility-argument \\ \index{consolidated-plausibility-argume!nt}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p0\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p0\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\rm{p}}\,({\it{p0\/}}, {\it{n\/}})\index{p})\index{p-psw})\index{errorp}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\tt{32}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{plausible-data-link-tablep}}\,(\=\+{\rm{type-specification}}\,({\rm{p-data-segment}}\,({\rm{p}}\,({\it{p0\/}}, {\it{n\/}})\index{p})\index{p-data-segment})\index{type-specification}, \\ 
{\rm{length}}\,({\rm{m-mem}}\,({\rm{i-$>$m}}\,(\=\+{\rm{r-$>$i}}\,({\rm{r}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r}, {\it{n\/}})\index{r})\index{r-$>$i}, \\ 
{\it{boot-lst\/}}, \\ 
{\it{load-addr\/}})\-\index{i-$>$m})\index{m-mem})\index{length}, \\ 
{\rm{usr-data-links}}\,({\rm{i-link-tables}}\,(\=\+{\rm{r-$>$i}}\,({\rm{p-$>$r}}\,({\it{p0\/}})\index{p-$>$r})\index{r-$>$i}, \\ 
{\it{load-addr\/}})\-\index{i-link-tables})\index{usr-data-links})\-\index{plausible-data-link-tablep}\-
\end{tabbing}

\begin{verbatim}; Book:  Top-goal.  Ok, so here, at long last, is the statement that
; Piton is implemented on FM9001!

\end{verbatim}\begin{tabbing}{\sc Theorem}:  top-goal \\ \index{top-goal}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p0\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\it{load-addr\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{p-loadablep}}\,({\it{p0\/}}, {\it{load-addr\/}})\index{p-loadablep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\tt{32}}) \\ 
$\wedge$$\;\;\;\;$({\it{pn\/}} $=$ {\rm{p}}\,({\it{p0\/}}, {\it{n\/}})\index{p}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{errorp}}\,({\rm{p-psw}}\,({\it{pn\/}})\index{p-psw})\index{errorp}) \\ 
$\wedge$$\;\;\;\;$({\it{ts\/}} $=$ {\rm{type-specification}}\,({\rm{p-data-segment}}\,({\it{pn\/}})\index{p-data-segment})\index{type-specification}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\it{pn\/}})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{display-fm9001-data-segment}}\,(\=\+{\rm{fm9001}}\,(\=\+{\rm{load}}\,({\it{p0\/}}, {\it{boot-lst\/}}, {\it{load-addr\/}})\index{load}, \\ 
{\rm{fm9001-clock}}\,({\it{p0\/}}, {\it{n\/}})\index{fm9001-clock})\-\index{fm9001}, \\ 
{\it{ts\/}}, \\ 
{\rm{link-tables}}\,({\it{p0\/}}, {\it{load-addr\/}})\index{link-tables})\-\index{display-fm9001-data-segment})\-\-
\end{tabbing}


\noindent{\sc Event}:   Set the status of all events.  The status of each event is to be set as follows.  Each `boot-strap' satellite is to be returned to the initial condition.  Each `add-shell' satellite is to be enabled.  enabled.  Anything not otherwise mentioned is to be disabled.   Name this event `close-data-base-6'.\index{close-data-base-6}

\addvspace{18pt}

\begin{verbatim}; The rest of this file is related to the implementation of the
; fm9001.  Since this version of Piton is built on an fm9001 events
; file that does not go down to that level, we omit the events below.

#|
(enable-theory (fm9001=fm9001-interpreter
                fm9001-statep
                map-down
                map-up-inverts-map-down
                fm9001-statep-implies-fm9001-state-structure
                fm9001-statep-implies-macrocycle-invariant-lemma1
                fm9001-statep-implies-macrocycle-invariant
                fm9001=chip-system-lemma1
                fm9001=chip-system))

; Book:  Piton to Dual-Eval.  We now wish to connect Piton to DUAL-EVAL, i.e.,
; to eliminate FM9001 and go straight down to the bottom.  The motivation is
; to make it easier for the user of Piton to connect his machine to the gate
; level, so that stacks can be built step-wise:  Each layer should finish by
; connecting to the bottom in one step.


; We now develop the lemmas leading to the theorem that maps Piton all the
; way down to the dual-eval level.

(defn ram-tree-hint (lst n) 
  (cond ((zerop n) t) 
        ((nlistp lst) t) 
        (t (cons (ram-tree-hint (firstn (exp 2 (sub1 n)) lst) 
                                (sub1 n)) 
                 (ram-tree-hint (restn (exp 2 (sub1 n)) lst) 
                                (sub1 n))))))

(prove-lemma not-equal-times-2-x-1 (rewrite)
  (not (equal (times 2 x) 1))
  ((enable times-0)))

(prove-lemma bvp-listp-firstn (rewrite)
  (implies (bvp-listp lst)
           (bvp-listp (firstn n lst))))

(prove-lemma bvp-listp-restn (rewrite)
  (implies (bvp-listp lst)
           (bvp-listp (restn n lst))))

(prove-lemma memory-okp-ram-tree (rewrite)
  (implies (bvp-listp lst)
           (memory-okp n 32 (ram-tree lst (exp 2 n))))
  ((enable quotient-times-instance-temp)
   (induct (ram-tree-hint lst n))))

(prove-lemma memory-okp-ram-tree-bridge (rewrite)
  (implies (and (bvp-listp lst)
                (equal k (exp 2 n)))
           (memory-okp n 32 (ram-tree lst k))))

(disable memory-okp-ram-tree)

(prove-lemma bvp-listp-cons (rewrite)
  (equal (bvp-listp (cons bv lst))
         (and (bvp bv)
              (equal (length bv) 32)
              (bvp-listp lst))))

(prove-lemma all-ramp-mem-ram-tree (rewrite)
  (implies (not (lessp (length lst) (exp 2 n)))
           (all-ramp-mem n (ram-tree lst (exp 2 n))))
  ((enable quotient-times-instance-temp length-firstn length-restn  lessp-0-exp)
   (induct (ram-tree-hint lst n))))

(prove-lemma all-ramp-mem-ram-tree-bridge (rewrite)
  (implies (and (equal k (exp 2 n))
                (not (lessp (length lst) k)))
           (all-ramp-mem n (ram-tree lst k))))

(disable all-ramp-mem-ram-tree)

(prove-lemma fm9001-statep-load (rewrite)
  (implies (and (proper-p-statep p0)
                (p-loadablep p0 load-addr)
                (equal (p-word-size p0) 32))
           (fm9001-statep (load p0 boot-lst load-addr)))
  ((disable proper-p-statep p-loadablep link-word  p->r_cfp p->r_csp p->r_tsp
            p->r_sys-data-segment r->i_pc icompile r->i_psw i-link-tables
            all-ramp-mem memory-okp ram-tree)
   (enable *1*exp length-cons size-link-word bvp-link-word bvp-listp-append
           bvp-listp-boot-code
           bvp-listp-link-segment bool-to-logical-non-f)))

(disable fm9001=fm9001-interpreter)

(prove-lemma piton-to-dual-eval (rewrite)
  (implies (and (proper-p-statep p0)
                (p-loadablep p0 load-addr)
                (numberp load-addr)
                (equal (p-word-size p0) 32)
                (not (errorp (p-psw (p p0 n))))
                (equal ts (type-specification (p-data-segment (p p0 n))))
                (chip-system& netlist)
                (chip-system-operating-inputs-p inputs 
                                                (total-microcycles (map-down (load p0 boot-lst load-addr)) 
                                                                   (map-up-inputs inputs) 
                                                                   (fm9001-clock p0 n))) 
                (operating-inputs-p (map-up-inputs inputs) 
                                    (total-microcycles (map-down (load p0 boot-lst load-addr)) 
                                                       (map-up-inputs inputs) 
                                                       (fm9001-clock p0 n))))
           (equal (p-data-segment (p p0 n))
                  (display-fm9001-data-segment
                   (map-up
                    (simulate-dual-eval-2 'chip-system inputs
                                          (map-down (load p0 boot-lst load-addr))
                                          netlist 
                                          (total-microcycles (map-down (load p0 boot-lst load-addr)) 
                                                             (map-up-inputs inputs) 
                                                             (fm9001-clock p0 n))))
                   ts
                   (link-tables p0 load-addr))))
  ((enable fm9001=chip-system)
   (disable proper-p-statep p-loadablep errorp type-specification p chip-system&
            chip-system-operating-inputs-p total-microcycles map-down load map-up-inputs
            fm9001-clock operating-inputs-p display-fm9001-data-segment map-up
            simulate-dual-eval-2 link-tables)
   (use (top-goal (pn (p p0 n))))))

(set-status close-data-base-7 t ((boot-strap initial)
                                 (add-shell enable)
                                 ((defn *1*defn) enable)
                                 (otherwise disable)))

|#

\end{verbatim}
\noindent{\sc Event}:   Make the library {\tt{"piton"}} and compile it.

\addvspace{18pt}

%\end{list}
\printindex
\end{document}
