\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.

 This script is hereby placed in the public domain, and therefore unlimited
 editing and redistribution is permitted.

 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.

|#

; ------------------------------------------------------------
; was lr-eval5-1.events
; ------------------------------------------------------------

\end{verbatim}
\noindent{\sc Event}:   Start with the library {\tt{"app-c-d-e"}} using the compiled version.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  axiom-53 \\ \index{axiom-53}
{\rm{subrp}}\,({\it{fn\/}}) $\rightarrow$ ({\rm{formals}}\,({\it{fn\/}}) $=$ {\bf{f}})
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-restructuring.

\addvspace{18pt}

\begin{verbatim};; Function for testing s->r
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{change-elements} \\  
\=\+{\rm{change-elements}}\,({\it{list\/}})\index{change-elements} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{truep}}\,({\rm{car}}\,({\it{list\/}}))$\;\;${\bf then }{\rm{cons}}\,({\sc{false}}, {\rm{change-elements}}\,({\rm{cdr}}\,({\it{list\/}}))\index{change-elements}) \\ 
{\bf else }{\rm{cons}}\,({\sc{true}}, {\rm{change-elements}}\,({\rm{cdr}}\,({\it{list\/}}))\index{change-elements})$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{truep}}\,({\it{list\/}})$\;\;${\bf then }{\sc{false}} \\ 
{\bf else }{\sc{true}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable deposit.

\addvspace{18pt}

\noindent{\sc Event}:   Disable fetch.

\addvspace{18pt}


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

\addvspace{18pt}

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

\addvspace{18pt}

\noindent{\sc Event}:   Disable offset.

\addvspace{18pt}

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

\addvspace{18pt}


\noindent{\sc Event}:   Disable errorp.

\addvspace{18pt}


\noindent{\sc Event}:   Disable p-current-program.

\addvspace{18pt}

\begin{verbatim};; The following is inspired by the lemma length-put of Piton.
;; Now in Piton-basis  A. Flatau  8-Oct-1990
;(prove-lemma MY-LENGTH-PUT (rewrite)
;  (equal (length (put val n lst))
;	 (if (lessp n (length lst))
;	     (length lst)
;	     (add1 n)))
;  ((enable put)))
;
;(disable my-length-put)

;; This is similar to the lemma GET-PUT from Piton, but for the commented
;; out hypothesis.
\end{verbatim}\begin{tabbing}{\sc Theorem}:  my-get-put \\ \index{my-get-put}
\=\+(({\it{k\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) \\ 
$\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}


\noindent{\sc Event}:   Disable my-get-put.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  listp-cdr-p-frame \\ \index{listp-cdr-p-frame}
{\rm{listp}}\,({\rm{cdr}}\,({\rm{p-frame}}\,({\it{bindings\/}}, {\it{ret-pc\/}})\index{p-frame}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-cddr-p-frame-nil \\ \index{equal-cddr-p-frame-nil}
{\rm{cddr}}\,({\rm{p-frame}}\,({\it{bindings\/}}, {\it{ret-pc\/}})\index{p-frame}) $=$ {\bf{nil}}
\end{tabbing}

\begin{verbatim}#||
;; The following is used to test handling of temp variables
(defn FOO (state name)
  (let ((prog (app name state)))
    (cons state (cons (car prog) (cons (cadr prog) (caddr prog))))))

;(setq ss
;      (logic->s '(change-elements (cons '*1*true (app x y)))
;		 '((x . (*1*true *1*true . *1*false))
;		   (y . (*1*true . *1*false)))
;		  '(change-elements app)))
;(setq lrs (s->lr ss 'main 50 50 50 32))
;(setq foop
;      '(FOO (STATE NAME)
;	    ((APP NAME STATE)
;	     (CDR ((TEMP-FETCH) (APP NAME STATE))))
;	    (CONS STATE
;		  (CONS (CAR ((TEMP-EVAL) (APP NAME STATE)))
;			(CONS (CAR ((TEMP-EVAL)
;				    (CDR ((TEMP-FETCH) (APP NAME STATE)))))
;			      (CAR (CDR ((TEMP-FETCH)
;					 (CDR ((temp-fetch)
;					       (APP NAME STATE)))))))))))
;
;(setq ss1 (s-state (s-expr ss)
;		   (s-params ss)
;		   (s-temps ss)
;		   (s-consts ss)
;		   (put-assoc (cdr foop) 'foo (s-progs ss))
;		   'run))
;
;(setq ss2 (s-state '(FOO (CHANGE-ELEMENTS (CONS '(ADDR (heap . 4))
;						(APP ((temp-eval) X) Y)))
;			 ((temp-fetch) X))
;		   (s-params ss1)
;		   (make-temps-entries '(x))
;		   (s-consts ss1)
;		   (s-progs ss1)
;		   'run))
||#

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-l-eval-equiv-hyps} \\  
\=\+{\rm{s-l-eval-equiv-hyps}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-l-eval-equiv-hyps} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-l-eval-flag-run-hyps} \\  
\=\+{\rm{s-l-eval-flag-run-hyps}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-l-eval-flag-run-hyps} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,(\=\+{\it{flag\/}}, \\ 
\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}}$\;\;${\bf then }{\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list} \\ 
{\bf else }{\rm{s-expr}}\,({\it{s\/}})\index{s-expr}$\;${\bf  endif}\-, \\ 
{\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\-\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\bf{f}} $\not\in$ {\rm{l-eval}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{s-expand-temps}}\,({\it{flag\/}}, {\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list})\index{s-expand-temps}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{c\/}})\-\index{l-eval} \\ 
{\bf else }{\rm{l-eval}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{s-expand-temps}}\,({\it{flag\/}}, {\rm{s-expr}}\,({\it{s\/}})\index{s-expr})\index{s-expand-temps}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{c\/}})\-\index{l-eval}$\;${\bf  endif}\- \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp})\-\-
\end{tabbing}


\begin{verbatim};; ***** The LR-level (R for Resource, L for logic).  *****
;; We used to have an LR-STATE shell.  Now we just use a P-STATE shell.
;; However we refer to LR-STATES which are P-STATEs with LR level programs.
;; The function LR->P compiles an LR-STATE to a Piton state, by compiling
;; the programs and converting the P-PC to a Piton PC.
;; We use P-STATE shells instead of LR-STATE shell because we used to have
;; define functions analogous to P-OBJECTP (and functions that called
;; P-OBJECTP) that took LR-STATES or parts thereof.

;; We use the Piton notion of a PROPER state.  It should be the case that
;; all the LR-STATEs we are interested in are PROPER-P-STATEPs after we
;; apply LR->P to them.

;; An LR PC object is a combination of a Piton PC object and an S level
;; S-PNAME and S-POS.  The translation of (s-pname s) and (s-pos s) from
;; the S level is: (TAG 'PC (CONS (S-PNAME S) (S-POS S)))

;; Each element of P-PROG-SEGMENT is a program.  A program is a list
;; of the form:
;;
;; (name (formal1 formal2 ... formaln)
;;       ((temp1 init1)
;;        ...
;;        (tempk initk))
;;       body)
;;
;; The name and each formal and temp is a symbol.  The initial values
;; of the temps are tagged values.  Body is a form similar to that for
;; the S level, but temporary expressions have been replaced the name of
;; a temporary variable added to them
;; e.g. ((S-TEMP-EVAL) <expr>) -> ((S-TEMP-EVAL) <expr> <var>).
;; In the case of (S-TEMP-FETCH) <expr> is never used but we put it
;; in for consistency and so it is easier to convert back to s-states.
;; Also the numbers in the S level quote constructs have been replaced
;; by data-addresses that should contain pointers to the appropriate
;; structure in the heap.

;; Roughly speaking, a function application of FUN binds the formals to
;; the top n elements of the temp-stk (removing them from that stack and
;; building a ctrl-stk frame), binds the temps to the corresponding tagged
;; values (also in the ctrl-stk frame), and executes each instruction.

;; Producing LR-code from S-code.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-undefined-tag}$\;\;$
{\sc{lr-undefined-tag}}\index{lr-undefined-tag} $=$ {\tt{0}}
\end{tabbing}		\begin{verbatim}; Used in node to indicate
					; uninitialized temporary variable
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-init-tag}$\;\;$
{\sc{lr-init-tag}}\index{lr-init-tag} $=$ {\tt{1}}
\end{tabbing}			\begin{verbatim}; Used in initial nodes that have
					; not been used
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-false-tag}$\;\;$
{\sc{lr-false-tag}}\index{lr-false-tag} $=$ {\tt{2}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-true-tag}$\;\;$
{\sc{lr-true-tag}}\index{lr-true-tag} $=$ {\tt{3}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-add1-tag}$\;\;$
{\sc{lr-add1-tag}}\index{lr-add1-tag} $=$ {\tt{4}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-cons-tag}$\;\;$
{\sc{lr-cons-tag}}\index{lr-cons-tag} $=$ {\tt{5}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-pack-tag}$\;\;$
{\sc{lr-pack-tag}}\index{lr-pack-tag} $=$ {\tt{6}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-minus-tag}$\;\;$
{\sc{lr-minus-tag}}\index{lr-minus-tag} $=$ {\tt{7}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-heap-name}$\;\;$
{\sc{lr-heap-name}}\index{lr-heap-name} $=$ {\tt{'}}{\tt{heap}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-node-size}$\;\;$
{\sc{lr-node-size}}\index{lr-node-size} $=$ {\tt{4}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-undef-addr}$\;\;$
{\sc{lr-undef-addr}}\index{lr-undef-addr} $=$ {\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\tt{'}}{\tt{(}}{\tt{heap}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-f-addr}$\;\;$
{\sc{lr-f-addr}}\index{lr-f-addr} $=$ {\rm{add-addr}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-t-addr}$\;\;$
{\sc{lr-t-addr}}\index{lr-t-addr} $=$ {\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-0-addr}$\;\;$
{\sc{lr-0-addr}}\index{lr-0-addr} $=$ {\rm{add-addr}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-fp-addr}$\;\;$
{\sc{lr-fp-addr}}\index{lr-fp-addr} $=$ {\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\tt{'}}{\tt{(}}{\tt{free-ptr}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-answer-addr}$\;\;$
{\sc{lr-answer-addr}}\index{lr-answer-addr} $=$ {\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\tt{'}}{\tt{(}}{\tt{answer}}{\tt{ .\ }}{\tt{0}}{\tt{)}})\index{tag}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-fetch-fp}$\;\;$
{\rm{lr-fetch-fp}}\,({\it{data-seg\/}})\index{lr-fetch-fp} $=$ {\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-minimum-heap-size} \\  
{\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size} $=$ {\rm{offset}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr})\index{offset}
\end{tabbing}

\begin{verbatim};; The heap is a (presumably large) Piton data area.  It contains Nodes
;; which are four words.  One word is for the tag, one for the reference
;; count, and two for the contents.  Some data-types only require one word
;; for the contents (e.g. NUMBERPs) in that case one word is wasted.  Some
;; (user-defined) data-types require more than two words. In this case the
;; second word is a pointer to another node.  This contains up to three
;; words of data, the fourth word (if the data type needs more that four
;; words) is used to link another node with the same format.  The heap is
;; the Piton data area named HEAP.

;; LR-NEW-NODE returns another node to be stuck in memory
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-new-node} \\  
\=\+{\rm{lr-new-node}}\,({\it{tag\/}}, {\it{ref-count\/}}, {\it{value1\/}}, {\it{value2\/}})\index{lr-new-node} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\it{tag\/}}, {\it{ref-count\/}}, {\it{value1\/}}, {\it{value2\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-ref-count-offset}$\;\;$
{\sc{lr-ref-count-offset}}\index{lr-ref-count-offset} $=$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-car-offset}$\;\;$
{\sc{lr-car-offset}}\index{lr-car-offset} $=$ {\tt{2}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-cdr-offset}$\;\;$
{\sc{lr-cdr-offset}}\index{lr-cdr-offset} $=$ {\tt{3}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-unpack-offset}$\;\;$
{\sc{lr-unpack-offset}}\index{lr-unpack-offset} $=$ {\tt{2}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-unbox-nat-offset}$\;\;$
{\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset} $=$ {\tt{2}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-negative-guts-offset}$\;\;$
{\sc{lr-negative-guts-offset}}\index{lr-negative-guts-offset} $=$ {\tt{2}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-boundary-offsetp} \\  
{\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} $=$ (({\it{offset\/}} ${}${\bf{mod}}${}$ {\sc{lr-node-size}}\index{lr-node-size}) $=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-boundary-nodep} \\  
{\rm{lr-boundary-nodep}}\,({\it{node\/}})\index{lr-boundary-nodep} $=$ {\rm{lr-boundary-offsetp}}\,({\rm{offset}}\,({\it{node\/}})\index{offset})\index{lr-boundary-offsetp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-nodep} \\  
\=\+{\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}))\-\-
\end{tabbing}

\begin{verbatim};; LR-GOOD-POINTERP checks that an addr is a node and its ref count field
;; is a natural.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-good-pointerp} \\  
\=\+{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-expr} \\  
{\rm{lr-expr}}\,({\it{p\/}})\index{lr-expr} $=$ {\rm{cur-expr}}\,({\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{cur-expr}
\end{tabbing}


\noindent{\sc Event}:   Disable lr-expr.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-expr-list} \\  
\=\+{\rm{lr-expr-list}}\,({\it{p\/}})\index{lr-expr-list} \\ 
$=$$\;\;\;\;${\rm{restn}}\,(\=\+{\rm{car}}\,({\rm{last}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset})\index{last}), \\ 
{\rm{cur-expr}}\,(\=\+{\rm{butlast}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset})\index{butlast}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{program-body})\-\index{cur-expr})\-\index{restn}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-expr-list.

\addvspace{18pt}

\begin{verbatim};;; Debugging Stuff.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{mark-instr} \\  
\=\+{\rm{mark-instr}}\,({\it{instruction-list\/}}, {\it{n\/}})\index{mark-instr} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$ \\ 
{\bf then }{\rm{cons}}\,({\rm{list}}\,({\tt{'}}{\tt{pc-$>$}}, {\rm{car}}\,({\it{instruction-list\/}})), {\rm{cdr}}\,({\it{instruction-list\/}})) \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{car}}\,({\it{instruction-list\/}}), \\ 
{\rm{mark-instr}}\,({\rm{cdr}}\,({\it{instruction-list\/}}), {\it{n\/}} $-\;1$)\index{mark-instr})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fix-program-segment} \\  
\=\+{\rm{fix-program-segment}}\,({\it{programs\/}}, {\it{pc\/}})\index{fix-program-segment} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{programs\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{prog\/}}{\bf $\;$ be$\;\;$}{\rm{car}}\,({\it{programs\/}})\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{car}}\,({\it{prog\/}}) $=$ {\rm{area-name}}\,({\it{pc\/}})\index{area-name} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{append}}\,(\=\+{\rm{list}}\,({\rm{car}}\,({\it{prog\/}}), {\rm{cadr}}\,({\it{prog\/}}), {\rm{caddr}}\,({\it{prog\/}})), \\ 
{\rm{mark-instr}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\rm{offset}}\,({\it{pc\/}})\index{offset})\index{mark-instr})\-, \\ 
{\rm{fix-program-segment}}\,({\rm{cdr}}\,({\it{programs\/}}), {\it{pc\/}})\index{fix-program-segment})\- \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{car}}\,({\it{prog\/}}), \\ 
{\rm{fix-program-segment}}\,({\rm{cdr}}\,({\it{programs\/}}), {\it{pc\/}})\index{fix-program-segment})\-$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{fix-data-segment} \\  
\=\+{\rm{fix-data-segment}}\,({\it{data-segment\/}})\index{fix-data-segment} \\ 
$=$$\;\;\;\;${\rm{put-value}}\,(\=\+{\rm{append}}\,(\=\+{\rm{firstn}}\,(\=\+{\rm{offset}}\,({\rm{lr-fetch-fp}}\,({\it{data-segment\/}})\index{lr-fetch-fp})\index{offset}, \\ 
{\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-segment\/}})\index{value})\-\index{firstn}, \\ 
\=\+{\rm{length}}\,({\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-segment\/}})\index{value})\index{length} \\ 
$-$$\;\;\;\;${\rm{offset}}\,({\rm{lr-fetch-fp}}\,({\it{data-segment\/}})\index{lr-fetch-fp})\index{offset}\-)\-, \\ 
{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\it{data-segment\/}})\-\index{put-value}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{find-non-proper-instr} \\  
\=\+{\rm{find-non-proper-instr}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p\/}})\index{find-non-proper-instr} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{lst\/}}) \\ 
{\bf then }\=\+{\bf if }\=\+{\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}\- \\ 
{\bf then }{\rm{find-non-proper-instr}}\,({\rm{cdr}}\,({\it{lst\/}}), {\it{name\/}}, {\it{p\/}})\index{find-non-proper-instr} \\ 
{\bf else }{\rm{car}}\,({\it{lst\/}})$\;${\bf  endif}\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}


\begin{tabbing}{\sc Definition}:\index{find-non-proper-programs} \\  
\=\+{\rm{find-non-proper-programs}}\,({\it{progs\/}}, {\it{p\/}})\index{find-non-proper-programs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{progs\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{proper-p-programp}}\,({\rm{car}}\,({\it{progs\/}}), {\it{p\/}})\index{proper-p-programp} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{name}}\,({\rm{car}}\,({\it{progs\/}}))\index{name}, \\ 
{\rm{find-non-proper-programs}}\,({\rm{cdr}}\,({\it{progs\/}}), {\it{p\/}})\index{find-non-proper-programs})\- \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{list}}\,(\=\+{\tt{'}}{\tt{not}}, \\ 
{\rm{name}}\,({\rm{car}}\,({\it{progs\/}}))\index{name}, \\ 
{\rm{find-non-proper-instr}}\,(\=\+{\rm{program-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{program-body}, \\ 
{\rm{name}}\,({\rm{car}}\,({\it{progs\/}}))\index{name}, \\ 
{\it{p\/}})\-\index{find-non-proper-instr})\-, \\ 
{\rm{find-non-proper-programs}}\,({\rm{cdr}}\,({\it{progs\/}}), {\it{p\/}})\index{find-non-proper-programs})\-$\;${\bf  endif}\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pps} \\  
\=\+{\rm{pps}}\,({\it{state\/}})\index{pps} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{p-state}}, \\ 
{\rm{p-pc}}\,({\it{state\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{state\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{state\/}})\index{p-temp-stk}, \\ 
\=\+{\bf let }\=\+{\it{p\/}}{\bf $\;$ be$\;\;$}{\rm{p-current-program}}\,({\it{state\/}})\index{p-current-program}\- \\ 
{\bf in} \\ 
{\rm{append}}\,(\=\+{\rm{list}}\,({\rm{name}}\,({\it{p\/}})\index{name}, {\rm{formal-vars}}\,({\it{p\/}})\index{formal-vars}, {\rm{temp-var-dcls}}\,({\it{p\/}})\index{temp-var-dcls}), \\ 
{\rm{mark-instr}}\,({\rm{program-body}}\,({\it{p\/}})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{state\/}})\index{p-pc})\index{offset})\index{mark-instr})\-$\;${\bf  endlet}\-, \\ 
{\rm{fix-data-segment}}\,({\rm{p-data-segment}}\,({\it{state\/}})\index{p-data-segment})\index{fix-data-segment}, \\ 
{\rm{p-psw}}\,({\it{state\/}})\index{p-psw})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-nodify-tag} \\  
\=\+{\rm{lr-nodify-tag}}\,({\it{tag\/}})\index{lr-nodify-tag} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{untag}}\,({\it{tag\/}})\index{untag} $=$ {\sc{lr-false-tag}}\index{lr-false-tag}$\;\;${\bf then }{\tt{'}}{\tt{false}} \\ 
{\bf elseif }{\rm{untag}}\,({\it{tag\/}})\index{untag} $=$ {\sc{lr-true-tag}}\index{lr-true-tag}$\;\;${\bf then }{\tt{'}}{\tt{true}} \\ 
{\bf elseif }{\rm{untag}}\,({\it{tag\/}})\index{untag} $=$ {\sc{lr-add1-tag}}\index{lr-add1-tag}$\;\;${\bf then }{\tt{'}}{\tt{add1}} \\ 
{\bf elseif }{\rm{untag}}\,({\it{tag\/}})\index{untag} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag}$\;\;${\bf then }{\tt{'}}{\tt{cons}} \\ 
{\bf elseif }{\rm{untag}}\,({\it{tag\/}})\index{untag} $=$ {\sc{lr-pack-tag}}\index{lr-pack-tag}$\;\;${\bf then }{\tt{'}}{\tt{pack}} \\ 
{\bf else }{\tt{'}}{\tt{unknown}}$\;${\bf  endif}\-\-
\end{tabbing}
  
\begin{tabbing}{\sc Definition}:\index{lr-nodify} \\  
\=\+{\rm{lr-nodify}}\,({\it{number\/}}, {\it{nodes\/}}, {\it{final\/}})\index{lr-nodify} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{nodes\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{list}}\,(\=\+{\tt{'}}{\tt{node}}, \\ 
{\it{number\/}}, \\ 
{\rm{lr-nodify-tag}}\,({\rm{car}}\,({\it{nodes\/}}))\index{lr-nodify-tag}, \\ 
{\rm{caddr}}\,({\it{nodes\/}}), \\ 
{\rm{cadddr}}\,({\it{nodes\/}}))\-, \\ 
{\rm{lr-nodify}}\,({\it{number\/}} $+$ {\sc{lr-node-size}}\index{lr-node-size}, {\rm{cddddr}}\,({\it{nodes\/}}), {\it{final\/}})\index{lr-nodify})\- \\ 
{\bf else }{\it{final\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-fix-data-segment} \\  
\=\+{\rm{lr-fix-data-segment}}\,({\it{data-seg\/}})\index{lr-fix-data-segment} \\ 
$=$$\;\;\;\;${\rm{put-value}}\,(\=\+{\rm{lr-nodify}}\,(\=\+{\tt{0}}, \\ 
{\rm{firstn}}\,(\=\+{\rm{offset}}\,({\rm{lr-fetch-fp}}\,({\it{data-seg\/}})\index{lr-fetch-fp})\index{offset}, \\ 
{\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{value})\-\index{firstn}, \\ 
\=\+{\rm{length}}\,({\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{value})\index{length} \\ 
$-$$\;\;\;\;${\rm{offset}}\,({\rm{lr-fetch-fp}}\,({\it{data-seg\/}})\index{lr-fetch-fp})\index{offset}\-)\-\index{lr-nodify}, \\ 
{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\it{data-seg\/}})\-\index{put-value}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lrps} \\  
\=\+{\rm{lrps}}\,({\it{state\/}})\index{lrps} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{state\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{state\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{state\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{state\/}})\index{p-prog-segment}, \\ 
{\rm{lr-fix-data-segment}}\,({\rm{p-data-segment}}\,({\it{state\/}})\index{p-data-segment})\index{lr-fix-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{state\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{state\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{state\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{state\/}})\index{p-psw})\-\index{p-state}\-
\end{tabbing}


\begin{verbatim};; Returns the object denoted by addr in the heap.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-abs} \\  
\=\+{\rm{lr-abs}}\,({\it{addr\/}}, {\it{data-seg\/}}, {\it{n\/}})\index{lr-abs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }\=\+{\bf let }\=\+{\it{tag\/}}{\bf $\;$ be$\;\;$}{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\it{tag\/}} $=$ {\sc{lr-false-tag}}\index{lr-false-tag}$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\it{tag\/}} $=$ {\sc{lr-true-tag}}\index{lr-true-tag}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{tag\/}} $=$ {\sc{lr-add1-tag}}\index{lr-add1-tag} \\ 
{\bf then }{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{untag} \\ 
{\bf elseif }{\it{tag\/}} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag} \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{lr-abs}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}}, \\ 
{\it{n\/}} $-\;1$)\-\index{lr-abs}, \\ 
{\rm{lr-abs}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}}, \\ 
{\it{n\/}} $-\;1$)\-\index{lr-abs})\- \\ 
{\bf elseif }{\it{tag\/}} $=$ {\sc{lr-pack-tag}}\index{lr-pack-tag} \\ 
{\bf then }{\rm{pack}}\,({\rm{lr-abs}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\it{addr\/}}, \\ 
{\sc{lr-unpack-offset}}\index{lr-unpack-offset})\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}}, \\ 
{\it{n\/}} $-\;1$)\-\index{lr-abs}) \\ 
{\bf else }$-$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\it{addr\/}}, \\ 
{\sc{lr-negative-guts-offset}}\index{lr-negative-guts-offset})\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{untag}$\;${\bf  endif}\-$\;${\bf  endlet}\-$\;${\bf  endif}\-\-
\end{tabbing}


\begin{tabbing}{\sc Definition}:\index{top-stk} \\  
\=\+{\rm{top-stk}}\,({\it{p-or-p-state\/}})\index{top-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{temp-stk\/}}{\bf $\;$ be$\;\;$}\=\+{\bf if }{\rm{p-statep}}\,({\it{p-or-p-state\/}})\index{p-statep} \\ 
{\bf then }{\rm{p-temp-stk}}\,({\it{p-or-p-state\/}})\index{p-temp-stk} \\ 
{\bf else }{\rm{p-temp-stk}}\,({\it{p-or-p-state\/}})\index{p-temp-stk}$\;${\bf  endif}\-, \\ 
{\it{data-segment\/}}{\bf $\;$ be$\;\;$}\=\+{\bf if }{\rm{p-statep}}\,({\it{p-or-p-state\/}})\index{p-statep} \\ 
{\bf then }{\rm{p-data-segment}}\,({\it{p-or-p-state\/}})\index{p-data-segment} \\ 
{\bf else }{\rm{p-data-segment}}\,({\it{p-or-p-state\/}})\index{p-data-segment}$\;${\bf  endif}\-\- \\ 
{\bf in} \\ 
{\rm{lr-abs}}\,({\rm{top}}\,({\it{temp-stk\/}})\index{top}, {\it{data-segment\/}}, {\tt{1000}})\index{lr-abs}$\;${\bf  endlet}\-\-
\end{tabbing}

\begin{verbatim};; This is accessed by the Piton accessors: NAME, FORMAL-VARS, TEMP-VAR-DCLS
;; and PROGRAM-BODY.  Also LOCAL-VARS.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-make-program} \\  
\=\+{\rm{lr-make-program}}\,({\it{name\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{body\/}})\index{lr-make-program} \\ 
$=$$\;\;\;\;${\rm{cons}}\,({\it{name\/}}, {\rm{cons}}\,({\it{formals\/}}, {\rm{cons}}\,({\it{temps\/}}, {\it{body\/}})))\-
\end{tabbing}

\begin{verbatim}#||
stolen from matt kaufmann's code for gensym, but modified to probably be
less useful but simplier.

here is a sequence of events for generating a new symbol.
the main function is near the end, and is called gensym.
gensym returns a pair the new symbol and the next number list to try.
here are some examples:

>(r-loop)

trace mode: off   abbreviated output mode:  on
type ? for help.
*(gensym (unpack 'a*) '(49) '(a*0 a*1 a*2 a*3))
 '(a*4 53)
*(gensym (unpack 'a*) '(53) '(a*0 a*1 a*2 a*3 a*4))
 '(a*5 54)
*(gensym (unpack 'a*) '(50) '(a*2))
 '(a*3 52)
*(gensym (unpack 'a*) '(50) '(a*0))
 '(a*2 51)
*(gensym (unpack 'a) '(48) '(a*0 a*1))
 '(a0 49)
*(gensym (unpack 'a) '(48) '(a b))
 '(a0 49)
*(gensym (unpack 'a*2*) '(51) '(a*2*3))
 '(a*2*4 53)
*(gensym (unpack 'b*) '(50) '(a*0 a*1 a*2 a*3))
 '(b*2 51)
*ok
exiting r-loop.
nil

||#


\end{verbatim}\begin{tabbing}{\sc Definition}:\index{ascii-0}$\;\;$
{\sc{ascii-0}}\index{ascii-0} $=$ {\tt{48}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{ascii-1}$\;\;$
{\sc{ascii-1}}\index{ascii-1} $=$ {\tt{49}}
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{ascii-9}$\;\;$
{\sc{ascii-9}}\index{ascii-9} $=$ {\tt{57}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{ascii-dash}$\;\;$
{\sc{ascii-dash}}\index{ascii-dash} $=$ {\tt{45}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{list-ascii-0}$\;\;$
{\sc{list-ascii-0}}\index{list-ascii-0} $=$ {\rm{list}}\,({\sc{ascii-0}}\index{ascii-0})
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{list-ascii-1}$\;\;$
{\sc{list-ascii-1}}\index{list-ascii-1} $=$ {\rm{list}}\,({\sc{ascii-1}}\index{ascii-1})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{increment-numlist} \\  
\=\+{\rm{increment-numlist}}\,({\it{numlist\/}})\index{increment-numlist} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{numlist\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{numlist\/}}) $=$ {\sc{ascii-9}}\index{ascii-9} \\ 
{\bf then }{\rm{cons}}\,({\sc{ascii-0}}\index{ascii-0}, {\rm{increment-numlist}}\,({\rm{cdr}}\,({\it{numlist\/}}))\index{increment-numlist}) \\ 
{\bf else }{\rm{cons}}\,($1\;+$ {\rm{car}}\,({\it{numlist\/}}), {\rm{cdr}}\,({\it{numlist\/}}))$\;${\bf  endif}\- \\ 
{\bf else }{\sc{list-ascii-1}}\index{list-ascii-1}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{make-symbol} \\  
\=\+{\rm{make-symbol}}\,({\it{initial\/}}, {\it{digit-list\/}})\index{make-symbol} \\ 
$=$$\;\;\;\;${\rm{pack}}\,({\rm{append}}\,({\rm{append}}\,({\it{initial\/}}, {\it{digit-list\/}}), {\tt{0}}))\-
\end{tabbing}


\noindent{\sc Event}:   Disable make-symbol.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{count-codelist1} \\  
\=\+{\rm{count-codelist1}}\,({\it{numlist\/}})\index{count-codelist1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{numlist\/}}) \\ 
{\bf then }{\rm{car}}\,({\it{numlist\/}}) $+$ ({\tt{10}} $*$ {\rm{count-codelist1}}\,({\rm{cdr}}\,({\it{numlist\/}}))\index{count-codelist1}) \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{subseqp} \\  
\=\+{\rm{subseqp}}\,({\it{list1\/}}, {\it{list2\/}})\index{subseqp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{length}}\,({\it{list2\/}})\index{length} $\not<$ {\rm{length}}\,({\it{list1\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{firstn}}\,({\rm{length}}\,({\it{list1\/}})\index{length}, {\it{list2\/}})\index{firstn} $=$ {\it{list1\/}}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable subseqp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{count-codelist} \\  
\=\+{\rm{count-codelist}}\,({\it{initial\/}}, {\it{ascii-list\/}})\index{count-codelist} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{subseqp}}\,({\it{initial\/}}, {\it{ascii-list\/}})\index{subseqp} \\ 
{\bf then }{\rm{count-codelist1}}\,({\rm{restn}}\,({\rm{length}}\,({\it{initial\/}})\index{length}, {\it{ascii-list\/}})\index{restn})\index{count-codelist1} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable count-codelist.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{max-count-codelist} \\  
\=\+{\rm{max-count-codelist}}\,({\it{initial\/}}, {\it{list\/}})\index{max-count-codelist} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }{\rm{max}}\,(\=\+{\rm{count-codelist}}\,({\it{initial\/}}, {\rm{unpack}}\,({\rm{car}}\,({\it{list\/}})))\index{count-codelist}, \\ 
{\rm{max-count-codelist}}\,({\it{initial\/}}, {\rm{cdr}}\,({\it{list\/}}))\index{max-count-codelist})\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  increment-num-list-count-code-list1 \\ \index{increment-num-list-count-code-li!st1}
{\rm{count-codelist1}}\,({\it{num-list\/}})\index{count-codelist1} $<$ {\rm{count-codelist1}}\,({\rm{increment-numlist}}\,({\it{num-list\/}})\index{increment-numlist})\index{count-codelist1}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subseqp-append \\ \index{subseqp-append}
{\rm{subseqp}}\,({\rm{plist}}\,({\it{x\/}})\index{plist}, {\rm{append}}\,({\it{x\/}}, {\it{anything\/}}))\index{subseqp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  count-codelist-make-symbol \\ \index{count-codelist-make-symbol}
\=\+({\it{x\/}} $=$ {\rm{make-symbol}}\,({\it{initial\/}}, {\it{num-list\/}})\index{make-symbol}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{count-codelist}}\,({\rm{plist}}\,({\it{initial\/}})\index{plist}, {\rm{unpack}}\,({\it{x\/}}))\index{count-codelist} \\ 
$=$$\;\;\;\;${\rm{count-codelist1}}\,({\it{num-list\/}})\index{count-codelist1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-make-symbol-max-count-code-list \\ \index{member-make-symbol-max-count-co!de-list}
\=\+({\rm{make-symbol}}\,({\it{initial\/}}, {\it{num-list\/}})\index{make-symbol} $\in$ {\it{atom-list\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{max-count-codelist}}\,({\rm{plist}}\,({\it{initial\/}})\index{plist}, {\it{atom-list\/}})\index{max-count-codelist} \\ 
$\not<$$\;\;\;\;${\rm{count-codelist1}}\,({\it{num-list\/}})\index{count-codelist1})\-\-
\end{tabbing}

\begin{verbatim};; Returns a pair, the new symbol and the next number to use
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{gensym} \\  
\=\+{\rm{gensym}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{atom-list\/}})\index{gensym} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{make-symbol}}\,({\it{initial\/}}, {\it{num-list\/}})\index{make-symbol} $\in$ {\it{atom-list\/}} \\ 
{\bf then }{\rm{gensym}}\,({\it{initial\/}}, {\rm{increment-numlist}}\,({\it{num-list\/}})\index{increment-numlist}, {\it{atom-list\/}})\index{gensym} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{make-symbol}}\,({\it{initial\/}}, {\it{num-list\/}})\index{make-symbol}, \\ 
{\rm{increment-numlist}}\,({\it{num-list\/}})\index{increment-numlist})\-$\;${\bf  endif}\-\-
\end{tabbing}


\begin{tabbing}{\sc Theorem}:  gensym-is-new \\ \index{gensym-is-new}
{\rm{car}}\,({\rm{gensym}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{atom-list\/}})\index{gensym}) $\not\in$ {\it{atom-list\/}}
\end{tabbing}

\begin{verbatim};; MAKE-TEMP-NAME-ALIST takes a temps-alist triple a la S-TEMPS and
;; returns an alist with entries of the form:
;; (<temp expression> . <variable>) where <variable> is guaranteed to
;; occur only once in the resulting alist and is guaranteed not to occur
;; in FORMALS.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-make-temp-name-alist-1} \\  
\=\+{\rm{lr-make-temp-name-alist-1}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{temp-list\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{gensym\/}}{\bf $\;$ be$\;\;$}{\rm{gensym}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{formals\/}})\index{gensym}\- \\ 
{\bf in} \\ 
{\rm{cons}}\,(\=\+{\rm{cons}}\,({\rm{car}}\,({\it{temp-list\/}}), {\rm{car}}\,({\it{gensym\/}})), \\ 
{\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\rm{cdr}}\,({\it{gensym\/}}), \\ 
{\rm{cdr}}\,({\it{temp-list\/}}), \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\-$\;${\bf  endlet}\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-make-temp-name-alist} \\  
\=\+{\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist} \\ 
$=$$\;\;\;\;${\rm{lr-make-temp-name-alist-1}}\,({\rm{unpack}}\,({\tt{'}}{\tt{t*}}), {\sc{list-ascii-0}}\index{list-ascii-0}, {\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist-1}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-new-cons} \\  
\=\+{\rm{lr-new-cons}}\,({\it{car\/}}, {\it{cdr\/}})\index{lr-new-cons} \\ 
$=$$\;\;\;\;${\rm{lr-new-node}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, {\it{car\/}}, {\it{cdr\/}})\index{lr-new-node}\-
\end{tabbing}
  
\begin{verbatim};; Deposit LIST of objects at ADDR, ADDR+1, ADDR+2, ... in DATA-SEG.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{deposit-a-list} \\  
\=\+{\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }{\rm{deposit}}\,(\=\+{\rm{car}}\,({\it{list\/}}), \\ 
{\it{addr\/}}, \\ 
{\rm{deposit-a-list}}\,({\rm{cdr}}\,({\it{list\/}}), {\rm{add1-addr}}\,({\it{addr\/}})\index{add1-addr}, {\it{data-seg\/}})\index{deposit-a-list})\-\index{deposit} \\ 
{\bf else }{\it{data-seg\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-init-heap-contents} \\  
\=\+{\rm{lr-init-heap-contents}}\,({\it{addr\/}}, {\it{size\/}})\index{lr-init-heap-contents} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{size\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{list}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-init-tag}}\index{lr-init-tag})\index{tag}) \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{lr-new-node}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-init-tag}}\index{lr-init-tag})\index{tag}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag})\-\index{lr-new-node}, \\ 
{\rm{lr-init-heap-contents}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}, \\ 
{\it{size\/}} $-\;1$)\-\index{lr-init-heap-contents})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-add-to-data-seg} \\  
\=\+{\rm{lr-add-to-data-seg}}\,({\it{data-seg\/}}, {\it{new-node\/}})\index{lr-add-to-data-seg} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+({\rm{length}}\,({\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{value})\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\rm{length}}\,({\it{new-node\/}})\index{length})\- \\ 
{\bf then }{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\it{new-node\/}}, \\ 
{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{deposit} \\ 
{\bf else }{\it{data-seg\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-init-data-seg} \\  
\=\+{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg} \\ 
$=$$\;\;\;\;${\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr})\-, \\ 
{\sc{lr-f-addr}}\index{lr-f-addr}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-undefined-tag}}\index{lr-undefined-tag})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr})\-, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}, \\ 
{\rm{add-addr}}\,(\=\+{\sc{lr-f-addr}}\index{lr-f-addr}, \\ 
{\sc{lr-node-size}}\index{lr-node-size})\-\index{add-addr})\-, \\ 
{\rm{list}}\,(\=\+{\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag})\-, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\rm{lr-init-heap-contents}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\tt{0}})\-)\-\index{tag}, \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\-)\-\index{deposit-a-list})\-\index{deposit-a-list}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{count-list} \\  
\=\+{\rm{count-list}}\,({\it{flag\/}}, {\it{object\/}})\index{count-list} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }\=\+{\rm{count-list}}\,({\bf{t}}, {\rm{car}}\,({\it{object\/}}))\index{count-list} \\ 
$+$$\;\;\;\;${\rm{count-list}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{object\/}}))\index{count-list}\- \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }$1\;+$ ($1\;+$ (\=\+{\rm{count-list}}\,({\bf{t}}, {\rm{car}}\,({\it{object\/}}))\index{count-list} \\ 
$+$$\;\;\;\;${\rm{count-list}}\,({\bf{t}}, {\rm{cdr}}\,({\it{object\/}}))\index{count-list})\-) \\ 
{\bf elseif }{\it{object\/}} $\in\;${\bf{N}}${}$$\;\;${\bf then }$1\;+$ {\rm{count}}\,({\it{object\/}}) \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-equal-0-count-list \\ \index{not-equal-0-count-list}
{\rm{count-list}}\,({\it{flag\/}}, {\it{object\/}})\index{count-list} $\not=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-count-list-cdr-count-list-whole \\ \index{lessp-count-list-cdr-count-list!-whole}
\=\+{\rm{listp}}\,({\it{object\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{count-list}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{object\/}}))\index{count-list} $<$ {\rm{count-list}}\,({\tt{'}}{\tt{list}}, {\it{object\/}})\index{count-list})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-count-not-list-car-count-list-whole \\ \index{lessp-count-not-list-car-count-!list-whole}
\=\+{\rm{listp}}\,({\it{object\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{count-list}}\,({\bf{t}}, {\rm{car}}\,({\it{object\/}}))\index{count-list} $<$ {\rm{count-list}}\,({\tt{'}}{\tt{list}}, {\it{object\/}})\index{count-list})\-
\end{tabbing}

\begin{verbatim};; LR-COMPILE-QUOTE returns a pair, the new HEAP and the new TABLE.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-compile-quote} \\  
\=\+{\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{heap\/}}, {\it{table\/}})\index{lr-compile-quote} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{car-pair\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{object\/}}), \\ 
{\it{heap\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{object\/}}), \\ 
{\rm{car}}\,({\it{car-pair\/}}), \\ 
{\rm{cdr}}\,({\it{car-pair\/}}))\-\index{lr-compile-quote}$\;${\bf  endlet}\- \\ 
{\bf else }{\rm{cons}}\,({\it{heap\/}}, {\it{table\/}})$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp}$\;\;${\bf then }{\rm{cons}}\,({\it{heap\/}}, {\it{table\/}}) \\ 
{\bf elseif }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{pair\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\rm{car}}\,({\it{object\/}}), {\rm{cdr}}\,({\it{object\/}})), \\ 
{\it{heap\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
{\rm{cons}}\,(\=\+{\rm{lr-add-to-data-seg}}\,(\=\+{\rm{car}}\,({\it{pair\/}}), \\ 
{\rm{lr-new-cons}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\it{object\/}}), \\ 
{\rm{cdr}}\,({\it{pair\/}}))\-), \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{cdr}}\,({\it{object\/}}), \\ 
{\rm{cdr}}\,({\it{pair\/}}))\-))\-\index{lr-new-cons})\-\index{lr-add-to-data-seg}, \\ 
{\rm{cons}}\,(\=\+{\rm{cons}}\,({\it{object\/}}, {\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{car}}\,({\it{pair\/}}))\index{fetch}), \\ 
{\rm{cdr}}\,({\it{pair\/}}))\-)\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\it{object\/}} $\in\;${\bf{N}}${}$ \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{lr-add-to-data-seg}}\,(\=\+{\it{heap\/}}, \\ 
{\rm{lr-new-node}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-add1-tag}}\index{lr-add1-tag})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{object\/}})\index{tag}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr})\-\index{lr-new-node})\-\index{lr-add-to-data-seg}, \\ 
{\rm{cons}}\,({\rm{cons}}\,({\it{object\/}}, {\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{heap\/}})\index{fetch}), {\it{table\/}}))\- \\ 
{\bf elseif }{\rm{truep}}\,({\it{object\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{lr-add-to-data-seg}}\,(\=\+{\it{heap\/}}, \\ 
{\rm{lr-new-node}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr})\-\index{lr-new-node})\-\index{lr-add-to-data-seg}, \\ 
{\rm{cons}}\,({\rm{cons}}\,({\it{object\/}}, {\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{heap\/}})\index{fetch}), {\it{table\/}}))\- \\ 
{\bf else }{\rm{cons}}\,({\it{heap\/}}, {\rm{cons}}\,({\rm{cons}}\,({\it{object\/}}, {\sc{lr-undef-addr}}\index{lr-undef-addr}), {\it{table\/}}))$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim};; LR-DATA-SEG-TABLE-BODY returns a pair, the CAR is the extension of
;; DATA-SEG with any constants laid down in it, the CDR is an alist
;; mapping objects in the logic to addresses in the new DATA-SEG
;; where they are represented.  The initial TABLE is such an alist
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-data-seg-table-body} \\  
\=\+{\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{dst1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{expr\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}\- \\ 
{\bf in} \\ 
{\rm{lr-data-seg-table-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\rm{car}}\,({\it{dst1\/}}), \\ 
{\rm{cdr}}\,({\it{dst1\/}}))\-\index{lr-data-seg-table-body}$\;${\bf  endlet}\- \\ 
{\bf else }{\rm{cons}}\,({\it{data-seg\/}}, {\it{table\/}})$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }\=\+({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{lr-data-seg-table-body}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{lr-compile-quote}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote} \\ 
{\bf else }{\rm{lr-data-seg-table-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{cons}}\,({\it{data-seg\/}}, {\it{table\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-data-seg-table-list} \\  
\=\+{\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{progs\/}}) \\ 
{\bf then }{\rm{lr-data-seg-table-list}}\,(\=\+{\rm{cdr}}\,({\it{progs\/}}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-data-seg-table-list} \\ 
{\bf else }{\rm{cons}}\,({\it{data-seg\/}}, {\it{table\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-init-data-seg-table} \\  
\=\+{\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{params\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{ds-tab\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,({\bf{t}}, {\rm{cdar}}\,({\it{params\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
{\rm{lr-init-data-seg-table}}\,(\=\+{\rm{cdr}}\,({\it{params\/}}), \\ 
{\rm{car}}\,({\it{ds-tab\/}}), \\ 
{\rm{cdr}}\,({\it{ds-tab\/}}))\-\index{lr-init-data-seg-table}$\;${\bf  endlet}\- \\ 
{\bf else }{\rm{cons}}\,({\it{data-seg\/}}, {\it{table\/}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-data-seg-table} \\  
\=\+{\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{init-ds-table1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\sc{lr-f-addr}}\index{lr-f-addr})))\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{init-ds-table2\/}}{\bf $\;$ be$\;\;$}{\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table1\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table1\/}}))\-\index{lr-init-data-seg-table}\- \\ 
{\bf in} \\ 
{\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table2\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table2\/}}))\-\index{lr-data-seg-table-list}$\;${\bf  endlet}\-$\;${\bf  endlet}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{pair-formals-with-addresses} \\  
\=\+{\rm{pair-formals-with-addresses}}\,({\it{formals\/}}, {\it{table\/}})\index{pair-formals-with-addresses} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{formals\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{cons}}\,({\rm{caar}}\,({\it{formals\/}}), {\rm{cdr}}\,({\rm{assoc}}\,({\rm{cdar}}\,({\it{formals\/}}), {\it{table\/}}))), \\ 
{\rm{pair-formals-with-addresses}}\,({\rm{cdr}}\,({\it{formals\/}}), {\it{table\/}})\index{pair-formals-with-addresses})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-make-initial-temps} \\  
\=\+{\rm{lr-make-initial-temps}}\,({\it{temp-vars\/}})\index{lr-make-initial-temps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{temp-vars\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{cons}}\,({\rm{car}}\,({\it{temp-vars\/}}), {\sc{lr-undef-addr}}\index{lr-undef-addr}), \\ 
{\rm{lr-make-initial-temps}}\,({\rm{cdr}}\,({\it{temp-vars\/}}))\index{lr-make-initial-temps})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-initial-cstk} \\  
\=\+{\rm{lr-initial-cstk}}\,({\it{params\/}}, {\it{temp-alist\/}}, {\it{table\/}}, {\it{pc\/}})\index{lr-initial-cstk} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\rm{p-frame}}\,(\=\+{\rm{append}}\,(\=\+{\rm{pair-formals-with-addresses}}\,({\it{params\/}}, {\it{table\/}})\index{pair-formals-with-addresses}, \\ 
{\rm{lr-make-initial-temps}}\,({\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs})\index{lr-make-initial-temps})\-, \\ 
{\it{pc\/}})\-\index{p-frame})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-compile-body} \\  
\=\+{\rm{lr-compile-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{temp-alist\/}}, {\it{const-table\/}})\index{lr-compile-body} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{body\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{lr-compile-body}}\,({\bf{t}}, {\rm{car}}\,({\it{body\/}}), {\it{temp-alist\/}}, {\it{const-table\/}})\index{lr-compile-body}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{const-table\/}})\-\index{lr-compile-body})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{body\/}}) \\ 
{\bf then }\=\+{\bf if }\=\+({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{list}}\,(\=\+{\rm{car}}\,({\it{body\/}}), \\ 
{\rm{lr-compile-body}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{temp-alist\/}}, {\it{const-table\/}})\index{lr-compile-body}, \\ 
{\rm{value}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{temp-alist\/}})\index{value})\- \\ 
{\bf elseif }{\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{list}}\,({\tt{'}}{\tt{quote}}, {\rm{value}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{const-table\/}})\index{value}) \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{car}}\,({\it{body\/}}), \\ 
{\rm{lr-compile-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{const-table\/}})\-\index{lr-compile-body})\-$\;${\bf  endif}\- \\ 
{\bf else }{\it{body\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-make-temp-var-dcls} \\  
\=\+{\rm{lr-make-temp-var-dcls}}\,({\it{temp-alist\/}})\index{lr-make-temp-var-dcls} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{temp-alist\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{list}}\,({\rm{cdar}}\,({\it{temp-alist\/}}), {\sc{lr-undef-addr}}\index{lr-undef-addr}), \\ 
{\rm{lr-make-temp-var-dcls}}\,({\rm{cdr}}\,({\it{temp-alist\/}}))\index{lr-make-temp-var-dcls})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-compile-programs} \\  
\=\+{\rm{lr-compile-programs}}\,({\it{programs\/}}, {\it{const-table\/}})\index{lr-compile-programs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{programs\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{prog\/}}{\bf $\;$ be$\;\;$}{\rm{car}}\,({\it{programs\/}})\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{temp-alist\/}}{\bf $\;$ be$\;\;$}{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\it{prog\/}})\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\it{prog\/}})\index{s-formals})\-\index{lr-make-temp-name-alist}\- \\ 
{\bf in} \\ 
{\rm{cons}}\,(\=\+{\rm{lr-make-program}}\,(\=\+{\rm{car}}\,({\it{prog\/}}), \\ 
{\rm{s-formals}}\,({\it{prog\/}})\index{s-formals}, \\ 
{\rm{lr-make-temp-var-dcls}}\,({\it{temp-alist\/}})\index{lr-make-temp-var-dcls}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\it{prog\/}})\index{s-body}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{const-table\/}})\-\index{lr-compile-body})\-\index{lr-make-program}, \\ 
{\rm{lr-compile-programs}}\,({\rm{cdr}}\,({\it{programs\/}}), {\it{const-table\/}})\index{lr-compile-programs})\-$\;${\bf  endlet}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}


\begin{tabbing}{\sc Definition}:\index{lr-p-c-size} \\  
\=\+{\rm{lr-p-c-size}}\,({\it{flag\/}}, {\it{expr\/}})\index{lr-p-c-size} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{lr-p-c-size}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{4}}\- \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\tt{1}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\tt{1}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\tt{7}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\rm{lr-p-c-size}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\tt{1}}$\;${\bf  endif}\- \\ 
{\bf else }{\tt{1}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-p-c-size-list} \\  
\=\+{\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\it{expr-list\/}})\index{lr-p-c-size-list} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\it{n\/}} $<$ {\rm{length}}\,({\it{expr-list\/}})\index{length} \\ 
{\bf then }\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{expr-list\/}})\index{get})\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{expr-list\/}})\index{lr-p-c-size-list}\- \\ 
{\bf else }{\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{expr-list\/}})\index{length} $-\;1$, {\it{expr-list\/}})\index{lr-p-c-size-list}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim};; LR-P-PC-1 returns the number of Piton instructions before the start of
;; the expression denoted by POS in the compilation of EXPR.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-p-pc-1} \\  
\=\+{\rm{lr-p-pc-1}}\,({\it{expr\/}}, {\it{pos\/}})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }$\neg$ {\rm{listp}}\,({\it{pos\/}})$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }$\neg$ {\rm{listp}}\,({\it{expr\/}})$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{car}}\,({\it{pos\/}}) $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{pos\/}}) $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{car}}\,({\it{pos\/}}) $=$ {\tt{1}}$\;\;${\bf then }{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{expr\/}}), {\rm{cdr}}\,({\it{pos\/}}))\index{lr-p-pc-1} \\ 
{\bf elseif }{\rm{car}}\,({\it{pos\/}}) $=$ {\tt{2}} \\ 
{\bf then }\=\+{\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{caddr}}\,({\it{expr\/}}), {\rm{cdr}}\,({\it{pos\/}}))\index{lr-p-pc-1}\- \\ 
{\bf else }\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{cadddr}}\,({\it{expr\/}}), {\rm{cdr}}\,({\it{pos\/}}))\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\tt{4}}\-$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}$\;\;${\bf then }{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{expr\/}}), {\rm{cdr}}\,({\it{pos\/}}))\index{lr-p-pc-1} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{expr\/}}), {\rm{cdr}}\,({\it{pos\/}}))\index{lr-p-pc-1} $+$ {\tt{4}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf else }\=\+{\rm{lr-p-c-size-list}}\,({\rm{car}}\,({\it{pos\/}}) $-\;1$, {\it{expr\/}})\index{lr-p-c-size-list} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{get}}\,({\rm{car}}\,({\it{pos\/}}), {\it{expr\/}})\index{get}, {\rm{cdr}}\,({\it{pos\/}}))\index{lr-p-pc-1}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-p-pc} \\  
\=\+{\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1})\-)\-\index{tag}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-p-pc.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{s-$>$lr1} \\  
\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}))\index{tag}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{lr-compile-programs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{table\/}})\index{lr-compile-programs}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size}, \\ 
{\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag})\-\index{p-state}\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-$>$lr1.

\addvspace{18pt}

\begin{verbatim};; Returns an P-STATE.
;; FREE-HEAP-SIZE is number of free nodes in resulting P-STATE.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-$>$lr} \\  
\=\+{\rm{s-$>$lr}}\,({\it{s\/}}, {\it{fheap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{temp-alist\/}}{\bf $\;$ be$\;\;$}{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{strip-cars}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps}), \\ 
{\rm{strip-cars}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}))\-\index{lr-make-temp-name-alist}, \\ 
{\it{dataseg-table\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{fheap-size\/}})\-\index{lr-data-seg-table}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{return-pc\/}}{\bf $\;$ be$\;\;$}{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{lr-p-pc-1}}\,(\=\+{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body}, \\ 
{\it{temp-alist\/}}, \\ 
{\rm{cdr}}\,({\it{dataseg-table\/}}))\-\index{lr-compile-body}, \\ 
{\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\-\index{lr-p-pc-1})\-)\-\index{tag}\- \\ 
{\bf in} \\ 
{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\rm{p-state}}\,(\=\+{\bf{nil}}, \\ 
{\rm{lr-initial-cstk}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{temp-alist\/}}, \\ 
{\rm{cdr}}\,({\it{dataseg-table\/}}), \\ 
{\it{return-pc\/}})\-\index{lr-initial-cstk}, \\ 
{\bf{nil}}, \\ 
{\bf{nil}}, \\ 
{\rm{car}}\,({\it{dataseg-table\/}}), \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\bf{nil}})\-\index{p-state}, \\ 
{\rm{cdr}}\,({\it{dataseg-table\/}}))\-\index{s-$>$lr1}$\;${\bf  endlet}\-$\;${\bf  endlet}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-$>$lr.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-params} \\  
\=\+{\rm{lr-params}}\,({\it{frame\/}}, {\it{p\/}})\index{lr-params} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,({\rm{length}}\,({\rm{formal-vars}}\,({\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{formal-vars})\index{length}, {\rm{bindings}}\,({\it{frame\/}})\index{bindings})\index{firstn}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-params.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-temps} \\  
\=\+{\rm{lr-temps}}\,({\it{frame\/}}, {\it{p\/}})\index{lr-temps} \\ 
$=$$\;\;\;\;${\rm{restn}}\,({\rm{length}}\,({\rm{formal-vars}}\,({\rm{p-current-program}}\,({\it{p\/}})\index{p-current-program})\index{formal-vars})\index{length}, {\rm{bindings}}\,({\it{frame\/}})\index{bindings})\index{restn}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-temps.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-set-expr} \\  
\=\+{\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{s2\/}})\index{p-pc})\index{area-name}, {\it{pos\/}}))\index{tag}, \\ 
{\rm{p-ctrl-stk}}\,({\it{s1\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{s1\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{s2\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{s1\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{s1\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{s1\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{s1\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{s1\/}})\index{p-psw})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-set-error} \\  
\=\+{\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{s\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}, \\ 
{\it{flag\/}})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-set-pos} \\  
\=\+{\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{s\/}})\index{p-pc})\index{area-name}, {\it{pos\/}}))\index{tag}, \\ 
{\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-set-tstk} \\  
\=\+{\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{temp-stk\/}})\index{lr-set-tstk} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{s\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-\index{p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-pop-tstk} \\  
\=\+{\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk})$\;\;${\bf then }{\rm{lr-set-tstk}}\,({\it{s\/}}, {\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk})\index{pop})\index{lr-set-tstk} \\ 
{\bf else }{\rm{lr-set-error}}\,({\it{s\/}}, {\tt{'}}{\tt{lr-pop-tstk-empty-stack}})\index{lr-set-error}$\;${\bf  endif}\- \\ 
{\bf else }{\it{s\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-push-tstk} \\  
\=\+{\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{value\/}})\index{lr-push-tstk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size} \\ 
{\bf then }{\rm{lr-set-tstk}}\,({\it{s\/}}, {\rm{push}}\,({\it{value\/}}, {\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk})\index{push})\index{lr-set-tstk} \\ 
{\bf else }{\rm{lr-set-error}}\,({\it{s\/}}, {\tt{'}}{\tt{lr-push-tstk-full-stack}})\index{lr-set-error}$\;${\bf  endif}\- \\ 
{\bf else }{\it{s\/}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-push-tstk.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-if-ok} \\  
\=\+{\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ ({\tt{1}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})$\;\;${\bf then }{\it{l\/}} \\ 
{\bf else }{\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{if-temp-stk-overflow}})\index{lr-set-error}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-if-ok.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-set-temp} \\  
\=\+{\rm{lr-set-temp}}\,({\it{s\/}}, {\it{value\/}}, {\it{var-name\/}})\index{lr-set-temp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }{\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{s\/}})\index{p-pc}, \\ 
{\rm{set-local-var-value}}\,({\it{value\/}}, {\it{var-name\/}}, {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk})\index{set-local-var-value}, \\ 
{\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-\index{p-state} \\ 
{\bf else }{\it{s\/}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-set-temp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-eval-temp-setp} \\  
\=\+{\rm{lr-eval-temp-setp}}\,({\it{s\/}})\index{lr-eval-temp-setp} \\ 
$=$$\;\;\;\;$({\rm{local-var-value}}\,({\rm{caddr}}\,({\rm{lr-expr}}\,({\it{s\/}})\index{lr-expr}), {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk})\index{local-var-value} $\not=$ {\sc{lr-undef-addr}}\index{lr-undef-addr})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-eval-temp-setp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-do-temp-fetch} \\  
\=\+{\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{lr-eval-temp-setp}}\,({\it{s\/}})\index{lr-eval-temp-setp} \\ 
{\bf then }{\rm{lr-push-tstk}}\,({\it{s\/}}, {\rm{local-var-value}}\,({\rm{caddr}}\,({\rm{lr-expr}}\,({\it{s\/}})\index{lr-expr}), {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk})\index{local-var-value})\index{lr-push-tstk} \\ 
{\bf else }{\rm{lr-set-error}}\,({\it{s\/}}, {\tt{'}}{\tt{temp-fetch-not-set}})\index{lr-set-error}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-do-temp-fetch.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-pop-cstk} \\  
\=\+{\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }{\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{s\/}})\index{p-pc}, \\ 
{\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk})\index{pop}, \\ 
{\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-\index{p-state} \\ 
{\bf else }{\it{s\/}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-pop-cstk.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-type-contents-p} \\  
\=\+{\rm{lr-type-contents-p}}\,({\it{object\/}}, {\it{tag\/}}, {\it{contents\/}})\index{lr-type-contents-p} \\ 
$=$$\;\;\;\;$(({\rm{type}}\,({\it{object\/}})\index{type} $=$ {\it{tag\/}}) $\wedge$ ({\rm{untag}}\,({\it{object\/}})\index{untag} $=$ {\it{contents\/}}))\-
\end{tabbing}

\begin{verbatim};; The following functions are used for the Piton code and to compute the LR
;; value for certain classes of functions (e.g. all shell accessors).

;; NOTE: The 'clock' functions get a Piton state.  This is the state just
;; BEFORE the execution of the appropriate CALL instruction.  Therefore
;; to look at the parameters, it is necessary to look at the temp stack.
;; The clock function return the number of Piton instructions necessary to
;; run the CALL and the code for the SUBR.

;; Recognizers
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-recognizer-code} \\  
\=\+{\rm{p-recognizer-code}}\,({\it{name\/}}, {\it{tag\/}})\index{p-recognizer-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\it{name\/}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{(}}{\tt{fetch}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{tag\/}})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{test-bool-and-jump}}{\tt{ }}{\tt{f}}{\tt{ }}{\tt{false}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-t-addr}}\index{lr-t-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{dl}}, {\tt{'}}{\tt{false}}, {\tt{'}}{\tt{nil}}, {\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr})), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-recognizer-clock}$\;\;$
{\rm{p-recognizer-clock}}\,({\it{p-state\/}}, {\it{tag\/}})\index{p-recognizer-clock} $=$ {\tt{7}}
\end{tabbing}

\begin{verbatim};; Accessor
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-accessor-code} \\  
\=\+{\rm{p-accessor-code}}\,({\it{name\/}}, {\it{tag\/}}, {\it{default\/}}, {\it{offset\/}})\index{p-accessor-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\it{name\/}}, \\ 
{\tt{'}}{\tt{(}}{\tt{x}}{\tt{)}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-local}}{\tt{ }}{\tt{x}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{fetch}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{tag\/}})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{test-bool-and-jump}}{\tt{ }}{\tt{t}}{\tt{ }}{\tt{arg1}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\it{default\/}}), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{dl}}{\tt{ }}{\tt{arg1}}{\tt{ }}{\tt{nil}}{\tt{ }}{\tt{(}}{\tt{push-local}}{\tt{ }}{\tt{x}}{\tt{)}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{offset\/}})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{add-addr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{fetch}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-accessor-clock} \\  
\=\+{\rm{p-accessor-clock}}\,({\it{p\/}}, {\it{tag\/}})\index{p-accessor-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\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{tag}}\,({\tt{'}}{\tt{nat}}, {\it{tag\/}})\index{tag} \\ 
{\bf then }{\tt{11}} \\ 
{\bf else }{\tt{8}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim};; Now comes the actual code and values

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-car-code} \\  
{\sc{p-car-code}}\index{p-car-code} $=$ {\rm{p-accessor-code}}\,({\tt{'}}{\tt{car}}, {\sc{lr-cons-tag}}\index{lr-cons-tag}, {\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{p-accessor-code}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-car-clock}$\;\;$
{\rm{p-car-clock}}\,({\it{p\/}})\index{p-car-clock} $=$ {\rm{p-accessor-clock}}\,({\it{p\/}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{p-accessor-clock}
\end{tabbing}


\noindent{\sc Event}:   Disable p-car-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-cdr-code} \\  
{\sc{p-cdr-code}}\index{p-cdr-code} $=$ {\rm{p-accessor-code}}\,({\tt{'}}{\tt{cdr}}, {\sc{lr-cons-tag}}\index{lr-cons-tag}, {\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{p-accessor-code}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-cdr-clock}$\;\;$
{\rm{p-cdr-clock}}\,({\it{p\/}})\index{p-cdr-clock} $=$ {\rm{p-accessor-clock}}\,({\it{p\/}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{p-accessor-clock}
\end{tabbing}


\noindent{\sc Event}:   Disable p-cdr-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-cons-code} \\  
\=\+{\sc{p-cons-code}}\index{p-cons-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{cons}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{temp}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{0}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{add-addr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{deposit}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{add-addr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{deposit}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{add-addr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{set-local}}{\tt{ }}{\tt{temp}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{fetch}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-constant}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{push-local}}{\tt{ }}{\tt{temp}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{deposit}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{push-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{deposit}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{pop-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-cons-clock}$\;\;$
{\rm{p-cons-clock}}\,({\it{p\/}})\index{p-cons-clock} $=$ {\tt{23}}
\end{tabbing}


\noindent{\sc Event}:   Disable p-cons-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-false-code} \\  
\=\+{\sc{p-false-code}}\index{p-false-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{false}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-false-clock}$\;\;$
{\rm{p-false-clock}}\,({\it{p\/}})\index{p-false-clock} $=$ {\tt{3}}
\end{tabbing}


\noindent{\sc Event}:   Disable p-false-clock.

\addvspace{18pt}

\begin{verbatim};; FALSEP TAKES ONE IMPLICIT ARG ON STACK.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-falsep-code} \\  
\=\+{\sc{p-falsep-code}}\index{p-falsep-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{falsep}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{test-bool-and-jump}}{\tt{ }}{\tt{t}}{\tt{ }}{\tt{true}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{dl}}, {\tt{'}}{\tt{true}}, {\tt{'}}{\tt{nil}}, {\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-t-addr}}\index{lr-t-addr})), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-falsep-clock}$\;\;$
{\rm{p-falsep-clock}}\,({\it{p\/}})\index{p-falsep-clock} $=$ {\tt{6}}
\end{tabbing}


\noindent{\sc Event}:   Disable p-falsep-clock.

\addvspace{18pt}

\begin{verbatim};; Takes an implicit arg
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-listp-code} \\  
{\sc{p-listp-code}}\index{p-listp-code} $=$ {\rm{p-recognizer-code}}\,({\tt{'}}{\tt{listp}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{p-recognizer-code}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-listp-clock} \\  
{\rm{p-listp-clock}}\,({\it{p\/}})\index{p-listp-clock} $=$ {\rm{p-recognizer-clock}}\,({\it{p\/}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{p-recognizer-clock}
\end{tabbing}


\noindent{\sc Event}:   Disable p-listp-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-nlistp-code} \\  
\=\+{\sc{p-nlistp-code}}\index{p-nlistp-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{nlistp}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{nil}}, \\ 
{\tt{'}}{\tt{(}}{\tt{fetch}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\tt{'}}{\tt{(}}{\tt{test-bool-and-jump}}{\tt{ }}{\tt{f}}{\tt{ }}{\tt{true}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{dl}}, {\tt{'}}{\tt{true}}, {\tt{'}}{\tt{nil}}, {\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-t-addr}}\index{lr-t-addr})), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-nlistp-clock}$\;\;$
{\rm{p-nlistp-clock}}\,({\it{p\/}})\index{p-nlistp-clock} $=$ {\tt{7}}
\end{tabbing}


\noindent{\sc Event}:   Disable p-nlistp-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-true-code} \\  
\=\+{\sc{p-true-code}}\index{p-true-code} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{true}}, {\tt{'}}{\tt{nil}}, {\tt{'}}{\tt{nil}}, {\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-t-addr}}\index{lr-t-addr}), {\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-true-clock}$\;\;$
{\rm{p-true-clock}}\,({\it{p\/}})\index{p-true-clock} $=$ {\tt{3}}
\end{tabbing}


\noindent{\sc Event}:   Disable p-true-clock.

\addvspace{18pt}

\begin{verbatim};; The old code for TRUEP is shown below.  I used to ensure that there was
;; only one occurence of TRUE in the data-segment [namely at address
;; (lr-t-addr)], however only TRUEP took advantage of this.  LR-PROPER-HEAPP
;; has been changed to not require only one occurrence, although only one
;; should appear.  However this means we actually have to test the tag, a
;; small performance penalty for some simplicity and freedom in the spec.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-truep-code} \\  
{\sc{p-truep-code}}\index{p-truep-code} $=$ {\rm{p-recognizer-code}}\,({\tt{'}}{\tt{truep}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{p-recognizer-code}
\end{tabbing}

\begin{verbatim};(defn P-TRUEP-CODE ()
;  (list 'truep '() '()
;	(list 'PUSH-CONSTANT (lr-t-addr))
;	'(EQ)
;	'(TEST-BOOL-AND-JUMP T TRUE)
;	(list 'PUSH-CONSTANT (lr-f-addr))
;	'(RET)
;	(list 'DL 'TRUE '() (list 'PUSH-CONSTANT (lr-t-addr)))
;	'(RET)))

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-truep-clock} \\  
{\rm{p-truep-clock}}\,({\it{p\/}})\index{p-truep-clock} $=$ {\rm{p-recognizer-clock}}\,({\it{p\/}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{p-recognizer-clock}
\end{tabbing}

\begin{verbatim};(defn P-TRUEP-CLOCK (p) 6)

\end{verbatim}
\noindent{\sc Event}:   Disable p-truep-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-runtime-support-programs} \\  
\=\+{\sc{p-runtime-support-programs}}\index{p-runtime-support-programs} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\sc{p-car-code}}\index{p-car-code}, \\ 
{\sc{p-cdr-code}}\index{p-cdr-code}, \\ 
{\sc{p-cons-code}}\index{p-cons-code}, \\ 
{\sc{p-false-code}}\index{p-false-code}, \\ 
{\sc{p-falsep-code}}\index{p-falsep-code}, \\ 
{\sc{p-listp-code}}\index{p-listp-code}, \\ 
{\sc{p-nlistp-code}}\index{p-nlistp-code}, \\ 
{\sc{p-true-code}}\index{p-true-code}, \\ 
{\sc{p-truep-code}}\index{p-truep-code})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-runtime-support-programs.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-convert-digit-to-ascii} \\  
{\rm{lr-convert-digit-to-ascii}}\,({\it{digit\/}})\index{lr-convert-digit-to-ascii} $=$ ({\sc{ascii-0}}\index{ascii-0} $+$ {\it{digit\/}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-convert-num-to-ascii} \\  
\=\+{\rm{lr-convert-num-to-ascii}}\,({\it{number\/}}, {\it{list\/}})\index{lr-convert-num-to-ascii} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{number\/}} $<$ {\tt{10}}$\;\;${\bf then }{\rm{cons}}\,({\rm{lr-convert-digit-to-ascii}}\,({\it{number\/}})\index{lr-convert-digit-to-ascii}, {\it{list\/}}) \\ 
{\bf else }{\rm{lr-convert-num-to-ascii}}\,(\=\+{\it{number\/}} $\div$ {\tt{10}}, \\ 
{\rm{cons}}\,(\=\+{\rm{lr-convert-digit-to-ascii}}\,({\it{number\/}} ${}${\bf{mod}}${}$ {\tt{10}})\index{lr-convert-digit-to-ascii}, \\ 
{\it{list\/}})\-)\-\index{lr-convert-num-to-ascii}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-make-label} \\  
\=\+{\rm{lr-make-label}}\,({\it{n\/}})\index{lr-make-label} \\ 
$=$$\;\;\;\;${\rm{pack}}\,({\rm{cons}}\,(\=\+{\rm{car}}\,({\rm{unpack}}\,({\tt{'}}{\tt{l}})), \\ 
{\rm{cons}}\,({\sc{ascii-dash}}\index{ascii-dash}, {\rm{append}}\,({\rm{lr-convert-num-to-ascii}}\,({\it{n\/}}, {\bf{nil}})\index{lr-convert-num-to-ascii}, {\tt{0}})))\-)\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-make-label.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{label-instrs} \\  
\=\+{\rm{label-instrs}}\,({\it{instrs\/}}, {\it{n\/}})\index{label-instrs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{instrs\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{dl}}\,({\rm{lr-make-label}}\,({\it{n\/}})\index{lr-make-label}, {\bf{nil}}, {\rm{car}}\,({\it{instrs\/}}))\index{dl}, \\ 
{\rm{label-instrs}}\,({\rm{cdr}}\,({\it{instrs\/}}), $1\;+$ {\it{n\/}})\index{label-instrs})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{comp-temp-test} \\  
\=\+{\rm{comp-temp-test}}\,({\it{expr\/}}, {\it{instrs\/}}, {\it{n\/}})\index{comp-temp-test} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}})), \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-undef-addr}}\index{lr-undef-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{test-bool-and-jump}}, \\ 
{\tt{'}}{\tt{f}}, \\ 
{\rm{lr-make-label}}\,({\it{n\/}} $+$ {\tt{6}} $+$ {\rm{length}}\,({\it{instrs\/}})\index{length})\index{lr-make-label})\-)\-, \\ 
{\rm{append}}\,(\=\+{\it{instrs\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\it{expr\/}})), \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,({\it{n\/}} $+$ {\tt{7}} $+$ {\rm{length}}\,({\it{instrs\/}})\index{length})\index{lr-make-label})\-, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}})))\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{comp-if} \\  
\=\+{\rm{comp-if}}\,({\it{test-instrs\/}}, {\it{then-instrs\/}}, {\it{else-instrs\/}}, {\it{n\/}})\index{comp-if} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\it{test-instrs\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{test-bool-and-jump}}, \\ 
{\tt{'}}{\tt{t}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{test-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{then-instrs\/}})\index{length}\-)\index{lr-make-label})\-)\-, \\ 
{\rm{append}}\,(\=\+{\it{then-instrs\/}}, \\ 
{\rm{cons}}\,(\=\+{\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{test-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{then-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{else-instrs\/}})\index{length}\-)\index{lr-make-label})\-, \\ 
{\it{else-instrs\/}})\-)\-)\-)\-\-
\end{tabbing}

\begin{verbatim};; COMP-BODY-1 returns a list of Piton instructions to compile EXPR.
;; N is the number of Piton instructions previously generated, it is used
;; to generate unique labels.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{comp-body-1} \\  
\=\+{\rm{comp-body-1}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }{\rm{append}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\it{n\/}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}))\index{lr-p-c-size})\-\index{comp-body-1})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }{\rm{comp-if}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\it{expr\/}}), \\ 
{\it{n\/}} $+$ {\tt{3}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size})\-\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadddr}}\,({\it{expr\/}}), \\ 
\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size}\-)\-\index{comp-body-1}, \\ 
{\it{n\/}})\-\index{comp-if} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch} \\ 
{\bf then }{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}}))) \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }{\rm{append}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\it{expr\/}}))))\- \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }{\rm{comp-temp-test}}\,({\it{expr\/}}, {\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}} $+$ {\tt{4}})\index{comp-body-1}, {\it{n\/}})\index{comp-temp-test} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{cadr}}\,({\it{expr\/}}))) \\ 
{\bf else }{\rm{append}}\,(\=\+{\rm{comp-body-1}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
\=\+{\bf if }{\rm{definedp}}\,(\=\+{\rm{car}}\,({\it{expr\/}}), \\ 
{\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\-\index{definedp} \\ 
{\bf then }{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{car}}\,({\it{expr\/}}))) \\ 
{\bf else }{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{call}}, \\ 
{\rm{user-fname}}\,({\rm{car}}\,({\it{expr\/}}))\index{user-fname})\-)$\;${\bf  endif}\-)\-$\;${\bf  endif}\- \\ 
{\bf else }{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\it{expr\/}}))$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable comp-body-1.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{comp-body} \\  
\=\+{\rm{comp-body}}\,({\it{body\/}})\index{comp-body} \\ 
$=$$\;\;\;\;${\rm{label-instrs}}\,({\rm{append}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\it{body\/}}, {\tt{0}})\index{comp-body-1}, {\tt{'}}{\tt{(}}{\tt{(}}{\tt{ret}}{\tt{)}}{\tt{)}}), {\tt{0}})\index{label-instrs}\-
\end{tabbing}


\noindent{\sc Event}:   Disable comp-body.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{comp-programs-1} \\  
\=\+{\rm{comp-programs-1}}\,({\it{programs\/}})\index{comp-programs-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{programs\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{lr-make-program}}\,(\=\+{\rm{name}}\,({\rm{car}}\,({\it{programs\/}}))\index{name}, \\ 
{\rm{formal-vars}}\,({\rm{car}}\,({\it{programs\/}}))\index{formal-vars}, \\ 
{\rm{temp-var-dcls}}\,({\rm{car}}\,({\it{programs\/}}))\index{temp-var-dcls}, \\ 
{\rm{comp-body}}\,({\rm{program-body}}\,({\rm{car}}\,({\it{programs\/}}))\index{program-body})\index{comp-body})\-\index{lr-make-program}, \\ 
{\rm{comp-programs-1}}\,({\rm{cdr}}\,({\it{programs\/}}))\index{comp-programs-1})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{comp-programs} \\  
\=\+{\rm{comp-programs}}\,({\it{programs\/}})\index{comp-programs} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{lr-make-program}}\,(\=\+{\rm{name}}\,({\rm{car}}\,({\it{programs\/}}))\index{name}, \\ 
{\rm{formal-vars}}\,({\rm{car}}\,({\it{programs\/}}))\index{formal-vars}, \\ 
{\rm{temp-var-dcls}}\,({\rm{car}}\,({\it{programs\/}}))\index{temp-var-dcls}, \\ 
{\rm{label-instrs}}\,(\=\+{\rm{append}}\,(\=\+{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{car}}\,({\it{programs\/}}))\index{program-body}, \\ 
{\tt{0}})\-\index{comp-body-1}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,(\=\+{\tt{'}}{\tt{set-global}}, \\ 
{\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name})\-, \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-)\-, \\ 
{\tt{0}})\-\index{label-instrs})\-\index{lr-make-program}, \\ 
{\rm{append}}\,({\rm{comp-programs-1}}\,({\rm{cdr}}\,({\it{programs\/}}))\index{comp-programs-1}, {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable comp-programs.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-proper-exprp} \\  
\=\+{\rm{lr-proper-exprp}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}), {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\it{pnames\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\- \\ 
{\bf else }{\it{expr\/}} $=$ {\bf{nil}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{litatom}}\,({\it{expr\/}})$\;\;${\bf then }{\it{expr\/}} $\in$ {\it{formals\/}} \\ 
{\bf elseif }{\it{expr\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }$\neg$ {\rm{plistp}}\,({\it{expr\/}})\index{plistp}$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch} \\ 
{\bf then }({\rm{caddr}}\,({\it{expr\/}}) $\in$ {\it{temps\/}}) $\wedge$ ({\rm{length}}\,({\it{expr\/}})\index{length} $=$ {\tt{3}}) \\ 
{\bf elseif }({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
{\bf then }\=\+({\rm{caddr}}\,({\it{expr\/}}) $\in$ {\it{temps\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{expr\/}})\index{length} $=$ {\tt{3}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\- \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }\=\+({\rm{type}}\,({\rm{cadr}}\,({\it{expr\/}}))\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\it{expr\/}}) $\in$ {\rm{strip-cdrs}}\,({\it{table\/}})\index{strip-cdrs}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\it{expr\/}}))\index{length} $=$ {\rm{arity}}\,({\rm{car}}\,({\it{expr\/}}))\index{arity})\- \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\it{expr\/}})) \\ 
{\bf then }\=\+({\rm{length}}\,({\rm{cdr}}\,({\it{expr\/}}))\index{length} $=$ {\rm{arity}}\,({\rm{car}}\,({\it{expr\/}}))\index{arity}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\vee$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\it{expr\/}}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp})\- \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not\in$ {\it{pnames\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\it{pnames\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\- \\ 
{\bf elseif }{\rm{body}}\,({\rm{car}}\,({\it{expr\/}})) \\ 
{\bf then }\=\+({\rm{length}}\,({\rm{cdr}}\,({\it{expr\/}}))\index{length} $=$ {\rm{arity}}\,({\rm{car}}\,({\it{expr\/}}))\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\in$ {\it{pnames\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\it{pnames\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-undef-addrs} \\  
\=\+{\rm{all-undef-addrs}}\,({\it{list\/}})\index{all-undef-addrs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }({\rm{car}}\,({\it{list\/}}) $=$ {\sc{lr-undef-addr}}\index{lr-undef-addr}) $\wedge$ {\rm{all-undef-addrs}}\,({\rm{cdr}}\,({\it{list\/}}))\index{all-undef-addrs} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-programs-properp-1} \\  
\=\+{\rm{lr-programs-properp-1}}\,({\it{programs\/}}, {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{programs\/}}) \\ 
{\bf then }\=\+{\rm{all-litatoms}}\,({\rm{formal-vars}}\,({\rm{car}}\,({\it{programs\/}}))\index{formal-vars})\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{car}}\,({\it{programs\/}}))\index{temp-var-dcls}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{all-undef-addrs}}\,({\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{car}}\,({\it{programs\/}}))\index{temp-var-dcls})\index{strip-cadrs})\index{all-undef-addrs} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{car}}\,({\it{programs\/}}))\index{program-body}, \\ 
{\it{program-names\/}}, \\ 
{\rm{formal-vars}}\,({\rm{car}}\,({\it{programs\/}}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{car}}\,({\it{programs\/}}))\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp-1}}\,({\rm{cdr}}\,({\it{programs\/}}), {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-programs-properp-1.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-programs-properp} \\  
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{definedp}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{caar}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) $=$ {\tt{'}}{\tt{main}}) \\ 
$\wedge$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{cdr}}\,({\rm{strip-cars}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\index{all-user-fnamesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp-1}}\,(\=\+{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{strip-logic-fnames}, \\ 
{\it{table\/}})\-\index{lr-programs-properp-1})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-programs-properp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-flag-not-list-not-0 \\ \index{lr-p-c-size-flag-not-list-not-0}
({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) $\rightarrow$ ({\rm{lr-p-c-size}}\,({\it{flag\/}}, {\it{expr\/}})\index{lr-p-c-size} $\not=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  difference-decreases \\ \index{difference-decreases}
(({\it{x\/}} $\not<$ {\it{y\/}}) $\wedge$ ({\it{y\/}} $\not\simeq {\tt{0}}$)) $\rightarrow$ ((({\it{x\/}} $-$ {\it{y\/}}) $<$ {\it{x\/}}) $=$ {\bf{t}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-$>$p} \\  
\=\+{\rm{lr-$>$p}}\,({\it{p\/}})\index{lr-$>$p} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{lr-p-pc}}\,({\it{p\/}})\index{lr-p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment})\index{comp-programs}, \\ 
{\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}, \\ 
{\rm{p-psw}}\,({\it{p\/}})\index{p-psw})\-\index{p-state}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-$>$p.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-set-pc} \\  
\=\+{\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\it{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}, \\ 
{\rm{p-psw}}\,({\it{p\/}})\index{p-psw})\-\index{p-state}\-
\end{tabbing}

\begin{verbatim};; It should be the case that (P-CURRENT-INSTRUCTION p) = (CALL subr)
;; therefore we need to run P one more step than the clock functions
;; below to do the CALL.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-run-subr} \\  
\=\+{\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\it{subr\/}}: \\ 
{\bf case = }{\it{car\/}} \\ 
{\bf then }{\rm{p}}\,({\it{p\/}}, {\rm{p-car-clock}}\,({\it{p\/}})\index{p-car-clock})\index{p} \\ 
{\bf case = }{\it{cdr\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-cdr-clock}}\,({\it{p\/}})\index{p-cdr-clock})\index{p} \\ 
{\bf case = }{\it{cons\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-cons-clock}}\,({\it{p\/}})\index{p-cons-clock})\index{p} \\ 
{\bf case = }{\it{false\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-false-clock}}\,({\it{p\/}})\index{p-false-clock})\index{p} \\ 
{\bf case = }{\it{falsep\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-falsep-clock}}\,({\it{p\/}})\index{p-falsep-clock})\index{p} \\ 
{\bf case = }{\it{listp\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-listp-clock}}\,({\it{p\/}})\index{p-listp-clock})\index{p} \\ 
{\bf case = }{\it{nlistp\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-nlistp-clock}}\,({\it{p\/}})\index{p-nlistp-clock})\index{p} \\ 
{\bf case = }{\it{true\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-true-clock}}\,({\it{p\/}})\index{p-true-clock})\index{p} \\ 
{\bf case = }{\it{truep\/}} \\ 
{\bf $\;\;$then }{\rm{p}}\,({\it{p\/}}, {\rm{p-truep-clock}}\,({\it{p\/}})\index{p-truep-clock})\index{p} \\ 
{\bf otherwise }{\rm{p-halt}}\,({\it{p\/}}, {\tt{'}}{\tt{bad-subr}})\index{p-halt}$\;${\bf  endcase}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-run-subr.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-return-pc} \\  
\=\+{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, {\rm{lr-p-c-size}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size})\index{add-addr}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-return-pc.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-apply-subr} \\  
\=\+{\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{res\/}}{\bf $\;$ be$\;\;$}{\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr}\- \\ 
{\bf in} \\ 
{\rm{p-state}}\,(\=\+{\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc}, \\ 
{\rm{p-ctrl-stk}}\,({\it{res\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-temp-stk}}\,({\it{res\/}})\index{p-temp-stk}, \\ 
{\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{res\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{res\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{res\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{res\/}})\index{p-word-size}, \\ 
{\rm{p-psw}}\,({\it{res\/}})\index{p-psw})\-\index{p-state}$\;${\bf  endlet}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-apply-subr.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-funcall} \\  
\=\+{\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{prog\/}}{\bf $\;$ be$\;\;$}{\rm{definition}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-\index{definition}, \\ 
{\it{newest-l\/}}{\bf $\;$ be$\;\;$}{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{p-call-okp}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}), \\ 
{\it{newest-l\/}})\-\index{p-call-okp} \\ 
{\bf then }{\rm{p-state}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, {\bf{nil}}))\index{tag}, \\ 
{\rm{push}}\,(\=\+{\rm{make-p-call-frame}}\,(\=\+{\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls}, \\ 
{\rm{add1-addr}}\,({\rm{p-pc}}\,({\it{newest-l\/}})\index{p-pc})\index{add1-addr})\-\index{make-p-call-frame}, \\ 
{\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\-\index{push}, \\ 
{\rm{popn}}\,({\rm{length}}\,({\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars})\index{length}, {\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{popn}, \\ 
{\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size}, \\ 
{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size}, \\ 
{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state} \\ 
{\bf else }{\rm{p-halt}}\,({\it{new-l\/}}, {\rm{x-y-error-msg}}\,({\tt{'}}{\tt{p}}, {\tt{'}}{\tt{call}})\index{x-y-error-msg})\index{p-halt}$\;${\bf  endif}\-$\;${\bf  endlet}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-funcall.

\addvspace{18pt}

\begin{verbatim};; The following lemmas are needed to admit LR-EVAL
\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-accessors-lr-set-expr \\ \index{p-accessors-lr-set-expr}
\=\+({\rm{p-pc}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-pc} $=$ {\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{s2\/}})\index{p-pc})\index{area-name}, {\it{pos\/}}))\index{tag}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s1\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{s1\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s2\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s1\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-max-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-max-ctrl-stk-size}}\,({\it{s1\/}})\index{p-max-ctrl-stk-size})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-max-temp-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-max-temp-stk-size}}\,({\it{s1\/}})\index{p-max-temp-stk-size})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s1\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{s1\/}})\index{p-psw})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-set-expr.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-set-tstk \\ \index{p-accessors-lr-set-tstk}
\=\+({\rm{p-pc}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-temp-stk} $=$ {\it{ts\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-set-tstk}}\,({\it{s\/}}, {\it{ts\/}})\index{lr-set-tstk})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-set-tstk.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-set-error \\ \index{p-accessors-lr-set-error}
\=\+({\rm{p-pc}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-set-error}}\,({\it{s\/}}, {\it{flag\/}})\index{lr-set-error})\index{p-psw} $=$ {\it{flag\/}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-set-error.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-set-pos \\ \index{p-accessors-lr-set-pos}
\=\+({\rm{p-pc}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-pc} $=$ {\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{s\/}})\index{p-pc})\index{area-name}, {\it{pos\/}}))\index{tag}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-set-pos.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-pop-tstk \\ \index{p-accessors-lr-pop-tstk}
\=\+({\rm{p-pc}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-lr-pop-tstk \\ \index{p-temp-stk-lr-pop-tstk}
\=\+{\rm{p-temp-stk}}\,({\rm{lr-pop-tstk}}\,({\it{s\/}})\index{lr-pop-tstk})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}) $\wedge$ ({\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
{\bf then }{\rm{pop}}\,({\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk})\index{pop} \\ 
{\bf else }{\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-pop-tstk.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  area-name-tag \\ \index{area-name-tag}
{\rm{area-name}}\,({\rm{tag}}\,({\it{tag\/}}, {\it{adp\/}})\index{tag})\index{area-name} $=$ {\rm{adp-name}}\,({\it{adp\/}})\index{adp-name}
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-set-expr \\ \index{p-current-program-lr-set-expr}
{\rm{p-current-program}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{s2\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-set-pos \\ \index{p-current-program-lr-set-pos}
{\rm{p-current-program}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{lr-set-pos})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{s\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-lr-set-expr \\ \index{lr-expr-lr-set-expr}
{\rm{lr-expr}}\,({\rm{lr-set-expr}}\,({\it{s1\/}}, {\it{s2\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{s2\/}})\index{p-pc})\index{offset}, {\it{n\/}})\index{dv})\index{lr-set-expr})\index{lr-expr} $=$ {\rm{get}}\,({\it{n\/}}, {\rm{lr-expr}}\,({\it{s2\/}})\index{lr-expr})\index{get}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-lr-set-pos-t \\ \index{lr-expr-lr-set-pos-t}
{\rm{lr-expr}}\,({\rm{lr-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{s\/}})\index{p-pc})\index{offset}, {\it{n\/}})\index{dv})\index{lr-set-pos})\index{lr-expr} $=$ {\rm{get}}\,({\it{n\/}}, {\rm{lr-expr}}\,({\it{s\/}})\index{lr-expr})\index{get}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-flag-list-car \\ \index{lr-expr-flag-list-car}
{\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset}) $\rightarrow$ ({\rm{car}}\,({\rm{lr-expr-list}}\,({\it{p\/}})\index{lr-expr-list}) $=$ {\rm{lr-expr}}\,({\it{p\/}})\index{lr-expr})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  number-cons-lr-expr-t-list \\ \index{number-cons-lr-expr-t-list}
\=\+({\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{p\/}})\index{lr-expr-list}) $\wedge$ {\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{number-cons}}\,({\rm{lr-expr}}\,({\it{p\/}})\index{lr-expr})\index{number-cons} $<$ {\rm{number-cons}}\,({\rm{lr-expr-list}}\,({\it{p\/}})\index{lr-expr-list})\index{number-cons})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-lr-set-expr-nx \\ \index{lr-expr-lr-set-expr-nx}
\=\+({\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset}) $\wedge$ {\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{p\/}})\index{lr-expr-list})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-expr-list}}\,({\rm{lr-set-expr}}\,({\it{p1\/}}, {\it{p\/}}, {\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset})\index{nx})\index{lr-set-expr})\index{lr-expr-list} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{lr-expr-list}}\,({\it{p\/}})\index{lr-expr-list}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-list-lr-set-pos-dv-1 \\ \index{lr-expr-list-lr-set-pos-dv-1}
\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{p\/}})\index{lr-expr}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-expr-list}}\,({\rm{lr-set-pos}}\,({\it{p\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos})\index{lr-expr-list} \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{lr-expr}}\,({\it{p\/}})\index{lr-expr}))\-\-
\end{tabbing}

\begin{verbatim};; If FLAG is 'LIST then state contains a list of expressions,
;; otherwise it is just one.
;; Returns a P-STATE.  The result is left on the temp stack.
;; If the error flag of the resulting state is 'HALT then we terminated
;; normally.  If the flag is 'RUN we have not terminated yet.
;; If the flag is anything else we got an error.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-eval} \\  
\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\it{l\/}} \\ 
{\bf elseif }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset} $\simeq\;${{\bf{nil}}}${}$ \\ 
{\bf then }{\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{bad-list-position}})\index{lr-set-error} \\ 
{\bf elseif }{\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}) \\ 
{\bf then }{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-expr}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval}, {\it{l\/}}, {\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{nx})\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval} \\ 
{\bf else }{\it{l\/}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\it{c\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{out-of-time}})\index{lr-set-error} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
{\bf then }{\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{local-var-value}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{local-var-value})\index{lr-push-tstk} \\ 
{\bf elseif }{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{bad-expression}})\index{lr-set-error} \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{p-psw}}\,({\it{test\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk})\index{top} $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr} \\ 
{\bf then }{\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval} \\ 
{\bf else }{\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{3}})\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval}$\;${\bf  endif}\- \\ 
{\bf else }{\it{test\/}}$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{l1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
{\rm{lr-set-temp}}\,({\it{l1\/}}, {\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l1\/}})\index{p-temp-stk})\index{top}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-set-temp}$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{l1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+{\bf if }\=\+{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\- \\ 
{\bf then }\=\+{\bf if }{\rm{lr-eval-temp-setp}}\,({\it{l\/}})\index{lr-eval-temp-setp}$\;\;${\bf then }{\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch} \\ 
{\bf else }{\rm{lr-set-temp}}\,(\=\+{\it{l1\/}}, \\ 
{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l1\/}})\index{p-temp-stk})\index{top}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-set-temp}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{lr-set-error}}\,(\=\+{\it{l\/}}, \\ 
{\tt{'}}{\tt{lr-temp-setp-temp-stack-overflow}})\-\index{lr-set-error}$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch} \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-push-tstk} \\ 
{\bf elseif }\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{run}}\- \\ 
{\bf then }{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
{\bf then }{\rm{lr-apply-subr}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-apply-subr} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{fs\/}}{\bf $\;$ be$\;\;$}{\rm{lr-funcall}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-funcall}\- \\ 
{\bf in} \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{lr-pop-cstk}, \\ 
{\it{l\/}}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-set-expr}$\;${\bf  endlet}\- \\ 
{\bf else }{\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{bad-instruction}})\index{lr-set-error}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim};; Proper LR STATES

;; Sometimes we only need to know that LR-PROPER-P-AREASP holds on
;; a data-segment instead of LR-PROPER-P-DATA-SEGMENTP
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-proper-p-areasp} \\  
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{data-seg\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{data-seg\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\bf let }\=\+{\it{area\/}}{\bf $\;$ be$\;\;$}{\rm{car}}\,({\it{data-seg\/}})\- \\ 
{\bf in} \\ 
\=\+{\rm{litatom}}\,({\rm{car}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\it{area\/}})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\rm{car}}\,({\it{area\/}}), {\rm{cdr}}\,({\it{data-seg\/}}))\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{cdr}}\,({\it{data-seg\/}}))\index{lr-proper-p-areasp}\-$\;${\bf  endlet}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{verbatim};; First we prove that LR-EVAL preserves PROPER-P-STATEP.

\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-accessors-lr-funcall \\ \index{p-accessors-lr-funcall}
\=\+({\rm{p-prog-segment}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-max-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-max-temp-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-push-tstk \\ \index{p-accessors-lr-push-tstk}
\=\+({\rm{p-pc}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-push-tstk}}\,({\it{s\/}}, {\it{v\/}})\index{lr-push-tstk})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-if-ok \\ \index{p-accessors-lr-if-ok}
\=\+({\rm{p-pc}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{l\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-set-temp \\ \index{p-accessors-lr-set-temp}
\=\+({\rm{p-pc}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }{\rm{set-local-var-value}}\,({\it{v\/}}, {\it{n\/}}, {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk})\index{set-local-var-value} \\ 
{\bf else }{\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-set-temp}}\,({\it{s\/}}, {\it{v\/}}, {\it{n\/}})\index{lr-set-temp})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-do-temp-fetch \\ \index{p-accessors-lr-do-temp-fetch}
\=\+({\rm{p-pc}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-do-temp-fetch}}\,({\it{s\/}})\index{lr-do-temp-fetch})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-pop-cstk \\ \index{p-accessors-lr-pop-cstk}
\=\+({\rm{p-pc}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{s\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{s\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\rm{pop}}\,({\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk})\index{pop} \\ 
{\bf else }{\rm{p-ctrl-stk}}\,({\it{s\/}})\index{p-ctrl-stk}$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{s\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{s\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{s\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{s\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{s\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{s\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-pop-cstk}}\,({\it{s\/}})\index{lr-pop-cstk})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{s\/}})\index{p-psw})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-if-p-psw-1 \\ \index{lr-eval-if-p-psw-1}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-eval-if-p-psw-1.

\addvspace{18pt}

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

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

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

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

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-$>$p \\ \index{p-accessors-lr-$>$p}
\=\+({\rm{p-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-pc} $=$ {\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment} $=$ {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{l\/}})\index{p-psw})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  type-lr-p-pc \\ \index{type-lr-p-pc}
{\rm{type}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-nil-lr-p-pc \\ \index{cddr-nil-lr-p-pc}
{\rm{cddr}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}) $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-untag-lr-p-pc \\ \index{listp-untag-lr-p-pc}
{\rm{listp}}\,({\rm{untag}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc})\index{untag})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-cdr-lr-p-pc \\ \index{numberp-cdr-lr-p-pc}
{\rm{cdr}}\,({\rm{untag}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc})\index{untag}) $\in\;${\bf{N}}${}$
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-untag-lr-p-pc \\ \index{car-untag-lr-p-pc}
{\rm{car}}\,({\rm{untag}}\,({\rm{lr-p-pc}}\,({\it{p\/}})\index{lr-p-pc})\index{untag}) $=$ {\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{untag})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  area-name-lr-p-pc \\ \index{area-name-lr-p-pc}
{\rm{area-name}}\,({\rm{lr-p-pc}}\,({\it{p\/}})\index{lr-p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-comp-programs-1-definedp-orig \\ \index{definedp-comp-programs-1-define!dp-orig}
{\rm{definedp}}\,({\it{x\/}}, {\rm{comp-programs-1}}\,({\it{programs\/}})\index{comp-programs-1})\index{definedp} $=$ {\rm{definedp}}\,({\it{x\/}}, {\it{programs\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-append \\ \index{definedp-append}
{\rm{definedp}}\,({\it{x\/}}, {\rm{append}}\,({\it{l1\/}}, {\it{l2\/}}))\index{definedp} $=$ ({\rm{definedp}}\,({\it{x\/}}, {\it{l1\/}})\index{definedp} $\vee$ {\rm{definedp}}\,({\it{x\/}}, {\it{l2\/}})\index{definedp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-comp-programs-definedp-orig \\ \index{definedp-comp-programs-definedp!-orig}
{\rm{definedp}}\,({\it{x\/}}, {\it{programs\/}})\index{definedp} $\rightarrow$ {\rm{definedp}}\,({\it{x\/}}, {\rm{comp-programs}}\,({\it{programs\/}})\index{comp-programs})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-p-halt \\ \index{p-accessors-p-halt}
\=\+({\rm{p-pc}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{p\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt})\index{p-psw} $=$ {\it{psw\/}})\-
\end{tabbing}


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

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-p-set-pc \\ \index{p-accessors-p-set-pc}
\=\+({\rm{p-pc}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-pc} $=$ {\it{pc\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{p-psw} $=$ {\rm{p-psw}}\,({\it{p\/}})\index{p-psw})\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-set-pc.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-psw-not-run \\ \index{p-psw-not-run}
({\rm{p-psw}}\,({\it{p-state\/}})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{p}}\,({\it{p-state\/}}, {\it{clock\/}})\index{p} $=$ {\it{p-state\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-p-halt-x-y-error-msg \\ \index{p-psw-p-halt-x-y-error-msg}
\=\+{\rm{p}}\,({\rm{p-halt}}\,({\it{p-state\/}}, {\rm{x-y-error-msg}}\,({\it{x\/}}, {\it{y\/}})\index{x-y-error-msg})\index{p-halt}, {\it{n\/}})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-halt}}\,({\it{p-state\/}}, {\rm{x-y-error-msg}}\,({\it{x\/}}, {\it{y\/}})\index{x-y-error-msg})\index{p-halt}\-
\end{tabbing}


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

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-p-run-subr \\ \index{p-accessors-p-run-subr}
\=\+({\rm{p-prog-segment}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-accessors-lr-apply-subr \\ \index{p-accessors-lr-apply-subr}
\=\+({\rm{p-pc}}\,({\rm{lr-apply-subr}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-apply-subr})\index{p-pc} $=$ {\rm{p-pc}}\,({\it{l2\/}})\index{p-pc}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-apply-subr}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-apply-subr})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\rm{lr-apply-subr}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-apply-subr})\index{p-max-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-max-ctrl-stk-size}}\,({\it{l2\/}})\index{p-max-ctrl-stk-size})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\rm{lr-apply-subr}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-apply-subr})\index{p-max-temp-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-max-temp-stk-size}}\,({\it{l2\/}})\index{p-max-temp-stk-size})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{lr-apply-subr}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-apply-subr})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l2\/}})\index{p-word-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-prog-segment-lr-eval \\ \index{p-prog-segment-lr-eval}
{\rm{p-prog-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-max-ctrl-stk-size-lr-eval \\ \index{p-max-ctrl-stk-size-lr-eval}
{\rm{p-max-ctrl-stk-size}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-max-temp-stk-size-lr-eval \\ \index{p-max-temp-stk-size-lr-eval}
{\rm{p-max-temp-stk-size}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-word-size-lr-eval \\ \index{p-word-size-lr-eval}
{\rm{p-word-size}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  area-name-p-pc-lr-eval \\ \index{area-name-p-pc-lr-eval}
{\rm{area-name}}\,({\rm{p-pc}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-eval \\ \index{lr-programs-properp-lr-eval}
\=\+{\rm{lr-programs-properp}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval}, {\it{table\/}})\index{lr-programs-properp} \\ 
$=$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-deposit \\ \index{definedp-deposit}
{\rm{definedp}}\,({\it{tag\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\index{definedp} $=$ {\rm{definedp}}\,({\it{tag\/}}, {\it{data-seg\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-a-list-cons-opener \\ \index{deposit-a-list-cons-opener}
\=\+{\rm{deposit-a-list}}\,({\rm{cons}}\,({\it{x\/}}, {\it{list\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list} \\ 
$=$$\;\;\;\;${\rm{deposit}}\,({\it{x\/}}, {\it{addr\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\rm{add1-addr}}\,({\it{addr\/}})\index{add1-addr}, {\it{data-seg\/}})\index{deposit-a-list})\index{deposit}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-a-list-nil \\ \index{deposit-a-list-nil}
{\rm{deposit-a-list}}\,({\bf{nil}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list} $=$ {\it{data-seg\/}}
\end{tabbing}


\noindent{\sc Event}:   Disable deposit-a-list.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  assoc-put-assoc-3 \\ \index{assoc-put-assoc-3}
\=\+{\rm{assoc}}\,({\it{name1\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name2\/}}, {\it{alist\/}})\index{put-assoc}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{name1\/}} $=$ {\it{name2\/}} \\ 
{\bf then }\=\+{\bf if }{\rm{definedp}}\,({\it{name1\/}}, {\it{alist\/}})\index{definedp}$\;\;${\bf then }{\rm{cons}}\,({\it{name1\/}}, {\it{val\/}}) \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{assoc}}\,({\it{name1\/}}, {\it{alist\/}})$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable assoc-put-assoc-3.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-lessp-offset-deposit \\ \index{adpp-lessp-offset-deposit}
\=\+(({\it{offset\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}) $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{data-seg\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{anywhere\/}}, {\it{data-seg\/}})\index{deposit})))\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-deposit-anything-at-all \\ \index{adpp-deposit-anything-at-all}
{\rm{adpp}}\,({\it{adp\/}}, {\it{data-seg\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\it{adp\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit})\index{adpp}
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-lessp-offset-deposit.

\addvspace{18pt}

\noindent{\sc Event}:   Disable adpp-deposit-anything-at-all.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-untag-definedp-area-name \\ \index{adpp-untag-definedp-area-name}
{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} $\rightarrow$ {\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp}
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-untag-definedp-area-name.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-cons-pack-definedp-area-name \\ \index{adpp-cons-pack-definedp-area-na!me}
{\rm{adpp}}\,({\rm{cons}}\,({\rm{pack}}\,({\it{xxx\/}}), {\it{offset\/}}), {\it{data-seg\/}})\index{adpp} $\rightarrow$ {\rm{definedp}}\,({\rm{pack}}\,({\it{xxx\/}}), {\it{data-seg\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-numberp-offset \\ \index{adpp-untag-numberp-offset}
{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} $\rightarrow$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$)
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-untag-numberp-offset.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-untag-listp \\ \index{adpp-untag-listp}
{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} $\rightarrow$ {\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag})
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-untag-listp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-add-addr-0 \\ \index{adpp-add-addr-0}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\simeq {\tt{0}}$))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr} $=$ {\it{addr\/}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-add-addr-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-untag-lessp-offset \\ \index{adpp-untag-lessp-offset}
\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})))\index{length})\-
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-untag-lessp-offset.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-same-signature \\ \index{adpp-same-signature}
\=\+{\rm{same-signature}}\,({\it{data-seg2\/}}, {\it{data-seg1\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$({\rm{adpp}}\,({\it{adp\/}}, {\it{data-seg2\/}})\index{adpp} $=$ {\rm{adpp}}\,({\it{adp\/}}, {\it{data-seg1\/}})\index{adpp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable adpp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-objectp-similar-p-states \\ \index{p-objectp-similar-p-states}
\=\+(\=\+{\rm{p-objectp}}\,({\it{object\/}}, {\it{p0\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\it{object\/}}, {\it{p1\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-lr-$>$p-similar-states \\ \index{all-p-objectps-lr-$>$p-similar-!states}
\=\+(\=\+{\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p0\/}})\index{all-p-objectps} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p1\/}})\index{all-p-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-lr-$>$p-similar-states \\ \index{proper-p-data-segmentp-lr-$>$p-!similar-states}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p0\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p1\/}})\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-var-dclsp-lr-$>$p-similar-states \\ \index{proper-p-temp-var-dclsp-lr-$>$p!-similar-states}
\=\+(\=\+{\rm{proper-p-temp-var-dclsp}}\,({\it{temp-var-dcls\/}}, {\it{p0\/}})\index{proper-p-temp-var-dclsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,({\it{temp-var-dcls\/}}, {\it{p1\/}})\index{proper-p-temp-var-dclsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-similar-p-states \\ \index{proper-p-instructionp-similar-p!-states}
\=\+(\=\+{\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p0\/}})\index{proper-p-instructionp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\it{ins\/}}, {\it{name\/}}, {\it{p1\/}})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-lr-$>$p-similar-states \\ \index{proper-labeled-p-instructionsp-!lr-$>$p-similar-states}
\=\+(\=\+{\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p0\/}})\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,({\it{lst\/}}, {\it{name\/}}, {\it{p1\/}})\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-lr-$>$p-similar-states \\ \index{proper-p-prog-segmentp-lr-$>$p-!similar-states}
\=\+(\=\+{\rm{proper-p-prog-segmentp}}\,({\it{programs\/}}, {\it{p0\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\it{programs\/}}, {\it{p1\/}})\index{proper-p-prog-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-lr-$>$p-similar-states \\ \index{proper-p-temp-stkp-lr-$>$p-simi!lar-states}
\=\+(\=\+{\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p0\/}})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p1\/}})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-lr-$>$p-similar-states \\ \index{proper-p-alistp-lr-$>$p-similar!-states}
\=\+(\=\+{\rm{proper-p-alistp}}\,({\it{bindings\/}}, {\it{p0\/}})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\it{bindings\/}}, {\it{p1\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-ctrl-stkp-lr-$>$p-similar-states \\ \index{proper-p-ctrl-stkp-lr-$>$p-simi!lar-states}
\=\+(\=\+{\rm{proper-p-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{name\/}}, {\it{p0\/}})\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{name\/}}, {\it{p1\/}})\index{proper-p-ctrl-stkp}\-
\end{tabbing}

\begin{verbatim};; Now we prove what the result of running the SUBRPs.  We
;; start with a sample state (that the rewriter can match with
;; P-APPLY-SUBR-STATE) and run it.  We are only interested in TEMP-STK and
;; DATA-SEGMENT of the result.  However the running of the Piton code can
;; be a bit tedious, so we try and prove both parts at once with the
;; following function P-GOOD-RESULTP.  This also has the not ERRORP check
;; inside of it so that we should only have one instance of the Piton
;; interpreter (P) in each theorem.  This should hopefully reduce the time
;; (and pain) of proving these theorems.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{p-good-resultp} \\  
\=\+{\rm{p-good-resultp}}\,({\it{p\/}}, {\it{data-seg\/}}, {\it{temp-stk\/}}, {\it{ctrl-stk\/}}, {\it{pc\/}})\index{p-good-resultp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment} $=$ {\it{data-seg\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk} $=$ {\it{temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk} $=$ {\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-pc}}\,({\it{p\/}})\index{p-pc} $=$ {\it{pc\/}})\-$\;${\bf  endif}\-\-
\end{tabbing}

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


\noindent{\sc Event}:   Disable assoc-append-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-1-all-user-fnamesp-not-user-fnamep \\ \index{lr-programs-properp-1-all-user-!fnamesp-not-user-fnamep}
\=\+({\rm{all-user-fnamesp}}\,({\rm{strip-cars}}\,({\it{programs\/}}))\index{all-user-fnamesp} $\wedge$ ($\neg$ {\rm{user-fnamep}}\,({\it{x\/}})\index{user-fnamep})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\it{x\/}}, {\it{programs\/}})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definitions-subrps-lr-programs-properp \\ \index{definitions-subrps-lr-programs-p!roperp}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{assoc}}\,({\tt{'}}{\tt{car}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) $=$ {\sc{p-car-code}}\index{p-car-code}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{cdr}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-cdr-code}}\index{p-cdr-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{cons}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-cons-code}}\index{p-cons-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{false}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-false-code}}\index{p-false-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{falsep}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-falsep-code}}\index{p-falsep-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{listp}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-listp-code}}\index{p-listp-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{nlistp}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-nlistp-code}}\index{p-nlistp-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{true}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-true-code}}\index{p-true-code})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\tt{'}}{\tt{truep}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}) \\ 
$=$$\;\;\;\;${\sc{p-truep-code}}\index{p-truep-code})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-programs-properp-1-all-user-fnamesp-not-user-fnamep.

\addvspace{18pt}

\noindent{\sc Event}:   Disable definitions-subrps-lr-programs-properp.

\addvspace{18pt}

\begin{verbatim};; and now some openers for p-good-resultp
\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-good-resultp-p-state-opener \\ \index{p-good-resultp-p-state-opener}
\=\+{\rm{p-good-resultp}}\,(\=\+{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state}, \\ 
{\it{result-data-seg\/}}, \\ 
{\it{result-temp-stk\/}}, \\ 
{\it{result-ctrl-stk\/}}, \\ 
{\it{result-pc\/}})\-\index{p-good-resultp} \\ 
$=$$\;\;\;\;$(\=\+({\it{data-seg\/}} $=$ {\it{result-data-seg\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{temp-stk\/}} $=$ {\it{result-temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{result-ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{ctrl-stk\/}} $=$ {\it{result-ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{pc\/}} $=$ {\it{result-pc\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-p-halt-errorp-opener \\ \index{p-good-resultp-p-halt-errorp-ope!ner}
\=\+({\it{psw\/}} $\not=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,({\rm{p-halt}}\,({\it{p\/}}, {\it{psw\/}})\index{p-halt}, {\it{data-seg\/}}, {\it{temp-stk\/}}, {\it{ctrl-stk\/}}, {\it{pc\/}})\index{p-good-resultp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-good-resultp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-bad-type \\ \index{all-p-objectps-bad-type}
\=\+(\=\+({\rm{get}}\,({\it{offset\/}}, {\it{lst\/}})\index{get} $\not=$ {\rm{list}}\,({\rm{type}}\,({\rm{get}}\,({\it{offset\/}}, {\it{lst\/}})\index{get})\index{type}, {\rm{untag}}\,({\rm{get}}\,({\it{offset\/}}, {\it{lst\/}})\index{get})\index{untag})) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-bad-type \\ \index{proper-p-data-segmentp-bad-type}
\=\+(\=\+(\=\+{\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch} \\ 
$\not=$$\;\;\;\;${\rm{list}}\,({\rm{type}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{type}, {\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag}))\- \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-p-state \\ \index{p-current-program-p-state}
\=\+{\rm{p-current-program}}\,({\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\index{p-current-program} \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\rm{area-name}}\,({\it{pc\/}})\index{area-name}, {\it{prog-seg\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-instruction-opener \\ \index{p-current-instruction-opener}
\=\+{\rm{p-current-instruction}}\,({\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{prog-segment\/}}, \\ 
{\it{data-segment\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\index{p-current-instruction} \\ 
$=$$\;\;\;\;${\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{pc\/}})\index{area-name}, {\it{prog-segment\/}}))\index{program-body})\-\index{get})\index{unlabel}\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-current-instruction-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  fetch-deposit \\ \index{fetch-deposit}
\=\+(({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\it{addr1\/}}, {\rm{deposit}}\,({\it{value\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit})\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{definedp}}\,({\rm{area-name}}\,({\it{addr2\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp} \\ 
{\bf then }\=\+{\bf if }{\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name} \\ 
{\bf then }\=\+{\bf if }{\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}$\;\;${\bf then }{\it{value\/}} \\ 
{\bf else }{\rm{fetch}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{fetch}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{fetch}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{verbatim};; add-addr
\end{verbatim}\begin{tabbing}{\sc Theorem}:  area-name-add-addr \\ \index{area-name-add-addr}
{\rm{area-name}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr\/}})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  offset-add-addr \\ \index{offset-add-addr}
{\rm{offset}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{offset} $=$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adp-name-untag-add-addr \\ \index{adp-name-untag-add-addr}
{\rm{adp-name}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{untag})\index{adp-name} $=$ {\rm{area-name}}\,({\it{addr\/}})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-of-non-number \\ \index{add-addr-of-non-number}
({\it{n\/}} $\not\in\;${\bf{N}}${}$) $\rightarrow$ ({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr} $=$ {\rm{add-addr}}\,({\it{addr\/}}, {\tt{0}})\index{add-addr})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-add-addr \\ \index{add-addr-add-addr}
{\rm{add-addr}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr}, {\it{m\/}})\index{add-addr} $=$ {\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}} $+$ {\it{m\/}})\index{add-addr}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-untag-add-addr \\ \index{listp-untag-add-addr}
{\rm{listp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{untag})
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  cddr-add-addr \\ \index{cddr-add-addr}
{\rm{cddr}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr}) $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  area-name-lr-return-pc \\ \index{area-name-lr-return-pc}
{\rm{area-name}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-untag-lr-return-pc \\ \index{listp-untag-lr-return-pc}
{\rm{listp}}\,({\rm{untag}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{untag})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  type-lr-return-pc \\ \index{type-lr-return-pc}
{\rm{type}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{type} $=$ {\tt{'}}{\tt{pc}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-lr-return-pc \\ \index{cddr-lr-return-pc}
{\rm{cddr}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc}) $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-offset-return-pc \\ \index{numberp-offset-return-pc}
{\rm{offset}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{offset} $\in\;${\bf{N}}${}$
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-cdr-untag-return-pc \\ \index{numberp-cdr-untag-return-pc}
{\rm{cdr}}\,({\rm{untag}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{untag}) $\in\;${\bf{N}}${}$
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-untag-lr-return-pc \\ \index{car-untag-lr-return-pc}
{\rm{car}}\,({\rm{untag}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{untag}) $=$ {\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag})
\end{tabbing}

\begin{verbatim};; sub-addr
\end{verbatim}\begin{tabbing}{\sc Theorem}:  area-name-sub-addr \\ \index{area-name-sub-addr}
{\rm{area-name}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr\/}})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-sub-addr \\ \index{cddr-sub-addr}
{\rm{cddr}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr}) $=$ {\bf{nil}}
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  listp-untag-sub-addr \\ \index{listp-untag-sub-addr}
{\rm{listp}}\,({\rm{untag}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr})\index{untag})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  offset-sub-addr \\ \index{offset-sub-addr}
{\rm{offset}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr})\index{offset} $=$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $-$ {\it{n\/}})
\end{tabbing}

\begin{verbatim};; LR-BOUNDARY-NODEP
\end{verbatim}\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-sub-addr \\ \index{lr-boundary-nodep-sub-addr}
\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\index{sub-addr})\index{lr-boundary-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-add-addr-lr-node-size \\ \index{lr-boundary-nodep-add-addr-lr-n!ode-size}
\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\index{add-addr})\index{lr-boundary-nodep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-boundary-nodep.

\addvspace{18pt}

\begin{verbatim};; LR-NODEP
\end{verbatim}\begin{tabbing}{\sc Theorem}:  lr-nodep-opener \\ \index{lr-nodep-opener}
\=\+{\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name})))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-nodep.

\addvspace{18pt}

\begin{verbatim};; LR-GOOD-POINTERP
\end{verbatim}\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-opener \\ \index{lr-good-pointerp-opener}
\=\+{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-good-pointerp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  equal-plus-remainder-0-fact \\ \index{equal-plus-remainder-0-fact}
\=\+(\=\+(({\it{offset1\/}} ${}${\bf{mod}}${}$ {\it{max\/}}) $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$(({\it{offset2\/}} ${}${\bf{mod}}${}$ {\it{max\/}}) $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\it{max\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\it{max\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{offset1\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset2\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\it{n\/}} $+$ {\it{offset1\/}}) $=$ ({\it{m\/}} $+$ {\it{offset2\/}})) \\ 
$=$$\;\;\;\;$(({\rm{fix}}\,({\it{n\/}}) $=$ {\rm{fix}}\,({\it{m\/}})) $\wedge$ ({\it{offset1\/}} $=$ {\it{offset2\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-equal-plus-fact \\ \index{lr-boundary-offsetp-equal-plus-!fact}
\=\+(\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset1\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset2\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\it{offset1\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset2\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\it{n\/}} $+$ {\it{offset1\/}}) $=$ ({\it{m\/}} $+$ {\it{offset2\/}})) \\ 
$=$$\;\;\;\;$(({\rm{fix}}\,({\it{n\/}}) $=$ {\rm{fix}}\,({\it{m\/}})) $\wedge$ ({\it{offset1\/}} $=$ {\it{offset2\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-list-nx-t-simple \\ \index{good-posp-list-nx-t-simple}
\=\+(\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\it{pos\/}}, {\it{body\/}})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{pos\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}) $<$ {\rm{length}}\,({\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{nx}}\,({\it{pos\/}})\index{nx}, {\it{body\/}})\index{good-posp} $\wedge$ {\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-1-lr-proper-exprp \\ \index{lr-programs-properp-1-lr-proper!-exprp}
\=\+({\rm{lr-programs-properp-1}}\,({\it{progs\/}}, {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1} $\wedge$ ({\it{prog\/}} $\in$ {\it{progs\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\it{prog\/}})\index{program-body}, \\ 
{\it{program-names\/}}, \\ 
{\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-list-lr-proper-get-t \\ \index{lr-proper-exprp-list-lr-proper-!get-t}
\=\+{\rm{lr-proper-exprp}}\,({\tt{'}}{\tt{list}}, {\it{expr\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{expr\/}})\index{get}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$=$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{expr\/}})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-t-lr-proper-get-t \\ \index{lr-proper-exprp-t-lr-proper-get!-t}
\=\+(\=\+({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{expr\/}})\index{get}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$=$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{expr\/}})\index{length}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-exprp-list-lr-proper-get-t.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-lr-proper-exprp-cur-expr \\ \index{lr-proper-exprp-lr-proper-exprp!-cur-expr}
\=\+({\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} $\wedge$ {\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-programs-properp-1 \\ \index{lr-programs-properp-lr-programs!-properp-1}
\=\+({\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} $\wedge$ ({\it{prog-seg\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-programs-properp-1}}\,(\=\+{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\it{table\/}})\-\index{lr-programs-properp-1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\it{prog-seg\/}})\index{definedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-proper-exprp-lr-expr \\ \index{lr-programs-properp-lr-proper-e!xprp-lr-expr}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{strip-logic-fnames}, \\ 
{\rm{formal-vars}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-length-cur-expr \\ \index{lr-proper-exprp-length-cur-expr}
\=\+(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{expr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{subrp}}\,({\rm{car}}\,({\it{expr\/}})) $\vee$ {\rm{body}}\,({\rm{car}}\,({\it{expr\/}}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{quote}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\it{expr\/}})\index{length} $=$ ($1\;+$ {\rm{arity}}\,({\rm{car}}\,({\it{expr\/}}))\index{arity}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-comp-body-1 \\ \index{listp-comp-body-1}
\=\+{\rm{listp}}\,({\rm{comp-body-1}}\,({\it{flag\/}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1}) \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}}$\;\;${\bf then }{\rm{listp}}\,({\it{body\/}}) \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-append \\ \index{car-append}
{\rm{listp}}\,({\it{x\/}}) $\rightarrow$ ({\rm{car}}\,({\rm{append}}\,({\it{x\/}}, {\it{y\/}})) $=$ {\rm{car}}\,({\it{x\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-comp-if-comp-body \\ \index{length-cdr-comp-if-comp-body}
\=\+{\rm{length}}\,({\rm{comp-if}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\it{test\/}}, {\it{n1\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\it{then\/}}, {\it{n2\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\it{else\/}}, {\it{n3\/}})\index{comp-body-1}, \\ 
{\it{n\/}})\-\index{comp-if})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\it{test\/}}, {\it{n1\/}})\index{comp-body-1})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\it{then\/}}, {\it{n2\/}})\index{comp-body-1})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\it{else\/}}, {\it{n3\/}})\index{comp-body-1})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-list-0-opener \\ \index{lr-p-c-size-list-0-opener}
{\rm{lr-p-c-size-list}}\,({\tt{0}}, {\it{expr\/}})\index{lr-p-c-size-list} $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-list-add1-opener \\ \index{lr-p-c-size-list-add1-opener}
\=\+(($1\;+$ {\it{n\/}}) $<$ {\rm{length}}\,({\it{expr\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size-list}}\,($1\;+$ {\it{n\/}}, {\it{expr\/}})\index{lr-p-c-size-list} \\ 
$=$$\;\;\;\;$({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{expr\/}}))\index{lr-p-c-size-list}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-comp-body-1-lr-p-c-size \\ \index{length-comp-body-1-lr-p-c-size}
{\rm{length}}\,({\rm{comp-body-1}}\,({\it{flag\/}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1})\index{length} $=$ {\rm{lr-p-c-size}}\,({\it{flag\/}}, {\it{body\/}})\index{lr-p-c-size}
\end{tabbing}


\noindent{\sc Event}:   Disable lr-p-c-size-list-add1-opener.

\addvspace{18pt}

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

\begin{tabbing}{\sc Theorem}:  length-comp-body-lr-p-c-size \\ \index{length-comp-body-lr-p-c-size}
{\rm{length}}\,({\rm{comp-body}}\,({\it{body\/}})\index{comp-body})\index{length} $=$ ($1\;+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body\/}})\index{lr-p-c-size})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-flag-list \\ \index{lr-p-c-size-flag-list}
{\rm{lr-p-c-size}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{lr-p-c-size} $=$ {\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{expr\/}})\index{length} $-\;1$, {\it{expr\/}})\index{lr-p-c-size-list}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-car-if-cadr \\ \index{lr-proper-exprp-car-if-cadr}
\=\+(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-car-if-caddr \\ \index{lr-proper-exprp-car-if-caddr}
\=\+(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{caddr}}\,({\it{body\/}}), {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-car-if-cadddr \\ \index{lr-proper-exprp-car-if-cadddr}
\=\+(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{cadddr}}\,({\it{body\/}}), {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-list-t-offset-program-body \\ \index{good-posp-list-t-offset-program!-body}
\=\+(\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-list-nx-offset-program-body \\ \index{good-posp-list-nx-offset-progra!m-body}
\=\+(\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{nx}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{good-posp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  name-formal-vars-temp-var-dcls-program-body-cons \\ \index{name-formal-vars-temp-var-dcls-p!rogram-body-cons}
\=\+({\rm{name}}\,({\rm{cons}}\,({\it{name\/}}, {\it{rest\/}}))\index{name} $=$ {\it{name\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{formal-vars}}\,({\rm{cons}}\,({\it{name\/}}, {\rm{cons}}\,({\it{formal-vars\/}}, {\it{rest\/}})))\index{formal-vars} $=$ {\it{formal-vars\/}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{temp-var-dcls}}\,({\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
{\rm{cons}}\,({\it{formal-vars\/}}, {\rm{cons}}\,({\it{temp-var-dcls\/}}, {\it{program-body\/}})))\-)\index{temp-var-dcls} \\ 
$=$$\;\;\;\;${\it{temp-var-dcls\/}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{program-body}}\,({\rm{cons}}\,(\=\+{\it{name\/}}, \\ 
{\rm{cons}}\,({\it{formal-vars\/}}, {\rm{cons}}\,({\it{temp-var-dcls\/}}, {\it{program-body\/}})))\-)\index{program-body} \\ 
$=$$\;\;\;\;${\it{program-body\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  program-body-assoc-comp-programs-1 \\ \index{program-body-assoc-comp-program!s-1}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs-1}}\,({\it{programs\/}})\index{comp-programs-1}))\index{program-body} \\ 
$=$$\;\;\;\;${\rm{comp-body}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{program-body})\index{comp-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  program-body-assoc-comp-programs \\ \index{program-body-assoc-comp-program!s}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\it{programs\/}})\index{comp-programs}))\index{program-body} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{name\/}} $=$ {\rm{name}}\,({\rm{car}}\,({\it{programs\/}}))\index{name} \\ 
{\bf then }{\rm{label-instrs}}\,(\=\+{\rm{append}}\,(\=\+{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{car}}\,({\it{programs\/}}))\index{program-body}, \\ 
{\tt{0}})\-\index{comp-body-1}, \\ 
{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{set-global}}, \\ 
{\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name})\-), \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-)\-, \\ 
{\tt{0}})\-\index{label-instrs} \\ 
{\bf else }{\rm{comp-body}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{cdr}}\,({\it{programs\/}})))\index{program-body})\index{comp-body}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-area-name-member-p-current-program \\ \index{definedp-area-name-member-p-cur!rent-program}
\=\+{\rm{definedp}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program} $\in$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-6} \\  
\=\+{\rm{induct-hint-6}}\,({\it{n\/}}, {\it{body\/}})\index{induct-hint-6} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}$\;\;${\bf then }{\rm{induct-hint-6}}\,($1\;+$ {\it{n\/}}, {\it{body\/}})\index{induct-hint-6} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-list-0 \\ \index{lr-p-c-size-list-0}
\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\it{body\/}})\index{lr-p-c-size-list} $=$ {\tt{0}}) $=$ (({\it{n\/}} $\simeq {\tt{0}}$) $\vee$ ({\rm{cdr}}\,({\it{body\/}}) $\simeq\;${{\bf{nil}}}${}$)))\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-p-c-size-list-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-lr-p-c-size-list-lessp-sub1-length \\ \index{lessp-lr-p-c-size-list-lessp-su!b1-length}
\=\+({\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\it{body\/}})\index{lr-p-c-size-list} $\not=$ {\tt{0}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\it{body\/}})\index{lr-p-c-size-list} $-\;1$) \\ 
$<$$\;\;\;\;${\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{body\/}})\index{length} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-body-0 \\ \index{lr-p-pc-1-body-0}
{\rm{lr-p-pc-1}}\,({\tt{0}}, {\it{pos\/}})\index{lr-p-pc-1} $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-lr-p-pc-1-lr-p-c-size-helper-1 \\ \index{lessp-lr-p-pc-1-lr-p-c-size-helpe!r-1}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1} $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get})\index{lr-p-c-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1} $\not=$ {\tt{0}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1}) $-\;1$) \\ 
$<$$\;\;\;\;${\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{body\/}})\index{length} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-lr-p-pc-1-lr-p-c-size \\ \index{lessp-lr-p-pc-1-lr-p-c-size}
{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body\/}})\index{lr-p-c-size}
\end{tabbing}


\noindent{\sc Event}:   Disable lessp-lr-p-pc-1-lr-p-c-size-helper-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-lessp-p-max-temp-stk-size-lr-push-tstk \\ \index{not-lessp-p-max-temp-stk-size-l!r-push-tstk}
\=\+({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{anything\/}})\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{anything\/}})\index{lr-push-tstk})\index{p-temp-stk})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-lr-$>$p-lr-push-tstk \\ \index{proper-p-temp-stkp-lr-$>$p-lr-p!ush-tstk}
\=\+{\rm{proper-p-temp-stkp}}\,({\it{temp-stkp\/}}, {\rm{lr-$>$p}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{anything\/}})\index{lr-push-tstk})\index{lr-$>$p})\index{proper-p-temp-stkp} \\ 
$=$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\it{temp-stkp\/}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-p-objectp \\ \index{proper-p-alistp-p-objectp}
\=\+({\rm{proper-p-alistp}}\,({\it{bindings\/}}, {\it{l\/}})\index{proper-p-alistp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{bindings\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{bindings\/}})), {\it{l\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  formal-vars-assoc-comp-programs-1 \\ \index{formal-vars-assoc-comp-programs!-1}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs-1}}\,({\it{programs\/}})\index{comp-programs-1}))\index{formal-vars} \\ 
$=$$\;\;\;\;${\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{formal-vars})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  formal-vars-assoc-comp-programs \\ \index{formal-vars-assoc-comp-programs}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\it{programs\/}})\index{comp-programs}))\index{formal-vars} \\ 
$=$$\;\;\;\;${\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{formal-vars})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  temp-var-dcls-assoc-comp-programs-1 \\ \index{temp-var-dcls-assoc-comp-progra!ms-1}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs-1}}\,({\it{programs\/}})\index{comp-programs-1}))\index{temp-var-dcls} \\ 
$=$$\;\;\;\;${\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{temp-var-dcls})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  temp-var-dcls-assoc-comp-programs \\ \index{temp-var-dcls-assoc-comp-progra!ms}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\it{programs\/}})\index{comp-programs}))\index{temp-var-dcls} \\ 
$=$$\;\;\;\;${\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{temp-var-dcls})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-definedp-car-untag-p-pc \\ \index{lr-programs-properp-definedp-ca!r-untag-p-pc}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag}), {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-cdr-assoc-litatom-proper-p-alistp \\ \index{p-objectp-cdr-assoc-litatom-prope!r-p-alistp}
\=\+(\=\+{\rm{proper-p-alistp}}\,({\it{bindings\/}}, {\it{lp\/}})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\it{bindings\/}}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag}), \\ 
{\rm{comp-programs-1}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs-1})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag}), \\ 
{\rm{comp-programs-1}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs-1})\-)\index{temp-var-dcls}))\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, {\it{bindings\/}})), {\it{lp\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-lr-push-tstk-assoc-bindings \\ \index{proper-p-temp-stkp-lr-push-tstk!-assoc-bindings}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag}), \\ 
{\rm{comp-programs-1}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs-1})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag}), \\ 
{\rm{comp-programs-1}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs-1})\-)\index{temp-var-dcls}))\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-temp-stkp}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,(\=\+{\it{l\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-))\-\index{lr-push-tstk})\index{p-temp-stk}, \\ 
{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\-\index{proper-p-temp-stkp} \\ 
$=$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-temp-stkp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-lr-push-tstk \\ \index{lr-p-pc-lr-push-tstk}
{\rm{lr-p-pc}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{anything\/}})\index{lr-push-tstk})\index{lr-p-pc} $=$ {\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lr-push-tstk \\ \index{proper-p-statep-lr-$>$p-lr-push!-tstk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-push-tstk}}\,(\=\+{\it{l\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-))\-\index{lr-push-tstk})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-push-tstk}}\,(\=\+{\it{l\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-))\-\index{lr-push-tstk})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-cons-lessp-4-if-lr-proper-exprp \\ \index{good-posp1-cons-lessp-4-if-lr-p!roper-exprp}
\=\+(\=\+({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{2}})\index{dv}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{3}})\index{dv}, {\it{body\/}})\index{good-posp1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-cons-lessp-4-if-lr-programs-properp \\ \index{good-posp-cons-lessp-4-if-lr-pr!ograms-properp}
\=\+(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{good-posp1}}\,({\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,(\=\+{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,(\=\+{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{3}})\index{dv}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{good-posp1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lr-set-pos \\ \index{proper-p-statep-lr-$>$p-lr-set-p!os}
\=\+({\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} $\wedge$ {\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-lr-pop-tstk \\ \index{lr-p-pc-lr-pop-tstk}
{\rm{lr-p-pc}}\,({\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk})\index{lr-p-pc} $=$ {\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lr-pop-tstk \\ \index{proper-p-statep-lr-$>$p-lr-pop-t!stk}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ {\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk})\index{lr-$>$p})\index{proper-p-statep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-dv-1-temps-lr-expr \\ \index{good-posp-dv-1-temps-lr-expr}
\=\+(\=\+(({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-put-assoc \\ \index{proper-p-alistp-put-assoc}
\=\+({\rm{proper-p-alistp}}\,({\it{bindings\/}}, {\it{l\/}})\index{proper-p-alistp} $\wedge$ {\rm{p-objectp}}\,({\it{object\/}}, {\it{l\/}})\index{p-objectp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{put-assoc}}\,({\it{object\/}}, {\it{var-name\/}}, {\it{bindings\/}})\index{put-assoc}, {\it{l\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-p-temp-stk-lr-push-tstk \\ \index{listp-p-temp-stk-lr-push-tstk}
\=\+({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{object\/}})\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{object\/}})\index{lr-push-tstk})\index{p-temp-stk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-lr-set-temp \\ \index{lr-p-pc-lr-set-temp}
{\rm{lr-p-pc}}\,({\rm{lr-set-temp}}\,({\it{l\/}}, {\it{value\/}}, {\it{var-name\/}})\index{lr-set-temp})\index{lr-p-pc} $=$ {\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-set-temp \\ \index{proper-p-statep-lr-set-temp}
\=\+({\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\wedge$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-set-temp}}\,({\it{l\/}}, {\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\it{var-name\/}})\index{lr-set-temp})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-cdr-assoc-bindings-proper-p-alistp \\ \index{p-objectp-cdr-assoc-bindings-pr!oper-p-alistp}
\=\+({\rm{proper-p-alistp}}\,({\it{bindings\/}}, {\it{l\/}})\index{proper-p-alistp} $\wedge$ {\rm{definedp}}\,({\it{object\/}}, {\it{bindings\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{bindings\/}})), {\it{l\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-caddr-lr-expr-bindings-ctrl-stk \\ \index{definedp-caddr-lr-expr-bindings!-ctrl-stk}
\=\+(\=\+{\rm{lr-programs-properp-1}}\,({\it{progs\/}}, {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{progs\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{program-body})\index{cur-expr}) \\ 
$=$$\;\;\;\;${\sc{s-temp-fetch}}\index{s-temp-fetch})\- \\ 
$\vee$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{program-body})\index{cur-expr}) \\ 
$=$$\;\;\;\;${\sc{s-temp-test}}\index{s-temp-test})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\it{bindings\/}}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs})\-)\index{temp-var-dcls}))\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,(\=\+{\rm{caddr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{program-body})\index{cur-expr}), \\ 
{\it{bindings\/}})\-\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-p-temp-stk-lr-do-temp-fetch \\ \index{proper-p-temp-stkp-p-temp-stk-l!r-do-temp-fetch}
\=\+(\=\+{\rm{proper-p-framep}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{l1\/}})\index{p-ctrl-stk})\index{top}, {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{area-name}, {\it{l2\/}})\index{proper-p-framep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l1\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l1\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{l2\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l1\/}})\index{lr-$>$p})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l1\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l2\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\rm{lr-do-temp-fetch}}\,({\it{l1\/}})\index{lr-do-temp-fetch})\index{p-temp-stk}, {\it{l2\/}})\index{proper-p-temp-stkp} \\ 
$=$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{l1\/}})\index{p-temp-stk}, {\it{l2\/}})\index{proper-p-temp-stkp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-do-temp-fetch \\ \index{length-lr-do-temp-fetch}
\=\+({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-temp-stk})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-lr-do-temp-fetch \\ \index{lr-p-pc-lr-do-temp-fetch}
{\rm{lr-p-pc}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{lr-p-pc} $=$ {\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-do-temp-fetch \\ \index{proper-p-statep-lr-do-temp-fetc!h}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-push-tstk \\ \index{length-lr-push-tstk}
\=\+({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{object\/}})\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{object\/}})\index{lr-push-tstk})\index{p-temp-stk})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-p-temp-stk-lr-do-temp-fetch \\ \index{listp-p-temp-stk-lr-do-temp-fet!ch}
\=\+({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-temp-stk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-append \\ \index{proper-p-prog-segmentp-append}
\=\+{\rm{plistp}}\,({\it{segment1\/}})\index{plistp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-prog-segmentp}}\,({\rm{append}}\,({\it{segment1\/}}, {\it{segment2\/}}), {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{proper-p-prog-segmentp}}\,({\it{segment1\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\it{segment2\/}}, {\it{p\/}})\index{proper-p-prog-segmentp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-expr-quote-type-addr \\ \index{lr-programs-properp-expr-quote-t!ype-addr}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{type}}\,({\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{type} $=$ {\tt{'}}{\tt{addr}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-push-constant-opener \\ \index{proper-p-instructionp-push-const!ant-opener}
\=\+{\rm{proper-p-instructionp}}\,({\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\it{object\/}}), {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$=$$\;\;\;\;${\rm{proper-p-push-constant-instructionp}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\it{object\/}}), \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-p-push-constant-instructi!onp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-find-labelp-non-litatom \\ \index{proper-labeled-p-instructionsp-!find-labelp-non-litatom}
\=\+({\rm{proper-labeled-p-instructionsp}}\,({\it{body\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} $\wedge$ ($\neg$ {\rm{litatom}}\,({\it{label\/}}))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{find-labelp}}\,({\it{label\/}}, {\it{body\/}})\index{find-labelp} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-4-not-zerop-not-1-not-2-3 \\ \index{lessp-4-not-zerop-not-1-not-2-3}
(({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{n\/}} $\not=$ {\tt{1}}) $\wedge$ ({\it{n\/}} $\not=$ {\tt{2}}) $\wedge$ ({\it{n\/}} $<$ {\tt{4}})) $\rightarrow$ ({\it{n\/}} $=$ {\tt{3}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-4-not-zerop-not-1-not-2-3-get-car-pos \\ \index{lessp-4-not-zerop-not-1-not-2-3!-get-car-pos}
\=\+(\=\+({\rm{car}}\,({\it{pos\/}}) $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $\not=$ {\tt{1}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $\not=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $<$ {\tt{4}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\rm{car}}\,({\it{pos\/}}), {\it{body\/}})\index{get} $=$ {\rm{cadddr}}\,({\it{body\/}}))\-
\end{tabbing}


\noindent{\sc Event}:   Disable lessp-4-not-zerop-not-1-not-2-3-get-car-pos.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-index-lessp-lr-p-c-size-list \\ \index{lessp-index-lessp-lr-p-c-size-li!st}
{\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\rm{cdr}}\,({\it{body\/}}))\index{length}, {\it{body\/}})\index{lr-p-c-size-list} $\not<$ {\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\it{body\/}})\index{lr-p-c-size-list}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-plus-lr-p-c-size-lr-p-pc-1-helper \\ \index{lessp-plus-lr-p-c-size-lr-p-pc-!1-helper}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get})\index{lr-p-c-size} $\not<$ {\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$(({\it{n\/}} $-\;1$) $<$ {\rm{length}}\,({\rm{cdr}}\,({\it{body\/}}))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{len\/}} $=$ {\rm{length}}\,({\rm{cdr}}\,({\it{body\/}}))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+({\rm{lr-p-c-size-list}}\,({\it{len\/}}, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\tt{1}}) \\ 
$<$$\;\;\;\;$({\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\it{x\/}}))\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-plus-lr-p-c-size-lr-p-pc-1 \\ \index{lessp-plus-lr-p-c-size-lr-p-pc-!1}
\=\+({\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} $\wedge$ {\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body\/}})\index{lr-p-c-size} \\ 
$\not<$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{lr-p-c-size}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-7} \\  
\=\+{\rm{induct-hint-7}}\,({\it{pos\/}}, {\it{expr\/}}, {\it{n\/}})\index{induct-hint-7} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{pos\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{expr\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{then-n\/}}{\bf $\;$ be$\;\;$}{\it{n\/}} $+$ {\tt{3}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size}\- \\ 
{\bf in} \\ 
\=\+{\bf case on }{\rm{car}}\,({\it{pos\/}}): \\ 
{\bf case = }{\tt{1}} \\ 
{\bf then }{\rm{induct-hint-7}}\,({\rm{cdr}}\,({\it{pos\/}}), {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}})\index{induct-hint-7} \\ 
{\bf case = }{\tt{2}} \\ 
{\bf $\;\;$then }{\rm{induct-hint-7}}\,({\rm{cdr}}\,({\it{pos\/}}), {\rm{caddr}}\,({\it{expr\/}}), {\it{then-n\/}})\index{induct-hint-7} \\ 
{\bf otherwise }{\rm{induct-hint-7}}\,(\=\+{\rm{cdr}}\,({\it{pos\/}}), \\ 
{\rm{cadddr}}\,({\it{expr\/}}), \\ 
\=\+{\tt{1}} \\ 
$+$$\;\;\;\;${\it{then-n\/}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size}\-)\-\index{induct-hint-7}$\;${\bf  endcase}\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }{\rm{induct-hint-7}}\,({\rm{cdr}}\,({\it{pos\/}}), {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}})\index{induct-hint-7} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }{\rm{induct-hint-7}}\,({\rm{cdr}}\,({\it{pos\/}}), {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}} $+$ {\tt{4}})\index{induct-hint-7} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-7}}\,(\=\+{\rm{cdr}}\,({\it{pos\/}}), \\ 
{\rm{get}}\,({\rm{car}}\,({\it{pos\/}}), {\it{expr\/}})\index{get}, \\ 
{\it{n\/}} $+$ {\rm{lr-p-c-size-list}}\,({\rm{car}}\,({\it{pos\/}}) $-\;1$, {\it{expr\/}})\index{lr-p-c-size-list})\-\index{induct-hint-7}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-s-temp-test-eval-cadr-not-lessp-fact \\ \index{lr-p-c-size-s-temp-test-eval-ca!dr-not-lessp-fact}
\=\+(\=\+{\rm{listp}}\,({\it{expr\/}}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-comp-temp-test \\ \index{length-comp-temp-test}
\=\+({\rm{listp}}\,({\it{body\/}}) $\wedge$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{comp-temp-test}}\,({\it{any-body\/}}, {\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1}, {\it{any-n\/}})\index{comp-temp-test})\index{length} \\ 
$=$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body\/}})\index{lr-p-c-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-comp-temp-test \\ \index{plistp-comp-temp-test}
{\rm{plistp}}\,({\rm{comp-temp-test}}\,({\it{body\/}}, {\it{instrs\/}}, {\it{n\/}})\index{comp-temp-test})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-comp-if-alt \\ \index{length-comp-if-alt}
\=\+({\rm{listp}}\,({\it{body\/}}) $\wedge$ ({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{comp-if}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n1\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\rm{caddr}}\,({\it{body\/}}), {\it{n2\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadddr}}\,({\it{body\/}}), {\it{n3\/}})\index{comp-body-1}, \\ 
{\it{any-n\/}})\-\index{comp-if})\index{length} \\ 
$=$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body\/}})\index{lr-p-c-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-comp-if \\ \index{plistp-comp-if}
\=\+({\rm{plistp}}\,({\it{else-instrs\/}})\index{plistp} $\wedge$ {\rm{listp}}\,({\it{else-instrs\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{plistp}}\,({\rm{comp-if}}\,({\it{test-intrs\/}}, {\it{then-instrs\/}}, {\it{else-instrs\/}}, {\it{n\/}})\index{comp-if})\index{plistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-comp-body-1 \\ \index{plistp-comp-body-1}
{\rm{plistp}}\,({\rm{comp-body-1}}\,({\it{flag\/}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-list-funcall-not-lessp-fact \\ \index{lr-p-c-size-list-funcall-not-le!ssp-fact}
\=\+(\=\+{\rm{listp}}\,({\it{expr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{if}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{expr\/}})\index{length} $-\;1$, {\it{expr\/}})\index{lr-p-c-size-list} $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-nlistp-body \\ \index{lr-p-c-size-nlistp-body}
($\neg$ {\rm{listp}}\,({\it{body\/}})) $\rightarrow$ ({\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body\/}})\index{lr-p-c-size} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-1 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1-helper-1}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1}, \\ 
{\rm{comp-if}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
{\it{then-instrs\/}}, \\ 
{\it{else-instrs\/}}, \\ 
{\it{n\/}})\-\index{comp-if})\-\index{restn})\-\index{firstn} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1})\-\index{restn})\-\index{firstn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-restn-plus-comp-if-1 \\ \index{firstn-restn-plus-comp-if-1}
\=\+(\=\+({\it{j\/}} $=$ {\rm{length}}\,({\it{test\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{then\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\rm{length}}\,({\it{then\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{test\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{then\/}})\index{length} $\not<$ ({\it{k\/}} $+$ {\it{m\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,({\it{k\/}}, {\rm{restn}}\,({\tt{3}} $+$ {\it{j\/}} $+$ {\it{m\/}}, {\rm{comp-if}}\,({\it{test\/}}, {\it{then\/}}, {\it{else\/}}, {\it{n\/}})\index{comp-if})\index{restn})\index{firstn} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,({\it{k\/}}, {\rm{restn}}\,({\it{m\/}}, {\it{then\/}})\index{restn})\index{firstn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-unlabel-instrs-comp-body-1-lr-p-pc-1-helper-2 \\ \index{firstn-unlabel-instrs-comp-body!-1-lr-p-pc-1-helper-2}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{caddr}}\,({\it{body\/}}))\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{caddr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{caddr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-restn-plus-comp-if-2 \\ \index{firstn-restn-plus-comp-if-2}
\=\+(\=\+({\it{j\/}} $=$ {\rm{length}}\,({\it{test\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{i\/}} $=$ {\rm{length}}\,({\it{then\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{then\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\rm{length}}\,({\it{else\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{test\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{else\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{else\/}})\index{length} $\not<$ ({\it{m\/}} $+$ {\it{k\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,({\it{k\/}}, {\rm{restn}}\,({\it{j\/}} $+$ {\it{i\/}} $+$ {\it{m\/}} $+$ {\tt{4}}, {\rm{comp-if}}\,({\it{test\/}}, {\it{then\/}}, {\it{else\/}}, {\it{n\/}})\index{comp-if})\index{restn})\index{firstn} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,({\it{k\/}}, {\rm{restn}}\,({\it{m\/}}, {\it{else\/}})\index{restn})\index{firstn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-unlabel-instrs-comp-body-1-lr-p-pc-1-helper-3 \\ \index{firstn-unlabel-instrs-comp-body!-1-lr-p-pc-1-helper-3}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{cadddr}}\,({\it{body\/}}))\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadddr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{cadddr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{cadddr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plus-constant-fact-helper-1 \\ \index{plus-constant-fact-helper-1}
({\tt{1}} $+$ {\it{n\/}} $+$ {\tt{3}} $+$ {\it{x\/}} $+$ {\it{y\/}}) $=$ ({\it{n\/}} $+$ {\tt{4}} $+$ {\it{x\/}} $+$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-4 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1-helper-4}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} $+$ {\tt{4}}, \\ 
{\rm{comp-temp-test}}\,({\it{body-1\/}}, {\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1}, {\it{m\/}})\index{comp-temp-test})\-\index{restn})\-\index{firstn} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1})\-\index{restn})\-\index{firstn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-5 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1-helper-5}
({\tt{4}} $+$ {\it{x\/}}) $=$ ({\it{x\/}} $+$ {\tt{4}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-lr-proper-exprp-get-cadddr \\ \index{good-posp1-lr-proper-exprp-get-!cadddr}
\=\+(\=\+{\rm{listp}}\,({\it{pos\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $\not=$ {\tt{1}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $\not=$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{pos\/}}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$(((({\rm{car}}\,({\it{pos\/}}) $-\;1$) $-\;1$) $-\;1$) $<$ {\rm{length}}\,({\rm{cdddr}}\,({\it{body\/}}))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\rm{car}}\,({\it{pos\/}}), {\it{body\/}})\index{get} $=$ {\rm{cadddr}}\,({\it{body\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-cadr-temps \\ \index{lr-proper-exprp-cadr-temps}
\=\+(\=\+{\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-plus-lr-p-c-size-lr-p-pc-1-temps \\ \index{lessp-plus-lr-p-c-size-lr-p-pc-!1-temps}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{cadr}}\,({\it{body\/}}))\index{cur-expr})\index{lr-p-c-size})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-6 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1-helper-6}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{body\/}})\index{length} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} \\ 
$\not<$$\;\;\;\;$({\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-10} \\  
\=\+{\rm{induct-hint-10}}\,({\it{n\/}}, {\it{l\/}}, {\it{x\/}})\index{induct-hint-10} \\ 
$=$$\;\;\;\;$\=\+{\bf if }$\neg$ {\rm{listp}}\,({\it{l\/}})$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{listp}}\,({\rm{cdr}}\,({\it{l\/}})) \\ 
{\bf then }{\rm{induct-hint-10}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{l\/}}), {\it{x\/}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{l\/}}))\index{lr-p-c-size})\index{induct-hint-10} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-list-car-opener \\ \index{lr-p-c-size-list-car-opener}
\=\+(({\it{n\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-c-size-list}}\,({\it{n\/}}, {\it{body\/}})\index{lr-p-c-size-list} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{body\/}}))\index{lr-p-c-size-list})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  restn-comp-body-1-list-fact \\ \index{restn-comp-body-1-list-fact}
\=\+(\=\+({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{get}}\,({\it{m\/}}, {\rm{cdr}}\,({\it{body\/}}))\index{get})\index{lr-p-c-size} $\not<$ {\it{j\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\it{body\/}}))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{j\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{restn}}\,(\=\+{\rm{lr-p-c-size-list}}\,({\it{m\/}}, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\it{j\/}}, \\ 
{\rm{comp-body-1}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1})\-\index{restn} \\ 
$=$$\;\;\;\;${\rm{restn}}\,(\=\+{\it{j\/}}, \\ 
{\rm{comp-body-1}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{restn}}\,({\it{m\/}}, {\rm{cdr}}\,({\it{body\/}}))\index{restn}, \\ 
{\it{n\/}} $+$ {\rm{lr-p-c-size-list}}\,({\it{m\/}}, {\it{body\/}})\index{lr-p-c-size-list})\-\index{comp-body-1})\-\index{restn})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-p-c-size-list-car-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  firstn-restn-small-enough-cdr-comp-body-1-list \\ \index{firstn-restn-small-enough-cdr-c!omp-body-1-list}
\=\+({\rm{listp}}\,({\it{body\/}}) $\wedge$ ({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{car}}\,({\it{body\/}}))\index{lr-p-c-size} $\not<$ ({\it{j\/}} $+$ {\it{k\/}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,({\it{j\/}}, {\rm{restn}}\,({\it{k\/}}, {\rm{comp-body-1}}\,({\tt{'}}{\tt{list}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1})\index{restn})\index{firstn} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,({\it{j\/}}, {\rm{restn}}\,({\it{k\/}}, {\rm{comp-body-1}}\,({\bf{t}}, {\rm{car}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1})\index{restn})\index{firstn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-7 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1-helper-7}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{get}}\,({\it{m\/}}, {\it{body\/}})\index{get})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{get}}\,({\it{m\/}}, {\it{body\/}})\index{get})\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,(\=\+\=\+{\rm{lr-p-c-size-list}}\,({\it{m\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{m\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1}\-, \\ 
{\rm{comp-body-1}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{body\/}}), {\it{n\/}})\index{comp-body-1})\-\index{restn})\-\index{firstn} \\ 
$=$$\;\;\;\;${\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{get}}\,({\it{m\/}}, {\it{body\/}})\index{get})\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{m\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{get}}\,({\it{m\/}}, {\it{body\/}})\index{get}, \\ 
{\it{n\/}} $+$ {\rm{lr-p-c-size-list}}\,({\it{m\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list})\-\index{comp-body-1})\-\index{restn})\-\index{firstn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-8 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1-helper-8}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{body\/}})\index{length} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} \\ 
$-$$\;\;\;\;$({\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1}))\- \\ 
$\not<$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get})\index{cur-expr})\index{lr-p-c-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1 \\ \index{firstn-lr-p-c-size-restn-lr-p-p!c-1-comp-body-1}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{firstn}}\,(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{lr-p-c-size}, \\ 
{\rm{restn}}\,({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1}, {\rm{comp-body-1}}\,({\bf{t}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1})\index{restn})\-\index{firstn} \\ 
$=$$\;\;\;\;${\rm{comp-body-1}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}, {\it{n\/}} $+$ {\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1})\index{comp-body-1})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable firstn-lr-p-c-size-restn-lr-p-pc-1-comp-body-1-helper-5.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-lessp-lr-p-c-size-flag-t-1 \\ \index{not-lessp-lr-p-c-size-flag-t-1}
{\rm{lr-p-c-size}}\,({\bf{t}}, {\it{body1\/}})\index{lr-p-c-size} $\not<$ {\tt{1}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-x-x \\ \index{not-lessp-x-x}
({\it{x\/}} $<$ {\it{x\/}}) $=$ {\bf{f}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-plus \\ \index{get-plus}
{\rm{get}}\,({\it{x\/}} $+$ {\it{y\/}}, {\it{list\/}})\index{get} $=$ {\rm{get}}\,({\it{y\/}}, {\rm{restn}}\,({\it{x\/}}, {\it{list\/}})\index{restn})\index{get}
\end{tabbing}


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

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-firstn-different-lists \\ \index{get-firstn-different-lists}
\=\+(({\it{k\/}} $<$ {\it{n\/}}) $\wedge$ ({\rm{firstn}}\,({\it{n\/}}, {\it{list1\/}})\index{firstn} $=$ {\rm{firstn}}\,({\it{n\/}}, {\it{list2\/}})\index{firstn})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\it{k\/}}, {\it{list1\/}})\index{get} $=$ {\rm{get}}\,({\it{k\/}}, {\it{list2\/}})\index{get})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlabel-list-label \\ \index{unlabel-list-label}
{\rm{unlabel}}\,({\rm{list}}\,({\tt{'}}{\tt{dl}}, {\it{lab\/}}, {\it{comment\/}}, {\it{instr\/}}))\index{unlabel} $=$ {\it{instr\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  legal-labelp-label-make-label \\ \index{legal-labelp-label-make-label}
{\rm{legal-labelp}}\,({\rm{list}}\,({\tt{'}}{\tt{dl}}, {\rm{lr-make-label}}\,({\it{n\/}})\index{lr-make-label}, {\it{comment\/}}, {\it{instr\/}}))\index{legal-labelp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-make-label-not-numberp \\ \index{lr-make-label-not-numberp}
({\it{n\/}} $\not\in\;${\bf{N}}${}$) $\rightarrow$ ({\rm{lr-make-label}}\,({\it{n\/}})\index{lr-make-label} $=$ {\rm{lr-make-label}}\,({\tt{0}})\index{lr-make-label})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-9} \\  
\=\+{\rm{induct-hint-9}}\,({\it{m\/}}, {\it{instrs\/}}, {\it{n\/}})\index{induct-hint-9} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{instrs\/}})$\;\;${\bf then }{\rm{induct-hint-9}}\,({\it{m\/}} $-\;1$, {\rm{cdr}}\,({\it{instrs\/}}), $1\;+$ {\it{n\/}})\index{induct-hint-9} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-label-instrs \\ \index{get-label-instrs}
\=\+({\it{m\/}} $<$ {\rm{length}}\,({\it{instrs\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{m\/}}, {\rm{label-instrs}}\,({\it{instrs\/}}, {\it{n\/}})\index{label-instrs})\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{dl}}, {\rm{lr-make-label}}\,({\it{n\/}} $+$ {\it{m\/}})\index{lr-make-label}, {\bf{nil}}, {\rm{get}}\,({\it{m\/}}, {\it{instrs\/}})\index{get}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-make-label-not-numberp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-append \\ \index{get-append}
\=\+{\rm{get}}\,({\it{n\/}}, {\rm{append}}\,({\it{x\/}}, {\it{y\/}}))\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\rm{length}}\,({\it{x\/}})\index{length}$\;\;${\bf then }{\rm{get}}\,({\it{n\/}}, {\it{x\/}})\index{get} \\ 
{\bf else }{\rm{get}}\,({\it{n\/}} $-$ {\rm{length}}\,({\it{x\/}})\index{length}, {\it{y\/}})\index{get}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable get-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  get-lr-p-c-size-lessp-lr-p-c-size-comp-body-1 \\ \index{get-lr-p-c-size-lessp-lr-p-c-si!ze-comp-body-1}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{lr-p-c-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} $+$ {\it{m\/}}, {\rm{comp-body-1}}\,({\bf{t}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1})\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,(\=\+{\it{m\/}}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{n\/}} $+$ {\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1})\-\index{comp-body-1})\-\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-lr-p-pc-1-comp-body-1-cur-expr-comp-body \\ \index{get-lr-p-pc-1-comp-body-1-cur-e!xpr-comp-body}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1}, \\ 
{\rm{comp-body}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body})\index{comp-body})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\it{prog\/}})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1})\index{lr-make-label}, \\ 
{\bf{nil}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-lr-p-pc-1-comp-body-1-quote \\ \index{get-lr-p-pc-1-comp-body-1-quote}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{caar}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\rm{program-body}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body}, {\tt{0}})\index{comp-body-1})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-p-temp-stk-lr-push-tstk-quote \\ \index{proper-p-temp-stkp-p-temp-stk-l!r-push-tstk-quote}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-temp-stkp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-push-tstk})\index{p-temp-stk}, \\ 
{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\-\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-push-tstk-quote \\ \index{proper-p-statep-lr-push-tstk-qu!ote}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-push-tstk})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-dv-1-funcall-lr-expr \\ \index{good-posp-dv-1-funcall-lr-expr}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{good-posp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-pairlist \\ \index{plistp-pairlist}
{\rm{plistp}}\,({\rm{pairlist}}\,({\it{x\/}}, {\it{y\/}}))\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-append \\ \index{all-p-objectps-append}
\=\+{\rm{plistp}}\,({\it{lst1\/}})\index{plistp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{all-p-objectps}}\,({\rm{append}}\,({\it{lst1\/}}, {\it{lst2\/}}), {\it{p\/}})\index{all-p-objectps} \\ 
$=$$\;\;\;\;$({\rm{all-p-objectps}}\,({\it{lst1\/}}, {\it{p\/}})\index{all-p-objectps} $\wedge$ {\rm{all-p-objectps}}\,({\it{lst2\/}}, {\it{p\/}})\index{all-p-objectps}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-reverse \\ \index{all-p-objectps-reverse}
{\rm{plistp}}\,({\it{lst\/}})\index{plistp} $\rightarrow$ ({\rm{all-p-objectps}}\,({\rm{reverse}}\,({\it{lst\/}})\index{reverse}, {\it{p\/}})\index{all-p-objectps} $=$ {\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-first-n \\ \index{plistp-first-n}
{\rm{plistp}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{list\/}})\index{first-n})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-all-p-objectps \\ \index{proper-p-temp-stkp-all-p-objectp!s}
{\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\rightarrow$ {\rm{all-p-objectps}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{all-p-objectps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-first-n \\ \index{all-p-objectps-first-n}
\=\+(({\rm{length}}\,({\it{lst\/}})\index{length} $\not<$ {\it{n\/}}) $\wedge$ {\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{lst\/}})\index{first-n}, {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}

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


\noindent{\sc Event}:   Disable strip-cars-append.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  strip-cars-pairlist \\ \index{strip-cars-pairlist}
{\rm{strip-cars}}\,({\rm{pairlist}}\,({\it{x\/}}, {\it{y\/}})) $=$ {\rm{plist}}\,({\it{x\/}})\index{plist}
\end{tabbing}


\noindent{\sc Event}:   Disable strip-cars-pairlist.

\addvspace{18pt}

\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{temp-var-decls\/}})\index{pair-temps-with-initial-values}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\it{temp-var-decls\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-popn \\ \index{length-popn}
({\rm{length}}\,({\it{list\/}})\index{length} $\not<$ {\it{n\/}}) $\rightarrow$ ({\rm{length}}\,({\rm{popn}}\,({\it{n\/}}, {\it{list\/}})\index{popn})\index{length} $=$ ({\rm{length}}\,({\it{list\/}})\index{length} $-$ {\it{n\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-popn \\ \index{proper-p-temp-stkp-popn}
\=\+(({\rm{length}}\,({\it{temp-stk\/}})\index{length} $\not<$ {\it{n\/}}) $\wedge$ {\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{popn}}\,({\it{n\/}}, {\it{temp-stk\/}})\index{popn}, {\it{p\/}})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-length-program-body \\ \index{proper-p-prog-segmentp-length-p!rogram-body}
\=\+({\rm{proper-p-prog-segmentp}}\,({\it{prog-segment\/}}, {\it{p\/}})\index{proper-p-prog-segmentp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\it{prog-segment\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-segment\/}}))\index{program-body})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  ret-pc-make-p-call-frame \\ \index{ret-pc-make-p-call-frame}
{\rm{ret-pc}}\,({\rm{make-p-call-frame}}\,({\it{f-vars\/}}, {\it{temp-stk\/}}, {\it{temp-var-dcls\/}}, {\it{ret-pc\/}})\index{make-p-call-frame})\index{ret-pc} $=$ {\it{ret-pc\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  bindings-make-p-call-frame \\ \index{bindings-make-p-call-frame}
\=\+{\rm{bindings}}\,({\rm{make-p-call-frame}}\,({\it{f-vars\/}}, {\it{temp-stk\/}}, {\it{temp-var-dcls\/}}, {\it{ret-pc\/}})\index{make-p-call-frame})\index{bindings} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{pair-formal-vars-with-actuals}}\,({\it{f-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})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cddr-nil-make-p-call-frame \\ \index{cddr-nil-make-p-call-frame}
{\rm{cddr}}\,({\rm{make-p-call-frame}}\,({\it{f-vars\/}}, {\it{temp-stk\/}}, {\it{temp-var-dcls\/}}, {\it{ret-pc\/}})\index{make-p-call-frame}) $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-cdr-make-p-call-frame \\ \index{listp-cdr-make-p-call-frame}
{\rm{listp}}\,({\rm{cdr}}\,({\rm{make-p-call-frame}}\,({\it{f-vars\/}}, {\it{temp-stk\/}}, {\it{temp-var-dcls\/}}, {\it{ret-pc\/}})\index{make-p-call-frame}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-pairlist \\ \index{length-pairlist}
{\rm{length}}\,({\rm{pairlist}}\,({\it{x\/}}, {\it{y\/}}))\index{length} $=$ {\rm{length}}\,({\it{x\/}})\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{temp-var-dcls\/}})\index{pair-temps-with-initial-values})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\it{temp-var-dcls\/}})\index{length}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-proper-p-statep-not-listp-p-ctrl-stk \\ \index{not-proper-p-statep-not-listp-p!-ctrl-stk}
($\neg$ {\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})) $\rightarrow$ ($\neg$ {\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-bad-type-1 \\ \index{proper-p-statep-bad-type-1}
\=\+(\=\+(\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$\not=$$\;\;\;\;${\rm{list}}\,(\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch})\index{type}, \\ 
{\rm{untag}}\,({\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch})\index{untag})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-car \\ \index{p-good-resultp-run-car}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{car}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, \\ 
{\sc{lr-car-offset}}\index{lr-car-offset})\-\index{add-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-cdr \\ \index{p-good-resultp-run-cdr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cdr}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, \\ 
{\sc{lr-cdr-offset}}\index{lr-cdr-offset})\-\index{add-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-listp \\ \index{p-good-resultp-run-listp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{listp}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-nlistp \\ \index{p-good-resultp-run-nlistp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{nlistp}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-truep \\ \index{p-good-resultp-run-truep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{truep}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-bad-type-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-cons \\ \index{p-good-resultp-run-cons}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cons}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\-\index{p}, \\ 
{\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\-\index{add-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top1}, \\ 
{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top})\-, \\ 
{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{deposit-a-list})\-\index{deposit}, \\ 
{\rm{cons}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{cddr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-bad-type \\ \index{p-objectp-bad-type}
({\it{object\/}} $\not=$ {\rm{list}}\,({\rm{type}}\,({\it{object\/}})\index{type}, {\rm{untag}}\,({\it{object\/}})\index{untag})) $\rightarrow$ ($\neg$ {\rm{p-objectp}}\,({\it{object\/}}, {\it{p\/}})\index{p-objectp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-bad-type-2 \\ \index{proper-p-statep-bad-type-2}
\=\+(\=\+(\=\+{\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) \\ 
$\not=$$\;\;\;\;${\rm{list}}\,({\rm{type}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\index{type}, {\rm{untag}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\index{untag}))\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-falsep \\ \index{p-good-resultp-run-falsep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{falsep}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
\=\+{\bf if }{\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) $=$ {\sc{lr-f-addr}}\index{lr-f-addr} \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-bad-type-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-false \\ \index{p-good-resultp-run-false}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{false}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-good-resultp-run-true \\ \index{p-good-resultp-run-true}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{true}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-good-resultp}}\,(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\-\index{p}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\index{p-good-resultp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-car \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-car}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{car}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{add-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-cdr \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-cdr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cdr}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{add-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-cons \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-cons}
\=\+{\bf let }\=\+{\it{fp-addr\/}}{\bf $\;$ be$\;\;$}{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cons}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{cddr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\-\index{add-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-cons-tag}}\index{lr-cons-tag})\-\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\rm{top1}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top1}, \\ 
{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{top})\-, \\ 
{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{deposit-a-list})\-\index{deposit})\-)\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-false \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-false}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{false}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;${\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-falsep \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-falsep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{falsep}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) $=$ {\sc{lr-f-addr}}\index{lr-f-addr} \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-listp \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-listp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{listp}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-nlistp \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-nlistp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{nlistp}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-true \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-true}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{true}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;${\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-p-ctrl-stk-p-data-segment-run-truep \\ \index{p-temp-stk-p-ctrl-stk-p-data-se!gment-run-truep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{truep}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{p-temp-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\-\index{p})\index{p-temp-stk} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag}\- \\ 
{\bf then }{\rm{cons}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})) \\ 
{\bf else }{\rm{cons}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\rm{cdr}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))$\;${\bf  endif}\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\-\index{p})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\-\index{p})\index{p-data-segment} \\ 
$=$$\;\;\;\;${\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-last-funcall-cur-expr \\ \index{get-last-funcall-cur-expr}
\=\+(\=\+{\rm{listp}}\,({\it{expr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{quote}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\rm{lr-p-c-size-list}}\,({\rm{length}}\,({\it{expr\/}})\index{length} $-\;1$, {\it{expr\/}})\index{lr-p-c-size-list}, {\rm{comp-body-1}}\,({\bf{t}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1})\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{definedp}}\,({\rm{car}}\,({\it{expr\/}}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp} \\ 
{\bf then }{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{car}}\,({\it{expr\/}})) \\ 
{\bf else }{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{user-fname}}\,({\rm{car}}\,({\it{expr\/}}))\index{user-fname})$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-listp-p-prog-segment-lr-expr \\ \index{not-listp-p-prog-segment-lr-exp!r}
($\neg$ {\rm{listp}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})) $\rightarrow$ ($\neg$ {\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-offset-return-pc-program-body-assoc-comp-programs \\ \index{get-offset-return-pc-program-bo!dy-assoc-comp-programs}
\=\+(\=\+{\rm{good-posp1}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body})\-\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\rm{offset}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{offset})\index{lr-make-label}, \\ 
{\bf{nil}}, \\ 
\=\+{\bf if }{\rm{definedp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp} \\ 
{\bf then }{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
{\bf else }{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname})$\;${\bf  endif}\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-p-temp-stk-proper-ctrl-stk-p-run-subr \\ \index{listp-p-temp-stk-proper-ctrl-st!k-p-run-subr}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-ctrl-stk} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-p-temp-stk-proper-ctrl-stk-lr-apply-subr \\ \index{listp-p-temp-stk-proper-ctrl-st!k-lr-apply-subr}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cur-expr-nlistp-pos \\ \index{cur-expr-nlistp-pos}
({\it{pos\/}} $\simeq\;${{\bf{nil}}}${}$) $\rightarrow$ ({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr} $=$ {\it{body\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-p-run-subr \\ \index{proper-p-statep-p-run-subr}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{proper-p-statep}\-
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  same-signature-p-run-subr \\ \index{same-signature-p-run-subr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{data-seg\/}} $=$ {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg\/}}, {\rm{p-data-segment}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-data-segment})\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-framep-lr-$>$p-similar-states \\ \index{proper-p-framep-lr-$>$p-similar!-states}
\=\+(\=\+{\rm{proper-p-framep}}\,({\it{frame\/}}, {\it{name\/}}, {\it{p0\/}})\index{proper-p-framep} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p0\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{p1\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p0\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{p1\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p0\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{p1\/}})\index{p-word-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-framep}}\,({\it{frame\/}}, {\it{name\/}}, {\it{p1\/}})\index{proper-p-framep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-untag-p-pc-lr-eval \\ \index{car-untag-p-pc-lr-eval}
{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-pc})\index{untag}) $=$ {\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-cdr-untag-lr-return-pc-lr-p-c-size \\ \index{lessp-cdr-untag-lr-return-pc-lr!-p-c-size}
\=\+(\=\+{\rm{good-posp1}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,({\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{untag}), {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body})\-\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) $\vee$ {\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{untag}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{untag}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-apply-subr-state \\ \index{proper-p-statep-lr-apply-subr-st!ate}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-lr-apply-subr \\ \index{same-signature-lr-apply-subr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{data-seg\/}} $=$ {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg\/}}, {\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-apply-subr \\ \index{p-current-program-lr-apply-subr}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-current-program}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-eval \\ \index{p-current-program-lr-eval}
{\rm{p-current-program}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-framep-lr-apply-subr \\ \index{proper-p-framep-lr-apply-subr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-framep}}\,(\=\+{\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}), \\ 
{\it{name\/}}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-$>$p})\-\index{proper-p-framep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lessp-ctrl-stk-size \\ \index{proper-p-statep-lr-$>$p-lessp-ct!rl-stk-size}
\=\+({\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\wedge$ ({\it{max\/}} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size})) \\ 
$\rightarrow$$\;\;\;\;$(({\it{max\/}} $<$ {\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size}) $=$ {\bf{f}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-lessp-ctrl-stk-size.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-numberp-max-ctrl-stk-size \\ \index{proper-p-statep-lr-$>$p-numberp!-max-ctrl-stk-size}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ ({\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} $\in\;${\bf{N}}${}$)
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-numberp-max-ctrl-stk-size.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-numberp-max-temp-stk-size \\ \index{proper-p-statep-lr-$>$p-numberp!-max-temp-stk-size}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ ({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\in\;${\bf{N}}${}$)
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-numberp-max-temp-stk-size.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-numberp-word-size \\ \index{proper-p-statep-lr-$>$p-numberp!-word-size}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ ({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$)
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-numberp-word-size.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lessp-max-ctrl-stk-size \\ \index{proper-p-statep-lr-$>$p-lessp-m!ax-ctrl-stk-size}
\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\rightarrow$$\;\;\;\;$(({\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size})\index{exp}) $=$ {\bf{t}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-lessp-max-ctrl-stk-size.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lessp-max-temp-stk-size \\ \index{proper-p-statep-lr-$>$p-lessp-m!ax-temp-stk-size}
\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\rightarrow$$\;\;\;\;$(({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $<$ {\rm{exp}}\,({\tt{2}}, {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size})\index{exp}) $=$ {\bf{t}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-lessp-max-temp-stk-size.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-equal-word-size-0 \\ \index{proper-p-statep-lr-$>$p-equal-w!ord-size-0}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ ({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not=$ {\tt{0}})
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-equal-word-size-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-ctrl-stkp-lr-apply-subr \\ \index{proper-p-ctrl-stkp-lr-apply-sub!r}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}), \\ 
{\rm{area-name}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}))\index{ret-pc})\index{area-name}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-$>$p})\-\index{proper-p-ctrl-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-lr-apply-subr \\ \index{proper-p-prog-segmentp-lr-apply!-subr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,(\=\+{\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-$>$p})\-\index{proper-p-prog-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-state-p-p-run-subr-opener-1 \\ \index{proper-p-state-p-p-run-subr-ope!ner-1}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-temp-stk}, {\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-lr-apply-subr \\ \index{proper-p-temp-stkp-lr-apply-sub!r}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-temp-stk}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-$>$p})\-\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-state-p-p-run-subr-opener-2 \\ \index{proper-p-state-p-p-run-subr-ope!ner-2}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-temp-stk})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-length-p-temp-stk-lr-apply-subr \\ \index{not-lessp-length-p-temp-stk-lr-!apply-subr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-temp-stk})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-state-p-p-run-subr-opener-3 \\ \index{proper-p-state-p-p-run-subr-ope!ner-3}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\index{p-data-segment}, \\ 
{\rm{p-run-subr}}\,({\it{subr\/}}, {\it{p\/}})\index{p-run-subr})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-lr-apply-subr \\ \index{proper-p-data-segmentp-lr-apply!-subr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-$>$p})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-set-pos \\ \index{lr-programs-properp-lr-set-pos}
\=\+{\rm{lr-programs-properp}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{table\/}})\index{lr-programs-properp} \\ 
$=$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-apply-subr \\ \index{proper-p-statep-lr-apply-subr}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-apply-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-apply-subr})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-untag-lr-p-pc-lr-funcall \\ \index{cdr-untag-lr-p-pc-lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{untag}}\,({\rm{lr-p-pc}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-p-pc})\index{untag}) $=$ {\tt{0}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-p-ctrl-stk-lr-funcall \\ \index{listp-p-ctrl-stk-lr-funcall}
{\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}) $\rightarrow$ {\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-framep-top-p-ctrl-stk-lr-funcall \\ \index{proper-p-framep-top-p-ctrl-stk-!lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk}))) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk})) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk}))\index{ret-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc}, {\tt{1}})\index{add-addr})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-untag-p-pc-lr-funcall \\ \index{car-untag-p-pc-lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{untag}}\,({\rm{p-pc}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-pc})\index{untag}) \\ 
$=$$\;\;\;\;${\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  area-name-p-pc-lr-funcall \\ \index{area-name-p-pc-lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-pc})\index{area-name} $=$ {\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-bindings-top-p-ctrl-stk-lr-funcall \\ \index{strip-cars-bindings-top-p-ctrl-!stk-lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  formal-vars-assoc-comp-programs-lr-programs-properp \\ \index{formal-vars-assoc-comp-programs!-lr-programs-properp}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{definedp} $\wedge$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}))\index{formal-vars} \\ 
$=$$\;\;\;\;${\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{formal-vars})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  temp-var-dcls-assoc-comp-programs-lr-programs-properp \\ \index{temp-var-dcls-assoc-comp-progra!ms-lr-programs-properp}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{definedp} $\wedge$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}))\index{temp-var-dcls} \\ 
$=$$\;\;\;\;${\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{temp-var-dcls})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-comp-programs-definedp-lr-programs-properp \\ \index{definedp-comp-programs-definedp!-lr-programs-properp}
\=\+({\rm{definedp}}\,({\it{name\/}}, {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{definedp} $\wedge$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-lr-funcall-prog-segment \\ \index{definedp-lr-funcall-prog-segment}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, {\it{progs\/}})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pop-p-ctrl-stk-lr-funcall \\ \index{pop-p-ctrl-stk-lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk}) $=$ {\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-lr-funcall \\ \index{proper-p-alistp-lr-funcall}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,(\=\+{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment})\index{comp-programs}, \\ 
{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\-\index{proper-p-prog-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, {\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,(\=\+{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk}))\index{bindings}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-$>$p})\-\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-ctrl-stkp-lr-funcall \\ \index{proper-p-ctrl-stkp-lr-funcall}
\=\+(\=\+{\rm{proper-p-ctrl-stkp}}\,(\=\+{\rm{cdr}}\,({\it{ctrl-stk\/}}), \\ 
{\rm{area-name}}\,({\rm{ret-pc}}\,({\rm{car}}\,({\it{ctrl-stk\/}}))\index{ret-pc})\index{area-name}, \\ 
{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\-\index{proper-p-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-framep}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top}, {\it{name\/}}, {\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-framep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{name\/}}, {\rm{lr-$>$p}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-$>$p})\index{proper-p-ctrl-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-p-max-ctrl-stk-size-lr-funcall \\ \index{not-lessp-p-max-ctrl-stk-size-l!r-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  offset-p-pc-lr-funcall \\ \index{offset-p-pc-lr-funcall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{offset}}\,({\rm{p-pc}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-pc})\index{offset} $=$ {\bf{nil}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-t-lr-funcall-p-psw-run \\ \index{lr-eval-t-lr-funcall-p-psw-run}
\=\+({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-lr-funcall \\ \index{proper-p-temp-stkp-lr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, {\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-temp-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-stkp}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-temp-stk}, \\ 
{\rm{lr-$>$p}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-$>$p})\-\index{proper-p-temp-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-nlistp \\ \index{popn-nlistp}
($\neg$ {\rm{listp}}\,({\it{x\/}})) $\rightarrow$ ($\neg$ {\rm{listp}}\,({\rm{popn}}\,({\it{n\/}}, {\it{x\/}})\index{popn}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-popn-lessp-fact \\ \index{length-popn-lessp-fact}
{\rm{length}}\,({\it{list\/}})\index{length} $\not<$ {\rm{length}}\,({\rm{popn}}\,({\it{n\/}}, {\it{list\/}})\index{popn})\index{length}
\end{tabbing}


\noindent{\sc Event}:   Disable popn-nlistp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-lessp-p-max-temp-stk-size-lr-funcall \\ \index{not-lessp-p-max-temp-stk-size-l!r-funcall}
\=\+(\=\+({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-temp-stk})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-label-instrs \\ \index{listp-label-instrs}
{\rm{listp}}\,({\rm{label-instrs}}\,({\it{list\/}}, {\it{n\/}})\index{label-instrs}) $=$ {\rm{listp}}\,({\it{list\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-comp-body \\ \index{listp-comp-body}
{\rm{listp}}\,({\rm{comp-body}}\,({\it{body\/}})\index{comp-body})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-offset-lr-return-pc-lr-p-c-size-good-posp \\ \index{lessp-offset-lr-return-pc-lr-p-!c-size-good-posp}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) $\vee$ {\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+($1\;+$ {\rm{offset}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{offset}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-funcall \\ \index{proper-p-statep-lr-funcall}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-funcall}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\-\index{lr-funcall})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-set-expr-lr-pop-cstk \\ \index{proper-p-statep-lr-set-expr-lr-p!op-cstk}
\=\+{\bf let }\=\+{\it{l2\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{definedp}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l2\/}})\index{p-ctrl-stk}) $=$ {\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}) $=$ {\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}))\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l2\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l2\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\it{l2\/}})\index{p-data-segment})\index{same-signature} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-set-expr}}\,({\rm{lr-pop-cstk}}\,({\it{l2\/}})\index{lr-pop-cstk}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-$>$p})\index{proper-p-statep}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-lr-eval-flag-list-flag-t \\ \index{p-psw-lr-eval-flag-list-flag-t}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-expr}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-set-expr \\ \index{lr-programs-properp-lr-set-expr}
\=\+{\rm{lr-programs-properp}}\,({\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{table\/}})\index{lr-programs-properp} \\ 
$=$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l2\/}}, {\it{table\/}})\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-pop-tstk \\ \index{lr-programs-properp-lr-pop-tstk}
{\rm{lr-programs-properp}}\,({\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk}, {\it{table\/}})\index{lr-programs-properp} $=$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-funcall \\ \index{lr-programs-properp-lr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-programs-properp}}\,(\=\+{\rm{lr-funcall}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-funcall}, \\ 
{\it{table\/}})\-\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lr-set-expr \\ \index{proper-p-statep-lr-$>$p-lr-set-e!xpr}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l2\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l1\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l2\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l1\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l1\/}})\index{p-ctrl-stk}) $=$ {\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l2\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l1\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l2\/}})\index{p-ctrl-stk}))\index{bindings}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l1\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l2\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{l1\/}})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l2\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l1\/}})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{l2\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-if-ok \\ \index{lr-programs-properp-lr-if-ok}
{\rm{lr-programs-properp}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok}, {\it{table\/}})\index{lr-programs-properp} $=$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-if-ok \\ \index{proper-p-statep-lr-if-ok}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{lr-$>$p})\index{proper-p-statep} $=$ {\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-proper-p-statep-lr-$>$p \\ \index{lr-eval-preserves-proper-p-statep!-lr-$>$p}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}) $=$ {\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;$(({\it{flag\/}} $=$ {\tt{'}}{\tt{list}}) $\vee$ {\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-eval \\ \index{lr-params-lr-eval}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-eval \\ \index{lr-temps-lr-eval}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

\begin{verbatim};; Later LR-FREE-LIST-NODES will filter out those nodes that are
;; part of for example pack's or user-defined types that are larger than one
;; node (i.e. have more than two accessors).
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-free-list-nodes} \\  
\=\+{\rm{lr-free-list-nodes}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\sc{lr-node-size}}\index{lr-node-size}$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }\=\+{\bf let }\=\+{\it{sub-addr\/}}{\bf $\;$ be$\;\;$}{\rm{sub-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{sub-addr}\- \\ 
{\bf in} \\ 
\=\+{\bf if }\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{sub-addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{addr}}\- \\ 
{\bf then }{\rm{cons}}\,(\=\+{\it{sub-addr\/}}, \\ 
{\rm{lr-free-list-nodes}}\,({\it{sub-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\- \\ 
{\bf else }{\rm{lr-free-list-nodes}}\,({\it{sub-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes}$\;${\bf  endif}\-$\;${\bf  endlet}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-delete-member \\ \index{length-delete-member}
\=\+({\it{addr\/}} $\in$ {\it{node-list\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{delete}}\,({\it{addr\/}}, {\it{node-list\/}})\index{delete})\index{length} $=$ ({\rm{length}}\,({\it{node-list\/}})\index{length} $-\;1$))\-
\end{tabbing}

\begin{verbatim};; Returns smallest address such that the address is too large to be
;; a pointer to a node in DATA-SEG.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-max-node} \\  
\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\rm{length}}\,({\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{value})\index{length} $-\;1$))\-\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-check-free-nodes} \\  
\=\+{\rm{lr-check-free-nodes}}\,({\it{addr\/}}, {\it{node-list\/}}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{addr\/}} $\in$ {\it{node-list\/}} \\ 
{\bf then }{\rm{lr-check-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{delete}}\,({\it{addr\/}}, {\it{node-list\/}})\index{delete}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes} \\ 
{\bf else }{\it{addr\/}} $=$ {\it{max-addr\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-proper-free-listp} \\  
\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-free-nodes}}\,(\=\+{\rm{lr-fetch-fp}}\,({\it{data-seg\/}})\index{lr-fetch-fp}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}}, \\ 
{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\index{lr-check-free-nodes})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-free-listp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-check-f-addrp} \\  
{\rm{lr-check-f-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-f-addrp} $=$ ({\it{addr\/}} $=$ {\sc{lr-f-addr}}\index{lr-f-addr})
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-f-addrp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-check-undef-addrp} \\  
{\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-undef-addrp} $=$ ({\it{addr\/}} $=$ {\sc{lr-undef-addr}}\index{lr-undef-addr})
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-undef-addrp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-check-numberp-addrp} \\  
\=\+{\rm{lr-check-numberp-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-numberp-addrp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\tt{3}})\index{add-addr}, {\it{data-seg\/}})\index{fetch}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{untag} $\in\;${\bf{N}}${}$))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-numberp-addrp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-check-listp-addrp} \\  
\=\+{\rm{lr-check-listp-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-listp-addrp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-good-pointerp}}\,(\=\+{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,(\=\+{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-good-pointerp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-listp-addrp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-proper-heapp-nodep} \\  
\=\+{\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }$\neg$ {\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep}$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{addr}}\- \\ 
{\bf then }{\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ ({\sc{lr-node-size}}\index{lr-node-size} $+$ {\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset}) \\ 
{\bf elseif }\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{nat}}\-$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{type}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-undefined-tag}}\index{lr-undefined-tag} \\ 
{\bf then }{\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-undef-addrp} \\ 
{\bf elseif }{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-false-tag}}\index{lr-false-tag} \\ 
{\bf then }{\rm{lr-check-f-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-f-addrp} \\ 
{\bf elseif }{\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\sc{lr-t-addr}}\index{lr-t-addr})\index{offset}$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-true-tag}}\index{lr-true-tag}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-add1-tag}}\index{lr-add1-tag} \\ 
{\bf then }{\rm{lr-check-numberp-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-numberp-addrp} \\ 
{\bf elseif }{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag} \\ 
{\bf then }{\rm{lr-check-listp-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-listp-addrp} \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-heapp-nodep.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-proper-heapp2} \\  
\=\+{\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\sc{lr-node-size}}\index{lr-node-size}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }\=\+{\bf let }\=\+{\it{sub-addr\/}}{\bf $\;$ be$\;\;$}{\rm{sub-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{sub-addr}\- \\ 
{\bf in} \\ 
\=\+{\rm{lr-proper-heapp-nodep}}\,({\it{sub-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{sub-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2}\-$\;${\bf  endlet}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-valp} \\  
\=\+{\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{tag\/}}{\bf $\;$ be$\;\;$}{\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{listp}}\,({\it{value\/}}) \\ 
{\bf then }\=\+({\it{tag\/}} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{car}}\,({\it{value\/}}), \\ 
{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{cdr}}\,({\it{value\/}}), \\ 
{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-valp}\- \\ 
{\bf elseif }{\rm{truep}}\,({\it{value\/}})$\;\;${\bf then }{\it{tag\/}} $=$ {\sc{lr-true-tag}}\index{lr-true-tag} \\ 
{\bf elseif }{\rm{falsep}}\,({\it{value\/}})$\;\;${\bf then }{\it{tag\/}} $=$ {\sc{lr-false-tag}}\index{lr-false-tag} \\ 
{\bf elseif }{\it{value\/}} $\in\;${\bf{N}}${}$ \\ 
{\bf then }\=\+({\it{tag\/}} $=$ {\sc{lr-add1-tag}}\index{lr-add1-tag}) \\ 
$\wedge$$\;\;\;\;$({\it{value\/}} $=$ {\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\it{addr\/}}, \\ 
{\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset})\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{untag})\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-proper-heapp1} \\  
\=\+{\rm{lr-proper-heapp1}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\bf{t}}, {\sc{lr-t-addr}}\index{lr-t-addr}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\tt{0}}, {\sc{lr-0-addr}}\index{lr-0-addr}, {\it{data-seg\/}})\index{lr-valp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-heapp1.

\addvspace{18pt}

\begin{verbatim};; This is the minimum heap that allows all the predefineds to be defined.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-minimum-heapp} \\  
\=\+{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-t-addr}}\index{lr-t-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-0-addr}}\index{lr-0-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-minimum-heapp.

\addvspace{18pt}

\begin{verbatim};; This needs to be augmented to test that the word-size is big enough to
;; hold piton tags.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-proper-heapp} \\  
\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp1}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-proper-heapp1})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-heapp.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-check-result1} \\  
\=\+{\rm{lr-check-result1}}\,({\it{value\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{value\/}}) \\ 
{\bf then }\=\+{\rm{lr-valp}}\,({\rm{car}}\,({\it{value\/}}), {\rm{top}}\,({\it{temp-stk\/}})\index{top}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,({\rm{cdr}}\,({\it{value\/}}), {\rm{pop}}\,({\it{temp-stk\/}})\index{pop}, {\it{data-seg\/}})\index{lr-check-result1}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-check-result} \\  
\=\+{\rm{lr-check-result}}\,({\it{flag\/}}, {\it{value\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}}, {\it{orig-temp-stk\/}})\index{lr-check-result} \\ 
$=$$\;\;\;\;$(\=\+({\it{orig-temp-stk\/}} $=$ \=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\rm{restn}}\,({\rm{length}}\,({\it{value\/}})\index{length}, {\it{temp-stk\/}})\index{restn} \\ 
{\bf else }{\rm{cdr}}\,({\it{temp-stk\/}})$\;${\bf  endif}\-) \\ 
$\wedge$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\rm{lr-check-result1}}\,({\rm{reverse}}\,({\it{value\/}})\index{reverse}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
{\bf else }{\rm{lr-valp}}\,({\it{value\/}}, {\rm{top}}\,({\it{temp-stk\/}})\index{top}, {\it{data-seg\/}})\index{lr-valp}$\;${\bf  endif}\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-result.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-s-similar-params} \\  
\=\+{\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\it{data-seg\/}})\index{lr-s-similar-params} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{s-params\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{lr-params\/}}) \\ 
{\bf then }\=\+({\rm{caar}}\,({\it{s-params\/}}) $=$ {\rm{caar}}\,({\it{lr-params\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\rm{cdar}}\,({\it{s-params\/}}), {\rm{cdar}}\,({\it{lr-params\/}}), {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\rm{cdr}}\,({\it{s-params\/}}), \\ 
{\rm{cdr}}\,({\it{lr-params\/}}), \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-params}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\- \\ 
{\bf else }{\it{lr-params\/}} $\simeq\;${{\bf{nil}}}${}$$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-s-similar-temps} \\  
\=\+{\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\it{data-seg\/}})\index{lr-s-similar-temps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{s-temps\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{lr-temps\/}}) \\ 
{\bf then }\=\+\=\+{\bf if }{\rm{cdar}}\,({\it{lr-temps\/}}) $=$ {\sc{lr-undef-addr}}\index{lr-undef-addr}$\;\;${\bf then }$\neg$ {\rm{cadar}}\,({\it{s-temps\/}}) \\ 
{\bf else }\=\+{\rm{cadar}}\,({\it{s-temps\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{caddar}}\,({\it{s-temps\/}}), \\ 
{\rm{cdar}}\,({\it{lr-temps\/}}), \\ 
{\it{data-seg\/}})\-\index{lr-valp}\-$\;${\bf  endif}\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\rm{cdr}}\,({\it{s-temps\/}}), \\ 
{\rm{cdr}}\,({\it{lr-temps\/}}), \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-temps}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\- \\ 
{\bf else }{\it{lr-temps\/}} $\simeq\;${{\bf{nil}}}${}$$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-s-similar-const-table} \\  
\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{table\/}}) \\ 
{\bf then }\=\+{\rm{lr-valp}}\,({\rm{caar}}\,({\it{table\/}}), {\rm{cdar}}\,({\it{table\/}}), {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\rm{cdr}}\,({\it{table\/}}), {\it{data-seg\/}})\index{lr-s-similar-const-table}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-s-similar-statesp} \\  
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-s-similar-params}}\,(\=\+{\it{s-params\/}}, \\ 
{\rm{lr-params}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{top}, {\it{l\/}})\index{lr-params}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-s-similar-params} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\it{s-temps\/}}, \\ 
{\rm{lr-temps}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{top}, {\it{l\/}})\index{lr-temps}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-s-similar-temps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-s-similar-const-table})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-s-similar-statesp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-accessors-s-$>$lr1 \\ \index{p-accessors-s-$>$lr1}
\=\+({\rm{p-pc}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-pc} $=$ {\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}))\index{tag}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-ctrl-stk} $=$ {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-temp-stk} $=$ {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-prog-segment}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-prog-segment} \\ 
$=$$\;\;\;\;${\rm{lr-compile-programs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{table\/}})\index{lr-compile-programs})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-data-segment} $=$ {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-psw} $=$ {\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-err-flag-not-run-fact \\ \index{s-eval-err-flag-not-run-fact}
({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $\not=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{clock\/}})\index{s-eval} $=$ {\it{s\/}})
\end{tabbing}

\begin{verbatim};; OFFSET
\end{verbatim}\begin{tabbing}{\sc Theorem}:  offset-tag-cons \\ \index{offset-tag-cons}
{\rm{offset}}\,({\rm{tag}}\,({\it{tag\/}}, {\rm{cons}}\,({\it{area\/}}, {\it{offset\/}}))\index{tag})\index{offset} $=$ {\it{offset\/}}
\end{tabbing}


\begin{verbatim};; ADP-NAME
\end{verbatim}\begin{tabbing}{\sc Theorem}:  adp-name-cons \\ \index{adp-name-cons}
{\rm{adp-name}}\,({\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{adp-name} $=$ {\it{x\/}}
\end{tabbing}

\begin{verbatim};; OFFSET-SUB-ADDR -- see above


;; LR-PROPER-P-AREASP
\end{verbatim}\begin{tabbing}{\sc Theorem}:  definedp-litatom-lr-proper-p-areas \\ \index{definedp-litatom-lr-proper-p-are!as}
\=\+(($\neg$ {\rm{litatom}}\,({\it{name\/}})) $\wedge$ {\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\it{name\/}}, {\it{data-seg\/}})\index{definedp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable definedp-litatom-lr-proper-p-areas.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  member-lr-free-list-nodes-type-addr \\ \index{member-lr-free-list-nodes-type-!addr}
\=\+({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{addr}}) \\ 
$\rightarrow$$\;\;\;\;$({\it{addr\/}} $\not\in$ {\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\-
\end{tabbing}


\noindent{\sc Event}:   Disable member-lr-free-list-nodes-type-addr.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-length-deposit \\ \index{lessp-length-deposit}
\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit}}\,({\it{any\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})))\index{length} \\ 
$\not<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}\-
\end{tabbing}

\begin{verbatim};; GET
\end{verbatim}\begin{tabbing}{\sc Theorem}:  definedp-listp-cdr-assoc-lr-proper-p-areasp \\ \index{definedp-listp-cdr-assoc-lr-prope!r-p-areasp}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{area-name\/}}, {\it{data-seg\/}}))) \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{area-name\/}}, {\it{data-seg\/}})\index{definedp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable definedp-listp-cdr-assoc-lr-proper-p-areasp.

\addvspace{18pt}

\begin{verbatim};; LR-MINIMUM-HEAPP
\end{verbatim}\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-opener-adpp-lr-f-addr \\ \index{lr-minimum-heapp-opener-adpp-lr!-f-addr}
{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} $\rightarrow$ {\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{untag}), {\it{data-seg\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-opener-adpp-lr-t-addr \\ \index{lr-minimum-heapp-opener-adpp-lr!-t-addr}
{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} $\rightarrow$ {\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-t-addr}}\index{lr-t-addr})\index{untag}), {\it{data-seg\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-opener-adpp-lr-0-addr \\ \index{lr-minimum-heapp-opener-adpp-lr!-0-addr}
{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} $\rightarrow$ {\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-0-addr}}\index{lr-0-addr})\index{untag}), {\it{data-seg\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-opener-adpp-lr-undef-addr \\ \index{lr-minimum-heapp-opener-adpp-lr!-undef-addr}
\=\+{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr})\index{untag}), {\it{data-seg\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-sub1-length-heap-name \\ \index{lr-boundary-offsetp-sub1-length!-heap-name}
\=\+{\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $-\;1$)\index{lr-boundary-offsetp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-lr-boundary-offsetp-nodep-plus-node-size-fact-2 \\ \index{lessp-lr-boundary-offsetp-nodep!-plus-node-size-fact-2}
\=\+(\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset1\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset2\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;$((({\it{n\/}} $+$ {\it{offset1\/}}) $<$ {\it{offset2\/}}) $=$ ({\it{offset1\/}} $<$ {\it{offset2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-times-lr-node-size-anything \\ \index{lr-boundary-offsetp-times-lr-no!de-size-anything}
{\rm{lr-boundary-offsetp}}\,({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{x\/}})\index{lr-boundary-offsetp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-difference-not-equal-lessp-fact-2 \\ \index{lr-boundary-offsetp-difference-!not-equal-lessp-fact-2}
\=\+({\rm{lr-boundary-offsetp}}\,({\it{x\/}})\index{lr-boundary-offsetp} $\wedge$ {\rm{lr-boundary-offsetp}}\,({\it{y\/}})\index{lr-boundary-offsetp} $\wedge$ ({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{x\/}} $<$ {\it{y\/}})) \\ 
$\rightarrow$$\;\;\;\;$((({\it{y\/}} $-$ {\sc{lr-node-size}}\index{lr-node-size}) $<$ {\it{x\/}}) $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-opener-2 \\ \index{lr-minimum-heapp-opener-2}
\=\+{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{identity}}\,({\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-minimum-heapp-opener-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-opener-3 \\ \index{lr-minimum-heapp-opener-3}
{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} $\rightarrow$ {\rm{definedp}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})\index{definedp}
\end{tabbing}


\noindent{\sc Event}:   Disable lr-minimum-heapp-opener-3.

\addvspace{18pt}

\begin{verbatim};; LR-PROPER-FREE-LISTP
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{lr-node-listp} \\  
\=\+{\rm{lr-node-listp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-node-listp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }\=\+{\rm{lr-nodep}}\,({\rm{car}}\,({\it{list\/}}), {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\rm{cdr}}\,({\it{list\/}}), {\it{data-seg\/}})\index{lr-node-listp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-node-listp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-adpp-sub-addr \\ \index{adpp-adpp-sub-addr}
{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\rm{untag}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-node-listp-lr-free-list-nodes \\ \index{lr-node-listp-lr-free-list-node!s}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg2\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-node-listp}}\,({\rm{lr-free-list-nodes}}\,({\it{addr\/}}, {\it{data-seg1\/}})\index{lr-free-list-nodes}, {\it{data-seg2\/}})\index{lr-node-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-nodep-member-lr-node-listp \\ \index{lr-nodep-member-lr-node-listp}
\=\+({\rm{lr-node-listp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-node-listp} $\wedge$ ({\it{node\/}} $\in$ {\it{list\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{node\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{node\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{node\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{node\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{node\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{node\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-nodep-member-lr-node-listp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-max-node-lr-nodep-opener-facts \\ \index{lr-max-node-lr-nodep-opener-fact!s}
\=\+({\rm{type}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-adpp-definedp-lr-heap-name \\ \index{lr-max-node-adpp-definedp-lr-he!ap-name}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  offset-lr-max-node \\ \index{offset-lr-max-node}
\=\+{\rm{offset}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{offset} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $-\;1$)\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-max-node.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-opener-1 \\ \index{lr-proper-free-listp-opener-1}
\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}), {\it{data-seg\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-opener-2 \\ \index{lr-proper-free-listp-opener-2}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{type}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{area-name}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{area-name} \\ 
$=$$\;\;\;\;${\sc{lr-heap-name}}\index{lr-heap-name})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-opener-2-adpp-untag-numberp-offset \\ \index{lr-proper-free-listp-opener-2-a!dpp-untag-numberp-offset}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{offset} $\in\;${\bf{N}}${}$)\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-opener-2-adpp-untag-listp \\ \index{lr-proper-free-listp-opener-2-a!dpp-untag-listp}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{untag})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plus-times-fact-1 \\ \index{plus-times-fact-1}
({\it{n\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ((({\it{n\/}} $+$ ({\it{n\/}} $*$ {\it{w\/}})) $<$ ({\it{d\/}} $*$ {\it{n\/}})) $=$ (($1\;+$ {\it{w\/}}) $<$ {\it{d\/}}))
\end{tabbing}


\noindent{\sc Event}:   Disable plus-times-fact-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-difference-fact-1 \\ \index{lessp-difference-fact-1}
\=\+((({\it{x\/}} ${}${\bf{mod}}${}$ {\it{n\/}}) $=$ {\tt{0}}) $\wedge$ (({\it{y\/}} ${}${\bf{mod}}${}$ {\it{n\/}}) $=$ {\tt{0}}) $\wedge$ ({\it{x\/}} $<$ {\it{y\/}}) $\wedge$ ({\it{x\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(({\it{x\/}} $<$ ({\it{y\/}} $-$ {\it{n\/}})) $=$ ({\it{x\/}} $\not=$ ({\it{y\/}} $-$ {\it{n\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-difference-lr-boundary-offsetp-fact-1 \\ \index{lessp-difference-lr-boundary-of!fsetp-fact-1}
\=\+(\=\+({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{y\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\it{y\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{offset\/}} $<$ ({\it{y\/}} $-$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))) \\ 
$=$$\;\;\;\;$({\it{offset\/}} $\not=$ ({\it{y\/}} $-$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-lr-node-on-boundaryp-node-size \\ \index{lessp-lr-node-on-boundaryp-node!-size}
\=\+({\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} $\wedge$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size})) $=$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\tt{0}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-difference-node-size-sub-addr \\ \index{lessp-difference-node-size-sub-!addr}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{max-addr\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ ({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $-$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))) \\ 
$=$$\;\;\;\;$({\rm{sub-addr}}\,({\it{max-addr\/}}, {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\index{sub-addr} $\not=$ {\it{addr\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-nodep-lr-proper-heapp-nodep \\ \index{lr-nodep-lr-proper-heapp-nodep}
\=\+(\=\+{\rm{lr-proper-heapp2}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lessp-difference-node-size-sub-addr.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-area-name-offset-same \\ \index{adpp-area-name-offset-same}
\=\+(\=\+{\rm{listp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr1\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr2\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr2\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\rm{type}}\,({\it{addr2\/}})\index{type}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{addr1\/}} $=$ {\it{addr2\/}}) \\ 
$=$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-tag-cons \\ \index{lr-proper-heapp-nodep-tag-cons}
\=\+(\=\+({\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;$(({\it{offset\/}} $=$ {\sc{lr-car-offset}}\index{lr-car-offset}) $\vee$ ({\it{offset\/}} $=$ {\sc{lr-cdr-offset}}\index{lr-cdr-offset})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{offset\/}})\index{add-addr}, {\it{data-seg\/}})\index{fetch}, {\it{data-seg\/}})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-add-addr-fact-2 \\ \index{adpp-add-addr-fact-2}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr1\/}}, {\it{n\/}})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr2\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr2\/}}, {\it{n\/}})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $<$ {\rm{offset}}\,({\it{addr2\/}})\index{offset})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-lr-nodep-add-addr \\ \index{fetch-lr-nodep-add-addr}
\=\+(($\neg$ {\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}) $\wedge$ {\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr}, {\it{data-seg\/}})\index{fetch} $=$ {\tt{0}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable fetch-lr-nodep-add-addr.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  untag-addr-addr-tag \\ \index{untag-addr-addr-tag}
{\rm{untag}}\,({\rm{add-addr}}\,({\rm{tag}}\,({\it{tag\/}}, {\it{adp\/}})\index{tag}, {\it{n\/}})\index{add-addr})\index{untag} $=$ {\rm{cons}}\,({\rm{car}}\,({\it{adp\/}}), {\rm{cdr}}\,({\it{adp\/}}) $+$ {\it{n\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-lessp-offset-max-heap-node \\ \index{lr-good-pointerp-lessp-offset-m!ax-heap-node}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{offset}}\,({\it{addr\/}})\index{offset} \\ 
$<$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $-\;1$))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-good-pointerp-lessp-offset-max-heap-node.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-opener-1 \\ \index{lr-proper-heapp-opener-1}
\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} $\wedge$ {\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-opener-3 \\ \index{lr-proper-heapp-opener-3}
\=\+(({\it{addr\/}} $=$ {\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}) $\wedge$ {\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-free-ptr-preserves-lr-valp \\ \index{deposit-free-ptr-preserves-lr-v!alp}
\=\+({\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} $\wedge$ {\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-deposit-anything-anywhere \\ \index{lr-proper-p-areasp-deposit-anyt!hing-anywhere}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-proper-p-areasp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-node-listp-delete \\ \index{lr-node-listp-delete}
\=\+{\rm{lr-node-listp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-node-listp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-node-listp}}\,({\rm{delete}}\,({\it{anything\/}}, {\it{list\/}})\index{delete}, {\it{data-seg\/}})\index{lr-node-listp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-node-listp-delete.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-node-listp-deposit-anything-at-all \\ \index{lr-node-listp-deposit-anything-!at-all}
\=\+{\rm{lr-node-listp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-node-listp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-node-listp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-node-listp-deposit-anything-at-all.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  cdr-assoc-member-strip-cdrs \\ \index{cdr-assoc-member-strip-cdrs}
{\rm{definedp}}\,({\it{name\/}}, {\it{list\/}})\index{definedp} $\rightarrow$ ({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{list\/}})) $\in$ {\rm{strip-cdrs}}\,({\it{list\/}})\index{strip-cdrs})
\end{tabbing}


\noindent{\sc Event}:   Disable cdr-assoc-member-strip-cdrs.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-set-error-lr-$>$p \\ \index{lr-set-error-lr-$>$p}
{\rm{lr-$>$p}}\,({\rm{lr-set-error}}\,({\it{p\/}}, {\it{flag\/}})\index{lr-set-error})\index{lr-$>$p} $=$ {\rm{lr-set-error}}\,({\rm{lr-$>$p}}\,({\it{p\/}})\index{lr-$>$p}, {\it{flag\/}})\index{lr-set-error}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-set-expr \\ \index{lr-params-lr-set-expr}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l2\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-set-expr}}\,({\it{l\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-set-expr \\ \index{lr-temps-lr-set-expr}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l2\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-set-expr}}\,({\it{l\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-push-tstk \\ \index{p-current-program-lr-push-tstk}
{\rm{p-current-program}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{any\/}})\index{lr-push-tstk})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-set-temp \\ \index{p-current-program-lr-set-temp}
{\rm{p-current-program}}\,({\rm{lr-set-temp}}\,({\it{l\/}}, {\it{value\/}}, {\it{var\/}})\index{lr-set-temp})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-pop-tstk \\ \index{p-current-program-lr-pop-tstk}
{\rm{p-current-program}}\,({\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-do-temp-fetch \\ \index{p-current-program-lr-do-temp-fet!ch}
{\rm{p-current-program}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-restn \\ \index{strip-cars-restn}
{\rm{strip-cars}}\,({\rm{restn}}\,({\it{n\/}}, {\it{list\/}})\index{restn}) $=$ {\rm{restn}}\,({\it{n\/}}, {\rm{strip-cars}}\,({\it{list\/}}))\index{restn}
\end{tabbing}


\noindent{\sc Event}:   Disable strip-cars-restn.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  strip-cars-firstn \\ \index{strip-cars-firstn}
{\rm{strip-cars}}\,({\rm{firstn}}\,({\it{n\/}}, {\it{list\/}})\index{firstn}) $=$ {\rm{firstn}}\,({\it{n\/}}, {\rm{strip-cars}}\,({\it{list\/}}))\index{firstn}
\end{tabbing}


\noindent{\sc Event}:   Disable strip-cars-firstn.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-pop-tstk \\ \index{lr-params-lr-pop-tstk}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-pop-tstk \\ \index{lr-temps-lr-pop-tstk}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-same-signature \\ \index{lr-minimum-heapp-same-signature}
\=\+{\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-minimum-heapp}}\,({\it{data-seg2\/}})\index{lr-minimum-heapp} $=$ {\rm{lr-minimum-heapp}}\,({\it{data-seg1\/}})\index{lr-minimum-heapp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-minimum-heapp-same-signature.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  put-not-listp \\ \index{put-not-listp}
\=\+(($\neg$ {\rm{listp}}\,({\it{list1\/}})) $\wedge$ ($\neg$ {\rm{listp}}\,({\it{list2\/}}))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{list1\/}})\index{put} $=$ {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\it{list2\/}})\index{put})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-zero \\ \index{put-zero}
{\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\tt{0}})\index{put} $=$ {\rm{put}}\,({\it{val\/}}, {\it{n\/}}, {\bf{nil}})\index{put}
\end{tabbing}


\noindent{\sc Event}:   Disable put-zero.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  put-put \\ \index{put-put}
\=\+(({\it{offset1\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{offset2\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put}}\,({\it{val1\/}}, {\it{offset1\/}}, {\rm{put}}\,({\it{val2\/}}, {\it{offset2\/}}, {\it{list\/}})\index{put})\index{put} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{offset1\/}} $=$ {\it{offset2\/}}$\;\;${\bf then }{\rm{put}}\,({\it{val1\/}}, {\it{offset1\/}}, {\it{list\/}})\index{put} \\ 
{\bf else }{\rm{put}}\,({\it{val2\/}}, {\it{offset2\/}}, {\rm{put}}\,({\it{val1\/}}, {\it{offset1\/}}, {\it{list\/}})\index{put})\index{put}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-implies-lr-proper-p-areasp \\ \index{proper-p-data-segmentp-implies-!lr-proper-p-areasp}
{\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} $\rightarrow$ {\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-implies-lr-proper-p-areasp \\ \index{proper-p-statep-lr-$>$p-implies!-lr-proper-p-areasp}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ {\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp}
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-data-segmentp-implies-lr-proper-p-areasp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-type-fetch-free-ptr \\ \index{lr-proper-free-listp-type-fetch!-free-ptr}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-put-assoc-1 \\ \index{put-assoc-put-assoc-1}
\=\+{\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-assoc-put-assoc-2 \\ \index{put-assoc-put-assoc-2}
\=\+{\rm{put-assoc}}\,({\it{val1\/}}, {\it{name1\/}}, {\rm{put-assoc}}\,({\it{val2\/}}, {\it{name2\/}}, {\it{alist\/}})\index{put-assoc})\index{put-assoc} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{name1\/}} $=$ {\it{name2\/}}$\;\;${\bf then }{\rm{put-assoc}}\,({\it{val1\/}}, {\it{name1\/}}, {\it{alist\/}})\index{put-assoc} \\ 
{\bf else }{\rm{put-assoc}}\,({\it{val2\/}}, {\it{name2\/}}, {\rm{put-assoc}}\,({\it{val1\/}}, {\it{name1\/}}, {\it{alist\/}})\index{put-assoc})\index{put-assoc}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-deposit \\ \index{deposit-deposit}
\=\+(({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit}}\,({\it{value1\/}}, {\it{addr1\/}}, {\rm{deposit}}\,({\it{value2\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit})\index{deposit} \\ 
$=$$\;\;\;\;$\=\+{\bf if }\=\+({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ {\rm{offset}}\,({\it{addr2\/}})\index{offset})\- \\ 
{\bf then }{\rm{deposit}}\,({\it{value1\/}}, {\it{addr1\/}}, {\it{data-seg\/}})\index{deposit} \\ 
{\bf else }{\rm{deposit}}\,(\=\+{\it{value2\/}}, \\ 
{\it{addr2\/}}, \\ 
{\rm{deposit}}\,({\it{value1\/}}, {\it{addr1\/}}, {\it{data-seg\/}})\index{deposit})\-\index{deposit}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-ref-count-move-outward \\ \index{deposit-ref-count-move-outward}
\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit}}\,(\=\+{\it{value1\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{value2\/}}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{deposit} \\ 
$=$$\;\;\;\;${\rm{deposit}}\,(\=\+{\it{value2\/}}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, \\ 
{\rm{deposit}}\,({\it{value1\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\-\index{deposit})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{ihint-2} \\  
\=\+{\rm{ihint-2}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $\not=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{s-pos}}\,({\it{s\/}})\index{s-pos} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}) \\ 
{\bf then }\=\+{\rm{ihint-2}}\,({\bf{t}}, {\it{s\/}}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2} \\ 
$\wedge$$\;\;\;\;${\rm{ihint-2}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-expr}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval}, {\it{s\/}}, {\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\index{s-set-expr}, \\ 
{\rm{lr-eval}}\,({\bf{t}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}})\-\index{ihint-2}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\it{c\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{s-expr}}\,({\it{s\/}})\index{s-expr} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{lrtest\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-$>$lr1}}\,(\=\+{\rm{s-set-pos}}\,(\=\+{\it{s\/}}, \\ 
{\rm{dv}}\,(\=\+{\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, \\ 
{\tt{1}})\-\index{dv})\-\index{s-set-pos}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok}, \\ 
{\it{stest\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{p-psw}}\,({\it{lrtest\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{lrtest\/}})\index{p-temp-stk})\index{top} $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr} \\ 
{\bf then }\=\+{\rm{ihint-2}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}})\-\index{ihint-2} \\ 
$\wedge$$\;\;\;\;${\rm{ihint-2}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\it{stest\/}}, \\ 
{\it{s\/}}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{2}})\index{dv})\-\index{s-set-expr}, \\ 
{\rm{lr-pop-tstk}}\,({\it{lrtest\/}})\index{lr-pop-tstk}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}})\-\index{ihint-2}\- \\ 
{\bf else }\=\+{\rm{ihint-2}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}})\-\index{ihint-2} \\ 
$\wedge$$\;\;\;\;${\rm{ihint-2}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\it{stest\/}}, \\ 
{\it{s\/}}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{3}})\index{dv})\-\index{s-set-expr}, \\ 
{\rm{lr-pop-tstk}}\,({\it{lrtest\/}})\index{lr-pop-tstk}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}})\-\index{ihint-2}\-$\;${\bf  endif}\- \\ 
{\bf else }{\rm{ihint-2}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}})\-\index{ihint-2}$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }{\rm{ihint-2}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2} \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }\=\+{\bf if }{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}) \\ 
{\bf then }\=\+{\bf if }{\rm{lr-eval-temp-setp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-eval-temp-setp}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{ihint-2}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }\=\+{\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{run}}\- \\ 
{\bf then }{\rm{ihint-2}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf then }{\rm{ihint-2}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{s-arg-s\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}, \\ 
{\it{lr-arg-s\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-$>$lr1}}\,(\=\+{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{c\/}})\-\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+{\rm{ihint-2}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{table\/}}, {\it{c\/}})\index{ihint-2} \\ 
$\wedge$$\;\;\;\;${\rm{ihint-2}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,({\it{s-arg-s\/}}, {\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{s-fun-call-state}, \\ 
{\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-arg-s\/}})\index{lr-funcall}, \\ 
{\it{table\/}}, \\ 
{\it{c\/}} $-\;1$)\-\index{ihint-2}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-4} \\  
\=\+{\rm{induct-hint-4}}\,({\it{x\/}}, {\it{temp-stk\/}})\index{induct-hint-4} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{x\/}})$\;\;${\bf then }{\rm{induct-hint-4}}\,({\rm{cdr}}\,({\it{x\/}}), {\rm{cdr}}\,({\it{temp-stk\/}}))\index{induct-hint-4} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-append \\ \index{lr-check-result1-append}
\=\+{\rm{lr-check-result1}}\,({\rm{append}}\,({\it{x\/}}, {\it{y\/}}), {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-check-result1}}\,({\it{x\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,({\it{y\/}}, {\rm{restn}}\,({\rm{length}}\,({\it{x\/}})\index{length}, {\it{temp-stk\/}})\index{restn}, {\it{data-seg\/}})\index{lr-check-result1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-opener-4 \\ \index{lr-proper-heapp-opener-4}
\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-strip-cars \\ \index{length-strip-cars}
{\rm{length}}\,({\rm{strip-cars}}\,({\it{temp-vars\/}}))\index{length} $=$ {\rm{length}}\,({\it{temp-vars\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-lr-compile-programs \\ \index{definedp-lr-compile-programs}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{const-table\/}})\index{lr-compile-programs})\index{definedp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{progs\/}})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-fetch-free-pointer-offset-helper-1 \\ \index{lr-valp-deposit-fetch-free-pointe!r-offset-helper-1}
\=\+(\=\+(\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{free-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\rm{offset}}\,({\it{free-addr\/}})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{free-addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-equal-plus-fact-zero \\ \index{lr-boundary-nodep-equal-plus-fa!ct-zero}
\=\+(\=\+({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr1\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr1\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr1\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr2\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr2\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr2\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr2\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr2\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr1\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ ({\it{m\/}} $+$ {\rm{offset}}\,({\it{addr2\/}})\index{offset})) \\ 
$=$$\;\;\;\;$(({\it{m\/}} $\simeq {\tt{0}}$) $\wedge$ ({\it{addr1\/}} $=$ {\it{addr2\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-equal-plus-fact \\ \index{lr-boundary-nodep-equal-plus-fa!ct}
\=\+(\=\+({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr1\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr1\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr1\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr2\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr2\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr2\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr2\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\it{n\/}} $+$ {\rm{offset}}\,({\it{addr1\/}})\index{offset}) $=$ ({\it{m\/}} $+$ {\rm{offset}}\,({\it{addr2\/}})\index{offset})) \\ 
$=$$\;\;\;\;$(({\rm{fix}}\,({\it{n\/}}) $=$ {\rm{fix}}\,({\it{m\/}})) $\wedge$ ({\it{addr1\/}} $=$ {\it{addr2\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-fetch-free-pointer-offset \\ \index{lr-valp-deposit-fetch-free-pointe!r-offset}
\=\+(\=\+({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{free-addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{free-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\rm{add-addr}}\,({\it{free-addr\/}}, {\it{n\/}})\index{add-addr}, {\it{data-seg\/}})\index{deposit})\index{lr-valp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-valp-deposit-fetch-free-pointer-offset.

\addvspace{18pt}

\noindent{\sc Event}:   Disable lr-valp-deposit-fetch-free-pointer-offset-helper-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-fetch-free-pointer \\ \index{lr-valp-deposit-fetch-free-pointe!r}
\=\+(\=\+({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{free-addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{free-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{free-addr\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-valp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-valp-deposit-fetch-free-pointer.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-equal-x-add1-add1-x \\ \index{not-equal-x-add1-add1-x}
({\it{x\/}} $=$ ($1\;+$ ($1\;+$ {\it{x\/}}))) $=$ {\bf{f}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-equal-x-add1-x \\ \index{not-equal-x-add1-x}
({\it{x\/}} $=$ ($1\;+$ {\it{x\/}})) $=$ {\bf{f}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-valp \\ \index{p-run-subr-preserves-lr-valp}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-offset-sub-addr \\ \index{numberp-offset-sub-addr}
{\rm{offset}}\,({\rm{sub-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{sub-addr})\index{offset} $\in\;${\bf{N}}${}$
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-non-ref-count \\ \index{lr-free-list-nodes-deposit-non-!ref-count}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{add-addr}}\,({\it{addr\/}}, {\it{offset\/}})\index{add-addr}, {\it{data-seg\/}})\index{deposit})\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-nodep-member-lr-node-listp-adpp-untag-listp \\ \index{lr-nodep-member-lr-node-listp-a!dpp-untag-listp}
({\rm{lr-node-listp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-node-listp} $\wedge$ ({\it{node\/}} $\in$ {\it{list\/}})) $\rightarrow$ {\rm{listp}}\,({\rm{untag}}\,({\it{node\/}})\index{untag})
\end{tabbing}


\noindent{\sc Event}:   Disable lr-nodep-member-lr-node-listp-adpp-untag-listp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-nodep-member-lr-node-listp-adpp-untag-numberp-offset \\ \index{lr-nodep-member-lr-node-listp-a!dpp-untag-numberp-offset}
({\rm{lr-node-listp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-node-listp} $\wedge$ ({\it{node\/}} $\in$ {\it{list\/}})) $\rightarrow$ ({\rm{offset}}\,({\it{node\/}})\index{offset} $\in\;${\bf{N}}${}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-nodep-member-lr-node-listp-lr-boundaryp-offsetp \\ \index{lr-nodep-member-lr-node-listp-l!r-boundaryp-offsetp}
\=\+({\rm{lr-node-listp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-node-listp} $\wedge$ ({\it{node\/}} $\in$ {\it{list\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\rm{offset}}\,({\it{node\/}})\index{offset})\index{lr-boundary-offsetp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-deposit-non-ref-count \\ \index{lr-check-free-nodes-deposit-non!-ref-count}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{addr2\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-free-nodes}}\,(\=\+{\it{addr1\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{add-addr}}\,({\it{addr2\/}}, {\it{offset\/}})\index{add-addr}, {\it{data-seg\/}})\index{deposit}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-check-free-nodes}}\,({\it{addr1\/}}, {\it{node-list\/}}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-nodep-member-lr-node-listp-adpp-untag-numberp-offset.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-deposit-other-area \\ \index{adpp-deposit-other-area}
\=\+({\rm{adp-name}}\,({\it{adp\/}})\index{adp-name} $\not=$ {\rm{area-name}}\,({\it{addr\/}})\index{area-name}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{adpp}}\,({\it{adp\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\index{adpp} $=$ {\rm{adpp}}\,({\it{adp\/}}, {\it{data-seg\/}})\index{adpp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable adpp-deposit-other-area.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-deposit \\ \index{length-deposit}
\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})))\index{length} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp} \\ 
{\bf then }\=\+{\bf if }{\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\it{name\/}} \\ 
{\bf then }\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length} \\ 
{\bf then }{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length} \\ 
{\bf else }$1\;+$ {\rm{offset}}\,({\it{addr\/}})\index{offset}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-deposit \\ \index{same-signature-deposit}
\=\+({\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{segment2\/}})\index{adpp} $\wedge$ {\rm{lr-proper-p-areasp}}\,({\it{segment2\/}})\index{lr-proper-p-areasp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{segment1\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{segment2\/}})\index{deposit})\index{same-signature} \\ 
$=$$\;\;\;\;${\rm{same-signature}}\,({\it{segment1\/}}, {\it{segment2\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-same-signature \\ \index{lr-max-node-same-signature}
\=\+{\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-max-node}}\,({\it{data-seg2\/}})\index{lr-max-node} $=$ {\rm{lr-max-node}}\,({\it{data-seg1\/}})\index{lr-max-node})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-max-node-same-signature.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-max-node-deposit \\ \index{lr-max-node-deposit}
\=\+({\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} $\wedge$ {\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-adpp-untag-node-not-definedp-lr-heap-name \\ \index{not-adpp-untag-node-not-definedp!-lr-heap-name}
\=\+($\neg$ {\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub-addr-area-name-offset-same \\ \index{sub-addr-area-name-offset-same}
\=\+(\=\+{\rm{listp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr1\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\rm{type}}\,({\it{addr2\/}})\index{type}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{addr1\/}} $=$ {\rm{sub-addr}}\,({\it{addr2\/}}, {\it{n\/}})\index{sub-addr}) \\ 
$=$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ ({\rm{offset}}\,({\it{addr2\/}})\index{offset} $-$ {\it{n\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-member-greater-offset \\ \index{lr-free-list-nodes-member-greate!r-offset}
\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\rightarrow$$\;\;\;\;$({\it{addr\/}} $\not\in$ {\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-lr-ref-count-offset \\ \index{lr-free-list-nodes-deposit-lr-re!f-count-offset}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{ref-count\/}}, \\ 
{\rm{add-addr}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{delete}}\,({\it{addr\/}}, {\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\index{delete})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-free-list-nodes-member-greater-offset.

\addvspace{18pt}


\noindent{\sc Event}:   Disable not-adpp-untag-node-not-definedp-lr-heap-name.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{no-duplicatesp} \\  
\=\+{\rm{no-duplicatesp}}\,({\it{list\/}})\index{no-duplicatesp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{list\/}}) $\in$ {\rm{cdr}}\,({\it{list\/}})$\;\;${\bf then }{\bf{f}} \\ 
{\bf else }{\rm{no-duplicatesp}}\,({\rm{cdr}}\,({\it{list\/}}))\index{no-duplicatesp}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-member-occurences-0 \\ \index{not-member-occurences-0}
({\it{x\/}} $\not\in$ {\it{z\/}}) $\rightarrow$ ({\rm{occurrences}}\,({\it{x\/}}, {\it{z\/}})\index{occurrences} $=$ {\tt{0}})
\end{tabbing}


\noindent{\sc Event}:   Disable not-member-occurences-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-occurences-1 \\ \index{no-duplicatesp-occurences-1}
({\rm{no-duplicatesp}}\,({\it{list\/}})\index{no-duplicatesp} $\wedge$ ({\it{e\/}} $\in$ {\it{list\/}})) $\rightarrow$ ({\rm{occurrences}}\,({\it{e\/}}, {\it{list\/}})\index{occurrences} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-lr-free-list-nodes \\ \index{no-duplicatesp-lr-free-list-node!s}
{\rm{no-duplicatesp}}\,({\rm{lr-free-list-nodes}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\index{no-duplicatesp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-area-name-offset-same \\ \index{member-area-name-offset-same}
\=\+(\=\+({\it{addr1\/}} $\in$ {\it{node-list\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr1\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr2\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr2\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\rm{type}}\,({\it{addr2\/}})\index{type}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $=$ {\rm{offset}}\,({\it{addr1\/}})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$({\it{addr2\/}} $\in$ {\it{node-list\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-delete-deposit \\ \index{lr-check-free-nodes-delete-depo!sit}
\=\+(\=\+{\rm{lr-check-free-nodes}}\,({\it{addr2\/}}, {\it{node-list\/}}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes} \\ 
$\wedge$$\;\;\;\;$({\it{addr1\/}} $\not\in$ {\it{node-list\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-free-nodes}}\,(\=\+{\it{addr2\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{ref-count\/}}, \\ 
{\rm{add-addr}}\,(\=\+{\it{addr1\/}}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-free-nodes-delete-deposit.

\addvspace{18pt}

\noindent{\sc Event}:   Disable member-area-name-offset-same.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-deposit-free-ptr \\ \index{lr-check-free-nodes-deposit-free!-ptr}
\=\+(\=\+{\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}), {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-free-nodes}}\,(\=\+{\it{addr\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-check-free-nodes}}\,({\it{addr\/}}, {\it{node-list\/}}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-free-ptr \\ \index{lr-free-list-nodes-deposit-free!-ptr}
\=\+({\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} $\wedge$ {\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}), {\it{data-seg\/}})\index{adpp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-ref-count-move-inward-2 \\ \index{deposit-ref-count-move-inward-2}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit}}\,(\=\+{\it{any1\/}}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\rm{deposit}}\,({\it{any2\/}}, {\rm{add-addr}}\,({\it{addr\/}}, {\it{offset\/}})\index{add-addr}, {\it{data-seg\/}})\index{deposit})\-\index{deposit} \\ 
$=$$\;\;\;\;${\rm{deposit}}\,(\=\+{\it{any2\/}}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\it{offset\/}})\index{add-addr}, \\ 
{\rm{deposit}}\,(\=\+{\it{any1\/}}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{deposit})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable deposit-ref-count-move-inward-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-lr-nodep \\ \index{lr-free-list-nodes-deposit-lr-n!odep}
\=\+({\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} $\wedge$ {\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-deposit-lr-nodep \\ \index{lr-check-free-nodes-deposit-lr-!nodep}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{addr2\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-free-nodes}}\,(\=\+{\it{addr1\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-check-free-nodes}}\,({\it{addr1\/}}, {\it{node-list\/}}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-cons \\ \index{same-signature-cons}
\=\+{\rm{same-signature}}\,({\it{data-seg1\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{data-seg2\/}}))\index{same-signature} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{data-seg1\/}}) \\ 
{\bf then }\=\+({\rm{signature}}\,({\rm{car}}\,({\it{data-seg1\/}}))\index{signature} $=$ {\rm{signature}}\,({\it{x\/}})\index{signature}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{cdr}}\,({\it{data-seg1\/}}), {\it{data-seg2\/}})\index{same-signature}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-nil \\ \index{same-signature-nil}
\=\+({\it{data-seg1\/}} $\simeq\;${{\bf{nil}}}${}$) \\ 
$\rightarrow$$\;\;\;\;$({\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature} $=$ ({\it{data-seg2\/}} $\simeq\;${{\bf{nil}}}${}$))\-
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  not-same-signature-deposit-too-large-addr \\ \index{not-same-signature-deposit-too-!large-addr}
\=\+(\=\+{\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg2\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ {\rm{length}}\,({\rm{value}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg1\/}})\index{value})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{same-signature}}\,({\it{data-seg1\/}}, {\rm{deposit}}\,({\it{any\/}}, {\it{addr\/}}, {\it{data-seg2\/}})\index{deposit})\index{same-signature})\-
\end{tabbing}



\noindent{\sc Event}:   Disable same-signature-cons.

\addvspace{18pt}

\noindent{\sc Event}:   Disable same-signature-nil.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-deposit-a-list \\ \index{adpp-deposit-a-list}
{\rm{adpp}}\,({\it{adp\/}}, {\it{data-seg\/}})\index{adpp} $\rightarrow$ {\rm{adpp}}\,({\it{adp\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-deposit-a-list \\ \index{lr-proper-p-areasp-deposit-a-li!st}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{lr-proper-p-areasp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-deposit-a-list \\ \index{definedp-deposit-a-list}
{\rm{definedp}}\,({\it{tag\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{definedp} $=$ {\rm{definedp}}\,({\it{tag\/}}, {\it{data-seg\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  sub1-plus-not-zerop-fact-1 \\ \index{sub1-plus-not-zerop-fact-1}
({\it{x\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ (((({\it{y\/}} $+$ {\it{x\/}}) $-\;1$) $<$ {\it{y\/}}) $=$ {\bf{f}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-adpp-untag-add-addr-adpp-untag \\ \index{not-adpp-untag-add-addr-adpp-unt!ag}
\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$=$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\it{n\/}}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})))\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-same-signature-deposit-a-list-too-large-addr \\ \index{not-same-signature-deposit-a-li!st-too-large-addr}
\=\+(\=\+{\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg2\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ {\rm{length}}\,({\rm{value}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg1\/}})\index{value})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{data-seg1\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg2\/}})\index{deposit-a-list})\index{same-signature} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}})$\;\;${\bf then }{\bf{f}} \\ 
{\bf else }{\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-deposit-a-list \\ \index{same-signature-deposit-a-list}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg2\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg2\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,({\it{data-seg1\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg2\/}})\index{deposit-a-list})\index{same-signature} \\ 
$=$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ ({\rm{length}}\,({\it{list\/}})\index{length} $-\;1$)) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg1\/}})))\index{length})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable not-same-signature-deposit-too-large-addr.

\addvspace{18pt}

\noindent{\sc Event}:   Disable not-same-signature-deposit-a-list-too-large-addr.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  deposit-good-node-preserves-lr-proper-free-listp \\ \index{deposit-good-node-preserves-lr-p!roper-free-listp}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;$((({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) $-\;1$) $-\;1$))\- \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{deposit}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{tag\/}}, {\it{ref-count\/}}, {\it{x\/}}, {\it{y\/}}), \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{deposit})\index{lr-proper-free-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-proper-free-listp \\ \index{p-run-subr-preserves-lr-proper-!free-listp}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\index{lr-proper-free-listp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable same-signature-deposit.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-apply-subr-preserves-lr-proper-free-listp \\ \index{lr-apply-subr-preserves-lr-prope!r-free-listp}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,(\=\+{\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\index{lr-proper-free-listp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-proper-p-statep-lr-$>$p-rewrite \\ \index{lr-eval-preserves-proper-p-statep!-lr-$>$p-rewrite}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-cdr-p-ctrl-stk \\ \index{lr-eval-preserves-cdr-p-ctrl-st!k}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}) $=$ {\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-strip-cars-bindings-car-p-ctrl-stk \\ \index{lr-eval-preserves-strip-cars-bi!ndings-car-p-ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-max-node \\ \index{lr-eval-preserves-lr-max-node}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-adpp \\ \index{lr-eval-preserves-adpp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{adpp} \\ 
$=$$\;\;\;\;${\rm{adpp}}\,({\it{adp\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-length-assoc-data-segment \\ \index{lr-eval-preserves-length-assoc-!data-segment}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-proper-p-statep-lr-$>$p-lr-set-pos \\ \index{lr-eval-preserves-proper-p-statep!-lr-$>$p-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-strip-cars-bindings-car-p-ctrl-stk-lr-set-pos \\ \index{lr-eval-preserves-strip-cars-bi!ndings-car-p-ctrl-stk-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-cdr-p-ctrl-stk-lr-set-pos \\ \index{lr-eval-preserves-cdr-p-ctrl-st!k-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}) \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-adpp-lr-set-pos \\ \index{lr-eval-preserves-adpp-lr-set-p!os}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{adpp} \\ 
$=$$\;\;\;\;${\rm{adpp}}\,({\it{adp\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-max-node-lr-set-pos \\ \index{lr-eval-preserves-lr-max-node-l!r-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-proper-free-listp \\ \index{lr-eval-preserves-lr-proper-free!-listp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-free-listp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-proper-free-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-apply-subr-preserves-lr-valp \\ \index{lr-apply-subr-preserves-lr-valp}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,(\=\+{\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\index{lr-valp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-proper-free-listp-lr-set-pos \\ \index{lr-eval-preserves-lr-proper-free!-listp-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-free-listp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-proper-free-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-valp \\ \index{lr-eval-preserves-lr-valp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-f-addrp-deposit-anything-anywhere \\ \index{lr-check-f-addrp-deposit-anythi!ng-anywhere}
\=\+{\rm{lr-check-f-addrp}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{anywhere\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-check-f-addrp} \\ 
$=$$\;\;\;\;${\rm{lr-check-f-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-f-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-undef-addrp-deposit-anything-anywhere \\ \index{lr-check-undef-addrp-deposit-an!ything-anywhere}
\=\+{\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{anywhere\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-check-undef-addrp} \\ 
$=$$\;\;\;\;${\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-undef-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-listp-addrp-deposit-free-ptr-0 \\ \index{lr-check-listp-addrp-deposit-free!-ptr-0}
\=\+{\rm{lr-check-listp-addrp}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{any\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-check-listp-addrp} \\ 
$=$$\;\;\;\;${\rm{lr-check-listp-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-listp-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-numberp-addrp-deposit-free-ptr-0 \\ \index{lr-check-numberp-addrp-deposit-!free-ptr-0}
\=\+{\rm{lr-check-numberp-addrp}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{any\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-check-numberp-addrp} \\ 
$=$$\;\;\;\;${\rm{lr-check-numberp-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-numberp-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-deposit-free-ptr-0 \\ \index{lr-proper-heapp-nodep-deposit-f!ree-ptr-0}
\=\+{\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{any\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-proper-heapp-nodep} \\ 
$=$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp2-deposit-free-ptr-0 \\ \index{lr-proper-heapp2-deposit-free-pt!r-0}
\=\+{\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\rm{deposit}}\,({\it{any\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-proper-heapp2} \\ 
$=$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-equal-plus-fact-zero \\ \index{lr-boundary-offsetp-equal-plus-!fact-zero}
\=\+(\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset1\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset2\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\it{offset1\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset2\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\it{n\/}} $+$ {\it{offset1\/}}) $=$ {\it{offset2\/}}) \\ 
$=$$\;\;\;\;$(({\it{n\/}} $\simeq {\tt{0}}$) $\wedge$ ({\it{offset1\/}} $=$ {\it{offset2\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-add-addr-deposit-a-list-node \\ \index{fetch-add-addr-deposit-a-list-n!ode}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{max-addr\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{max-addr\/}}, {\it{n\/}})\index{add-addr}, \\ 
{\rm{deposit-a-list}}\,({\rm{list}}\,({\it{x0\/}}, {\it{x1\/}}, {\it{x2\/}}, {\it{x3\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\-\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset} \\ 
{\bf then }{\rm{get}}\,({\it{n\/}}, {\rm{list}}\,({\it{x0\/}}, {\it{x1\/}}, {\it{x2\/}}, {\it{x3\/}}))\index{get} \\ 
{\bf else }{\rm{fetch}}\,({\rm{add-addr}}\,({\it{max-addr\/}}, {\it{n\/}})\index{add-addr}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-deposit-a-list-node \\ \index{fetch-deposit-a-list-node}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{max-addr\/}})\index{area-name}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\it{max-addr\/}}, {\rm{deposit-a-list}}\,({\rm{list}}\,({\it{x0\/}}, {\it{x1\/}}, {\it{x2\/}}, {\it{x3\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}$\;\;${\bf then }{\it{x0\/}} \\ 
{\bf else }{\rm{fetch}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-boundary-offsetp-equal-plus-fact-zero.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-check-f-addrp-deposit-a-list \\ \index{lr-check-f-addrp-deposit-a-list}
\=\+{\rm{lr-check-f-addrp}}\,({\it{addr\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{anywhere\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{lr-check-f-addrp} \\ 
$=$$\;\;\;\;${\rm{lr-check-f-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-f-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-undef-addrp-deposit-a-list \\ \index{lr-check-undef-addrp-deposit-a-!list}
\=\+{\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{anywhere\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{lr-check-undef-addrp} \\ 
$=$$\;\;\;\;${\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-undef-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-numberp-addrp-deposit-a-list-cons \\ \index{lr-check-numberp-addrp-deposit-!a-list-cons}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-numberp-addrp}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-check-numberp-addrp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tag\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-numberp-addrp}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{x0\/}}, {\it{tag\/}}, {\it{x2\/}}, {\it{x3\/}}), \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-check-numberp-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-listp-addrp-deposit-a-list-cons \\ \index{lr-check-listp-addrp-deposit-a-!list-cons}
\=\+(\=\+{\rm{lr-good-pointerp}}\,({\it{good-pointer1\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer2\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tag\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-listp-addrp}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-cons-tag}}\index{lr-cons-tag})\-\index{tag}), \\ 
{\it{tag\/}}, \\ 
{\it{good-pointer1\/}}, \\ 
{\it{good-pointer2\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-check-listp-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-listp-addrp-deposit-a-list-other-place \\ \index{lr-check-listp-addrp-deposit-a-!list-other-place}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-listp-addrp}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-check-listp-addrp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-listp-addrp}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{x0\/}}, {\it{ref-count\/}}, {\it{x2\/}}, {\it{x3\/}}), \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-check-listp-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-deposit-a-list-cons \\ \index{lr-proper-heapp-nodep-deposit-a!-list-cons}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer1\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer2\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tag\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-cons-tag}}\index{lr-cons-tag})\-\index{tag}), \\ 
{\it{tag\/}}, \\ 
{\it{good-pointer1\/}}, \\ 
{\it{good-pointer2\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp2-deposit-a-list-cons \\ \index{lr-proper-heapp2-deposit-a-list!-cons}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer1\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer2\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tag\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}), \\ 
{\it{tag\/}}, \\ 
{\it{good-pointer1\/}}, \\ 
{\it{good-pointer2\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-psw-run-lr-eval \\ \index{not-psw-run-lr-eval}
({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval} $=$ {\it{l\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  program-body-assoc-lr-compile-programs \\ \index{program-body-assoc-lr-compile-p!rograms}
\=\+{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs}))\index{program-body} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{s-body}, \\ 
{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{s-formals})\-\index{lr-make-temp-name-alist}, \\ 
{\it{table\/}})\-\index{lr-compile-body}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-lr-compile-body \\ \index{listp-lr-compile-body}
{\rm{listp}}\,({\rm{lr-compile-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body}) $=$ {\rm{listp}}\,({\it{body\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-lr-compile-body \\ \index{car-lr-compile-body}
\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{car}}\,({\rm{lr-compile-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body}) $=$ {\rm{car}}\,({\it{body\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-expand-list-temps \\ \index{good-posp1-expand-list-temps}
\=\+((({\it{temp\/}} $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\it{temp\/}} $=$ {\sc{s-temp-test}}\index{s-temp-test})) $\wedge$ {\rm{listp}}\,({\it{pos\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{list}}\,({\it{temp\/}}, {\it{body\/}}, {\it{name\/}}))\index{good-posp1} \\ 
$=$$\;\;\;\;$(({\rm{car}}\,({\it{pos\/}}) $=$ {\tt{1}}) $\wedge$ {\rm{good-posp1}}\,({\rm{cdr}}\,({\it{pos\/}}), {\it{body\/}})\index{good-posp1}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-compile-body-list \\ \index{length-lr-compile-body-list}
\=\+{\rm{length}}\,({\rm{lr-compile-body}}\,({\tt{'}}{\tt{list}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\it{body\/}})\index{length}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-lr-compile-body-list \\ \index{get-lr-compile-body-list}
\=\+{\rm{get}}\,({\it{n\/}}, {\rm{lr-compile-body}}\,({\tt{'}}{\tt{list}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{get} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-lr-compile-body \\ \index{get-lr-compile-body}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{n\/}}, {\rm{lr-compile-body}}\,({\bf{t}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{get} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-compile-body-t \\ \index{length-lr-compile-body-t}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{lr-compile-body}}\,({\bf{t}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\it{body\/}})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-lr-compile-body \\ \index{good-posp1-lr-compile-body}
\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{lr-compile-body}}\,({\bf{t}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{good-posp1} \\ 
$=$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cur-expr-lr-compile-body-t \\ \index{cur-expr-lr-compile-body-t}
\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cur-expr}}\,({\it{pos\/}}, {\rm{lr-compile-body}}\,({\bf{t}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{cur-expr} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-singleton-list-opener \\ \index{lr-check-result1-singleton-list!-opener}
\=\+{\rm{lr-check-result1}}\,({\rm{list}}\,({\it{x\/}}), {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;${\rm{lr-valp}}\,({\it{x\/}}, {\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-stkp-plistp-p-temp-stk \\ \index{proper-p-temp-stkp-plistp-p-temp!-stk}
{\rm{proper-p-temp-stkp}}\,({\it{temp-stk\/}}, {\it{p\/}})\index{proper-p-temp-stkp} $\rightarrow$ {\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-plistp-p-temp-stk \\ \index{proper-p-statep-lr-$>$p-plistp-p!-temp-stk}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ {\rm{plistp}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-not-0-p-temp-stk \\ \index{proper-p-statep-lr-$>$p-not-0-p!-temp-stk}
{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} $\rightarrow$ ({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk} $\not=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-lastcdr-nil \\ \index{plistp-lastcdr-nil}
{\rm{plistp}}\,({\it{list\/}})\index{plistp} $\rightarrow$ ({\rm{lastcdr}}\,({\it{list\/}})\index{lastcdr} $=$ {\bf{nil}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-valp-lr-set-expr \\ \index{lr-eval-preserves-lr-valp-lr-set!-expr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\rm{p-data-segment}}\,({\it{l1\/}})\index{p-data-segment})))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-proper-p-statep-lr-$>$p-lr-set-expr \\ \index{lr-eval-preserves-proper-p-statep!-lr-$>$p-lr-set-expr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l1\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l1\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l1\/}})\index{p-ctrl-stk}) $=$ {\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l1\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l1\/}})\index{p-word-size} $=$ {\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{l1\/}})\index{p-max-ctrl-stk-size} $=$ {\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l1\/}})\index{p-max-temp-stk-size} $=$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-flag-list-cons-value \\ \index{lr-check-result-flag-list-cons-v!alue}
\=\+{\bf let }\=\+{\it{l2\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-expr}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval}, {\it{l\/}}, {\rm{nx}}\,({\it{pos\/}})\index{nx})\index{lr-set-expr}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\it{value1\/}}, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{value2\/}}, \\ 
{\rm{p-temp-stk}}\,({\it{l2\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l2\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l2\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{temp-stk\/}} $=$ {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cons}}\,({\it{value1\/}}, {\it{value2\/}}), \\ 
{\rm{p-temp-stk}}\,({\it{l2\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l2\/}})\index{p-data-segment}, \\ 
{\it{temp-stk\/}})\-\index{lr-check-result}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-nil \\ \index{lr-check-result-nil}
\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,({\tt{'}}{\tt{list}}, {\bf{nil}}, {\it{temp-stk\/}}, {\it{data-seg\/}}, {\it{temp-stk\/}})\index{lr-check-result}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  litatom-lr-compile-body \\ \index{litatom-lr-compile-body}
{\rm{litatom}}\,({\rm{lr-compile-body}}\,({\bf{t}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body}) $=$ {\rm{litatom}}\,({\it{body\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-push-tstk \\ \index{lr-params-lr-push-tstk}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{anything\/}})\index{lr-push-tstk})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-push-tstk \\ \index{lr-temps-lr-push-tstk}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{anything\/}})\index{lr-push-tstk})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  program-body-p-current-program-s-$>$lr1 \\ \index{program-body-p-current-program-!s-$>$lr1}
\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-current-program})\index{program-body} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body}, \\ 
{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-formals})\-\index{lr-make-temp-name-alist}, \\ 
{\it{table\/}})\-\index{lr-compile-body}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  name-car-lr-compile-programs-progs \\ \index{name-car-lr-compile-programs-pr!ogs}
{\rm{name}}\,({\rm{car}}\,({\rm{lr-compile-programs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{table\/}})\index{lr-compile-programs}))\index{name} $=$ {\rm{caar}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-car-lr-compile-programs-progs \\ \index{car-car-lr-compile-programs-pro!gs}
{\rm{caar}}\,({\rm{lr-compile-programs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{table\/}})\index{lr-compile-programs}) $=$ {\rm{caar}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-good-statep-program-body-car-lr-compile-programs \\ \index{s-good-statep-program-body-car-!lr-compile-programs}
\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{program-body}}\,({\rm{car}}\,({\rm{lr-compile-programs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{table\/}})\index{lr-compile-programs}))\index{program-body} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-body}, \\ 
{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-formals})\-\index{lr-make-temp-name-alist}, \\ 
{\it{table\/}})\-\index{lr-compile-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-lr-compile-body \\ \index{good-posp-lr-compile-body}
\=\+{\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{lr-compile-body}}\,({\bf{t}}, {\it{body\/}}, {\it{temp-name-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{good-posp} \\ 
$=$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\it{body\/}})\index{good-posp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-lr-compile-programs \\ \index{strip-cars-lr-compile-programs}
{\rm{strip-cars}}\,({\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs}) $=$ {\rm{strip-cars}}\,({\it{progs\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-lr-expr-list-s-$>$lr1 \\ \index{listp-lr-expr-list-s-$>$lr1}
\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{listp}}\,({\rm{lr-expr-list}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr-list}) $=$ {\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  formal-vars-lr-compile-programs \\ \index{formal-vars-lr-compile-programs}
\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs}))\index{formal-vars} \\ 
$=$$\;\;\;\;${\rm{s-formals}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{s-formals}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  formal-vars-p-current-program-s-$>$lr1 \\ \index{formal-vars-p-current-program-s!-$>$lr1}
{\rm{formal-vars}}\,({\rm{p-current-program}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-current-program})\index{formal-vars} $=$ {\rm{s-formals}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-formals}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  temp-var-dcls-lr-compile-programs \\ \index{temp-var-dcls-lr-compile-progra!ms}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{progs\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs}))\index{temp-var-dcls} \\ 
$=$$\;\;\;\;${\rm{lr-make-temp-var-dcls}}\,({\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\it{progs\/}})\-)\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\it{progs\/}})\-)\index{s-formals})\-\index{lr-make-temp-name-alist})\index{lr-make-temp-var-dcls})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  temp-var-dcls-assoc-p-current-program-s-$>$lr1 \\ \index{temp-var-dcls-assoc-p-current-p!rogram-s-$>$lr1}
\=\+{\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{temp-var-dcls}}\,({\rm{p-current-program}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-current-program})\index{temp-var-dcls} \\ 
$=$$\;\;\;\;${\rm{lr-make-temp-var-dcls}}\,({\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-formals})\-\index{lr-make-temp-name-alist})\index{lr-make-temp-var-dcls})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-set-expr-s-$>$lr1-s-set-expr \\ \index{lr-set-expr-s-$>$lr1-s-set-expr}
\=\+{\rm{s-$>$lr1}}\,(\=\+{\rm{s-set-expr}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval}, {\it{s\/}}, {\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\index{s-set-expr}, \\ 
{\rm{lr-eval}}\,({\bf{t}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{table\/}})\-\index{s-$>$lr1} \\ 
$=$$\;\;\;\;${\rm{lr-set-error}}\,(\=\+{\rm{lr-set-expr}}\,(\=\+{\rm{lr-eval}}\,({\bf{t}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\-\index{lr-set-expr}, \\ 
{\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag})\-\index{lr-set-error}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-current-program-lr-set-error \\ \index{p-current-program-lr-set-error}
{\rm{p-current-program}}\,({\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag\/}})\index{lr-set-error})\index{p-current-program} $=$ {\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-set-error-lr-set-error \\ \index{lr-set-error-lr-set-error}
\=\+{\rm{lr-set-error}}\,({\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag1\/}})\index{lr-set-error}, {\it{err-flag2\/}})\index{lr-set-error} \\ 
$=$$\;\;\;\;${\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag2\/}})\index{lr-set-error}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-set-error \\ \index{proper-p-statep-lr-set-error}
{\rm{proper-p-statep}}\,({\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag\/}})\index{lr-set-error})\index{proper-p-statep} $=$ {\rm{proper-p-statep}}\,({\it{l\/}})\index{proper-p-statep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-set-error \\ \index{lr-params-lr-set-error}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag\/}})\index{lr-set-error})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-set-error \\ \index{lr-temps-lr-set-error}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag\/}})\index{lr-set-error})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-set-error \\ \index{lr-s-similar-statesp-lr-set-err!or}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{params\/}}, {\it{temps\/}}, {\rm{lr-set-error}}\,({\it{l\/}}, {\it{err-flag\/}})\index{lr-set-error}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{params\/}}, {\it{temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-set-expr \\ \index{lr-s-similar-statesp-lr-set-exp!r}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l2\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-s-similar-statesp}}\,({\it{params\/}}, {\it{temps\/}}, {\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{params\/}}, {\it{temps\/}}, {\it{l1\/}}, {\it{table\/}})\index{lr-s-similar-statesp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-zerop-clock \\ \index{lr-eval-zerop-clock}
\=\+(({\it{c\/}} $\simeq {\tt{0}}$) $\wedge$ ({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) $\wedge$ ({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval} $=$ {\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{out-of-time}})\index{lr-set-error})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  litatom-lr-expr-s-$>$lr1 \\ \index{litatom-lr-expr-s-$>$lr1}
\=\+({\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} $\wedge$ {\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr} $=$ {\rm{s-expr}}\,({\it{s\/}})\index{s-expr})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-litatom-opener \\ \index{lr-eval-litatom-opener}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{local-var-value}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}, {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{local-var-value})\-\index{lr-push-tstk})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-push-tstk-litatom \\ \index{lr-s-similar-statesp-lr-push-tst!k-litatom}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{value\/}})\index{lr-push-tstk}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-assoc-definedp \\ \index{lr-s-similar-params-assoc-define!dp}
\=\+(\=\+{\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\it{data-seg\/}})\index{lr-s-similar-params} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{lr-params\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{s-params\/}})), {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{lr-params\/}})), {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-strip-cars-bindings-ctrl-stk \\ \index{proper-p-statep-lr-$>$p-strip-c!ars-bindings-ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-)\index{temp-var-dcls}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-11} \\  
\=\+{\rm{induct-hint-11}}\,({\it{v\/}}, {\it{y\/}})\index{induct-hint-11} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{v\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{y\/}})$\;\;${\bf then }{\rm{induct-hint-11}}\,({\rm{cdr}}\,({\it{v\/}}), {\rm{cdr}}\,({\it{y\/}}))\index{induct-hint-11} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-append-same-length-fact \\ \index{equal-append-same-length-fact}
\=\+({\rm{length}}\,({\it{v\/}})\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{append}}\,({\rm{strip-cars}}\,({\it{v\/}}), {\it{w\/}}) $=$ {\rm{append}}\,({\it{y\/}}, {\it{z\/}})) \\ 
$=$$\;\;\;\;$(({\rm{strip-cars}}\,({\it{v\/}}) $=$ {\rm{plist}}\,({\it{y\/}})\index{plist}) $\wedge$ ({\it{w\/}} $=$ {\it{z\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-strip-cars-append-member-x \\ \index{definedp-strip-cars-append-membe!r-x}
\=\+({\rm{strip-cars}}\,({\it{x\/}}) $=$ {\rm{append}}\,({\it{y\/}}, {\it{z\/}})) \\ 
$\rightarrow$$\;\;\;\;$(({\it{e\/}} $\in$ {\it{y\/}}) $=$ {\rm{definedp}}\,({\it{e\/}}, {\rm{firstn}}\,({\rm{length}}\,({\it{y\/}})\index{length}, {\it{x\/}})\index{firstn})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-member-formals-definedp-bindings \\ \index{proper-p-statep-lr-$>$p-member-!formals-definedp-bindings}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in$ {\rm{s-formals}}\,({\rm{assoc}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-formals}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{firstn}}\,(\=\+{\rm{length}}\,({\rm{s-formals}}\,({\rm{assoc}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-formals})\index{length}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-\index{firstn})\-\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-addr-0 \\ \index{lr-valp-addr-0}
$\neg$ {\rm{lr-valp}}\,({\it{addr\/}}, {\tt{0}}, {\it{data-seg\/}})\index{lr-valp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-cdr-assoc-firstn-cdr-assoc \\ \index{lr-valp-cdr-assoc-firstn-cdr-as!soc}
\=\+{\rm{lr-valp}}\,({\it{addr\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{firstn}}\,({\it{n\/}}, {\it{list\/}})\index{firstn})), {\it{data-seg\/}})\index{lr-valp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{addr\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{list\/}})), {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-s-similar-params-opener \\ \index{lr-s-similar-statesp-lr-s-simil!ar-params-opener}
\=\+(\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;$({\it{frame\/}} $=$ {\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;$({\it{data-seg\/}} $=$ {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}, {\it{data-seg\/}})\index{lr-s-similar-params}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-s-similar-temps-opener \\ \index{lr-s-similar-statesp-lr-s-simil!ar-temps-opener}
\=\+(\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;$({\it{frame\/}} $=$ {\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})) \\ 
$\wedge$$\;\;\;\;$({\it{data-seg\/}} $=$ {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}, {\it{data-seg\/}})\index{lr-s-similar-temps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-lr-make-temp-var-dcls \\ \index{strip-cars-lr-make-temp-var-dcl!s}
{\rm{strip-cars}}\,({\rm{lr-make-temp-var-dcls}}\,({\it{temp-alist\/}})\index{lr-make-temp-var-dcls}) $=$ {\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-lr-push-tstk \\ \index{lr-check-result-lr-push-tstk}
\=\+{\bf let }\=\+{\it{value\/}}{\bf $\;$ be$\;\;$}{\rm{cdr}}\,({\rm{assoc}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}))\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{value\/}})\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})), \\ 
{\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{value\/}})\-\index{lr-push-tstk})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-$>$lr1-s-set-pos-lr-set-pos \\ \index{s-$>$lr1-s-set-pos-lr-set-pos}
{\rm{s-$>$lr1}}\,({\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1} $=$ {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-set-pos \\ \index{lr-params-lr-set-pos}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-set-pos \\ \index{lr-temps-lr-set-pos}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-s-set-pos \\ \index{lr-s-similar-statesp-lr-s-set-p!os}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-set-expr-s-$>$lr1-s-set-expr-lr-pop-tstk \\ \index{lr-set-expr-s-$>$lr1-s-set-expr!-lr-pop-tstk}
\=\+{\rm{s-$>$lr1}}\,(\=\+{\rm{s-set-expr}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval}, {\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\it{n\/}})\index{dv})\index{s-set-expr}, \\ 
{\rm{lr-pop-tstk}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok})\index{lr-pop-tstk}, \\ 
{\it{table\/}})\-\index{s-$>$lr1} \\ 
$=$$\;\;\;\;${\rm{lr-set-error}}\,(\=\+{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok})\index{lr-pop-tstk}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\it{n\/}})\index{dv})\-\index{lr-set-expr}, \\ 
{\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag})\-\index{lr-set-error}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-pop-tstk \\ \index{lr-s-similar-statesp-lr-pop-tst!k}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-lr-expr-s-$>$lr1 \\ \index{listp-lr-expr-s-$>$lr1}
\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\rightarrow$$\;\;\;\;$({\rm{listp}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}) $=$ {\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  litatom-lr-expr-s-$>$lr1-s-expr \\ \index{litatom-lr-expr-s-$>$lr1-s-expr}
\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\rightarrow$$\;\;\;\;$({\rm{litatom}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}) $=$ {\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-lr-expr-s-$>$lr1 \\ \index{car-lr-expr-s-$>$lr1}
\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\rightarrow$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}) $=$ {\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-p-psw-lr-eval-run-lr-eval-lr-set-error \\ \index{equal-p-psw-lr-eval-run-lr-eval!-lr-set-error}
\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-error}}\,({\it{l\/}}, {\tt{'}}{\tt{run}})\index{lr-set-error}, {\it{c\/}})\index{lr-eval} $=$ {\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-good-pointerp-lr-proper-heapp-nodep \\ \index{lr-proper-heapp-lr-good-pointerp!-lr-proper-heapp-nodep}
\=\+(\=\+{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-f-not-lr-f-addr \\ \index{lr-check-result-f-not-lr-f-addr}
\=\+(\=\+({\rm{car}}\,({\it{temp-stk\/}}) $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{temp-stk\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-check-result}}\,({\bf{t}}, {\bf{f}}, {\it{temp-stk\/}}, {\it{data-seg\/}}, {\it{orig-temp-stk\/}})\index{lr-check-result} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-t-chain \\ \index{lr-check-result-t-chain}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,({\bf{t}}, {\it{ans\/}}, {\it{temp-stk2\/}}, {\it{data-seg2\/}}, {\rm{cdr}}\,({\it{temp-stk1\/}}))\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,({\bf{t}}, {\it{anything\/}}, {\it{temp-stk1\/}}, {\it{data-seg1\/}}, {\it{temp-stk0\/}})\index{lr-check-result})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,({\it{flag\/}}, {\it{ans\/}}, {\it{temp-stk2\/}}, {\it{data-seg2\/}}, {\it{temp-stk0\/}})\index{lr-check-result}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-not-f-lr-f-addr \\ \index{lr-check-result-not-f-lr-f-addr}
\=\+(\=\+({\rm{car}}\,({\it{temp-stk\/}}) $=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\it{ans\/}} $\not=$ {\bf{f}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-check-result}}\,({\bf{t}}, {\it{ans\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}}, {\it{orig-temp-stk\/}})\index{lr-check-result} $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-leaves-listp-p-temp-stk \\ \index{lr-eval-leaves-listp-p-temp-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-if-opener-1 \\ \index{lr-eval-s-$>$lr1-if-opener-1}
\=\+{\bf let }\=\+{\it{lr-test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-test\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{lr-test\/}})\index{p-temp-stk})\index{top} $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{lr-test\/}})\index{lr-pop-tstk}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{2}})\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-if-opener-2 \\ \index{lr-eval-s-$>$lr1-if-opener-2}
\=\+{\bf let }\=\+{\it{lr-test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-test\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{top}}\,({\rm{p-temp-stk}}\,({\it{lr-test\/}})\index{p-temp-stk})\index{top} $=$ {\sc{lr-f-addr}}\index{lr-f-addr}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{lr-test\/}})\index{lr-pop-tstk}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{3}})\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-if-opener-3 \\ \index{lr-eval-s-$>$lr1-if-opener-3}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok})\index{p-psw} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-temp-eval-opener \\ \index{lr-eval-s-$>$lr1-temp-eval-opene!r}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-set-temp}}\,(\=\+{\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}, \\ 
{\rm{top}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk})\index{top}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\-\index{lr-set-temp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-temp-test-opener \\ \index{lr-eval-s-$>$lr1-temp-test-opene!r}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}) \\ 
{\bf then }\=\+{\bf if }{\rm{lr-eval-temp-setp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-eval-temp-setp} \\ 
{\bf then }{\rm{lr-do-temp-fetch}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-do-temp-fetch} \\ 
{\bf else }{\rm{lr-set-temp}}\,(\=\+{\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}, \\ 
{\rm{top}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\rm{dv}}\,(\=\+{\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, \\ 
{\tt{1}})\-\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk})\index{top}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\-\index{lr-set-temp}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{lr-set-error}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\tt{'}}{\tt{lr-temp-setp-temp-stack-overflow}})\-\index{lr-set-error}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-temp-fetch-opener \\ \index{lr-eval-s-$>$lr1-temp-fetch-ope!ner}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-do-temp-fetch}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-do-temp-fetch})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-quote-opener \\ \index{lr-eval-s-$>$lr1-quote-opener}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\-\index{lr-push-tstk})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-set-temp \\ \index{lr-params-lr-set-temp}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-set-temp}}\,({\it{l\/}}, {\it{value\/}}, {\it{var-name\/}})\index{lr-set-temp})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-set-temp \\ \index{lr-temps-lr-set-temp}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-set-temp}}\,({\it{l\/}}, {\it{value\/}}, {\it{var-name\/}})\index{lr-set-temp})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  strip-cars-nil-fact \\ \index{strip-cars-nil-fact}
({\bf{nil}} $=$ {\rm{strip-cars}}\,({\it{y\/}})) $=$ ($\neg$ {\rm{listp}}\,({\it{y\/}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-13} \\  
\=\+{\rm{induct-hint-13}}\,({\it{e\/}}, {\it{x\/}}, {\it{y\/}})\index{induct-hint-13} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{x\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{y\/}}) \\ 
{\bf then }\=\+{\bf if }{\it{e\/}} $=$ {\rm{caar}}\,({\it{x\/}})$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-13}}\,({\it{e\/}}, {\rm{cdr}}\,({\it{x\/}}), {\rm{cdr}}\,({\it{y\/}}))\index{induct-hint-13}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-equal-definedp-equal \\ \index{strip-cars-equal-definedp-equal}
({\rm{strip-cars}}\,({\it{x\/}}) $=$ {\rm{strip-cars}}\,({\it{y\/}})) $\rightarrow$ ({\rm{definedp}}\,({\it{e\/}}, {\it{x\/}})\index{definedp} $=$ {\rm{definedp}}\,({\it{e\/}}, {\it{y\/}})\index{definedp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-definedp-firstn-bindings-car-p-ctrl-stk \\ \index{lr-eval-preserves-definedp-first!n-bindings-car-p-ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{definedp}}\,({\it{x\/}}, {\rm{firstn}}\,({\it{n\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{bindings})\index{firstn})\index{definedp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{x\/}}, {\rm{firstn}}\,({\it{n\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\index{firstn})\index{definedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{disjointp} \\  
\=\+{\rm{disjointp}}\,({\it{list1\/}}, {\it{list2\/}})\index{disjointp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list1\/}}) \\ 
{\bf then }({\rm{car}}\,({\it{list1\/}}) $\not\in$ {\it{list2\/}}) $\wedge$ {\rm{disjointp}}\,({\rm{cdr}}\,({\it{list1\/}}), {\it{list2\/}})\index{disjointp} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-disjointp-non-member-1 \\ \index{member-disjointp-non-member-1}
({\rm{disjointp}}\,({\it{x\/}}, {\it{y\/}})\index{disjointp} $\wedge$ ({\it{e\/}} $\in$ {\it{x\/}})) $\rightarrow$ ({\it{e\/}} $\not\in$ {\it{y\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-definedp-fn-bindings-car-ctrl-stk-set-pos \\ \index{lr-eval-preserves-definedp-fn-bi!ndings-car-ctrl-stk-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{definedp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{firstn}}\,(\=\+{\it{n\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-ctrl-stk}))\index{bindings})\-\index{firstn})\-\index{definedp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{x\/}}, {\rm{firstn}}\,({\it{n\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\index{firstn})\index{definedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-p-frame-not-definedp-put-assoc-anything \\ \index{lr-params-p-frame-not-definedp-p!ut-assoc-anything}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{disjointp}}\,(\=\+{\rm{formal-vars}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{temp-var-dcls}))\-\index{disjointp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-params}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\it{anything\/}}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-ctrl-stk}))\index{bindings})\-\index{put-assoc}, \\ 
{\it{ret-pc\/}})\-\index{p-frame}, \\ 
{\it{l\/}})\-\index{lr-params} \\ 
$=$$\;\;\;\;${\rm{lr-params}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}), {\it{l\/}})\index{lr-params})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-14} \\  
\=\+{\rm{induct-hint-14}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\it{temp-alist\/}})\index{induct-hint-14} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{s-temps\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{lr-temps\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{temp-alist\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{cdar}}\,({\it{lr-temps\/}}) $=$ {\sc{lr-undef-addr}}\index{lr-undef-addr} \\ 
{\bf then }{\rm{induct-hint-14}}\,(\=\+{\rm{cdr}}\,({\it{s-temps\/}}), \\ 
{\rm{cdr}}\,({\it{lr-temps\/}}), \\ 
{\rm{cdr}}\,({\it{temp-alist\/}}))\-\index{induct-hint-14} \\ 
{\bf else }{\rm{induct-hint-14}}\,(\=\+{\rm{cdr}}\,({\it{s-temps\/}}), \\ 
{\rm{cdr}}\,({\it{lr-temps\/}}), \\ 
{\rm{cdr}}\,({\it{temp-alist\/}}))\-\index{induct-hint-14}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-opener-1 \\ \index{put-assoc-opener-1}
\=\+(({\it{name\/}} $\not=$ {\rm{caar}}\,({\it{alist\/}})) $\wedge$ {\rm{listp}}\,({\it{alist\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{cons}}\,({\rm{car}}\,({\it{alist\/}}), {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\rm{cdr}}\,({\it{alist\/}}))\index{put-assoc}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-opener-2 \\ \index{put-assoc-opener-2}
\=\+(\=\+{\rm{listp}}\,({\it{alist3\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{caar}}\,({\it{alist3\/}}) $\not\in$ {\rm{strip-cars}}\,({\rm{cdr}}\,({\it{alist3\/}}))) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{s-expr\/}}, {\it{alist1\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\it{alist1\/}}) $=$ {\rm{strip-cars}}\,({\it{alist2\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cdrs}}\,({\it{alist2\/}})\index{strip-cdrs} $=$ {\rm{strip-cars}}\,({\rm{cdr}}\,({\it{alist3\/}}))))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put-assoc}}\,({\it{val\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{alist2\/}})), {\it{alist3\/}})\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{car}}\,({\it{alist3\/}}), \\ 
{\rm{put-assoc}}\,({\it{val\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{alist2\/}})), {\rm{cdr}}\,({\it{alist3\/}}))\index{put-assoc})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lr-valp-lr-undef-addr \\ \index{not-lr-valp-lr-undef-addr}
\=\+({\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} $\wedge$ {\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-valp}}\,({\it{value\/}}, {\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}), {\it{data-seg\/}})\index{lr-valp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-temps-put-assoc-put-assoc-helper-1 \\ \index{lr-s-similar-temps-put-assoc-put!-assoc-helper-1}
\=\+(\=\+{\rm{listp}}\,({\it{s-temps\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{lr-temps\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\it{data-seg\/}})\index{lr-s-similar-temps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\it{name1\/}} $=$ {\rm{caar}}\,({\it{s-temps\/}})) \\ 
$\wedge$$\;\;\;\;$({\it{name2\/}} $=$ {\rm{caar}}\,({\it{lr-temps\/}})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\rm{put-assoc}}\,({\rm{list}}\,({\bf{t}}, {\it{value\/}}), {\it{name1\/}}, {\it{s-temps\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,({\it{addr\/}}, {\it{name2\/}}, {\it{lr-temps\/}})\index{put-assoc}, \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-temps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-temps-put-assoc-put-assoc-helper \\ \index{lr-s-similar-temps-put-assoc-put!-assoc-helper}
\=\+(\=\+{\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\it{data-seg\/}})\index{lr-s-similar-temps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\it{temp-alist\/}}) $=$ {\rm{strip-cars}}\,({\it{s-temps\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs} $=$ {\rm{strip-cars}}\,({\it{lr-temps\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\it{lr-temps\/}}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{s-expr\/}}, {\it{s-temps\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\rm{put-assoc}}\,({\rm{list}}\,({\bf{t}}, {\it{value\/}}), {\it{s-expr\/}}, {\it{s-temps\/}})\index{put-assoc}, \\ 
{\rm{put-assoc}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{temp-alist\/}})), \\ 
{\it{lr-temps\/}})\-\index{put-assoc}, \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-temps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  disjointp-cons-arg2 \\ \index{disjointp-cons-arg2}
\=\+({\rm{disjointp}}\,({\it{list1\/}}, {\it{list2\/}})\index{disjointp} $\wedge$ ({\it{x\/}} $\not\in$ {\it{list1\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{disjointp}}\,({\it{list1\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{list2\/}}))\index{disjointp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  disjointp-nlistp-arg2 \\ \index{disjointp-nlistp-arg2}
({\it{list2\/}} $\simeq\;${{\bf{nil}}}${}$) $\rightarrow$ {\rm{disjointp}}\,({\it{list1\/}}, {\it{list2\/}})\index{disjointp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  disjointp-lr-make-temp-name-alist-1 \\ \index{disjointp-lr-make-temp-name-ali!st-1}
{\rm{disjointp}}\,(\=\+{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{strip-cdrs})\-\index{disjointp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-s-change-temp-helper-2 \\ \index{lr-s-similar-statesp-s-change-te!mp-helper-2}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\rm{s-temps}}\,({\it{s-eval\/}})\index{s-temps}, {\it{lr-eval\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{lr-expr\/}} $=$ {\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-s-similar-statesp}}\,(\=\+{\it{s-params\/}}, \\ 
{\rm{s-temps}}\,({\rm{s-change-temp}}\,(\=\+{\it{s-eval\/}}, \\ 
{\it{s-expr\/}}, \\ 
{\it{value\/}})\-\index{s-change-temp})\index{s-temps}, \\ 
{\rm{lr-set-temp}}\,({\it{lr-eval\/}}, {\it{addr\/}}, {\it{lr-expr\/}})\index{lr-set-temp}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{list}}\,({\bf{t}}, {\it{value\/}}), \\ 
{\it{s-expr\/}}, \\ 
{\rm{s-temps}}\,({\it{s-eval\/}})\index{s-temps})\-\index{put-assoc}, \\ 
{\rm{lr-temps}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\it{addr\/}}, \\ 
{\it{lr-expr\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{lr-eval\/}})\index{p-ctrl-stk}))\index{bindings})\-\index{put-assoc}, \\ 
{\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{lr-eval\/}})\index{p-ctrl-stk}))\index{ret-pc})\-\index{p-frame}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\-\index{lr-temps}, \\ 
{\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment})\-\index{lr-s-similar-temps})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-dv-1-temps-lr-expr \\ \index{good-posp1-dv-1-temps-lr-expr}
\=\+(\=\+(({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{assoc}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}, {\rm{s-body}}\,({\rm{assoc}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-body})\index{good-posp1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  put-assoc-restn \\ \index{put-assoc-restn}
\=\+($\neg$ {\rm{definedp}}\,({\it{name\/}}, {\rm{firstn}}\,({\it{n\/}}, {\it{alist\/}})\index{firstn})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\rm{restn}}\,({\it{n\/}}, {\it{alist\/}})\index{restn})\index{put-assoc} \\ 
$=$$\;\;\;\;${\rm{restn}}\,({\it{n\/}}, {\rm{put-assoc}}\,({\it{val\/}}, {\it{name\/}}, {\it{alist\/}})\index{put-assoc})\index{restn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  disjointp-plist-arg-2 \\ \index{disjointp-plist-arg-2}
{\rm{disjointp}}\,({\it{x\/}}, {\rm{plist}}\,({\it{y\/}})\index{plist})\index{disjointp} $=$ {\rm{disjointp}}\,({\it{x\/}}, {\it{y\/}})\index{disjointp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-disjointp-member-arg1-cons-arg2 \\ \index{not-disjointp-member-arg1-cons-!arg2}
({\it{v\/}} $\in$ {\it{y\/}}) $\rightarrow$ ($\neg$ {\rm{disjointp}}\,({\it{y\/}}, {\rm{cons}}\,({\it{v\/}}, {\it{z\/}}))\index{disjointp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-disjointp-cons-arg2 \\ \index{member-disjointp-cons-arg2}
({\it{v\/}} $\not\in$ {\it{y\/}}) $\rightarrow$ ({\rm{disjointp}}\,({\it{y\/}}, {\rm{cons}}\,({\it{v\/}}, {\it{z\/}}))\index{disjointp} $=$ {\rm{disjointp}}\,({\it{y\/}}, {\it{z\/}})\index{disjointp})
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  disjointp-lr-make-temp-name-alist-2 \\ \index{disjointp-lr-make-temp-name-ali!st-2}
{\rm{disjointp}}\,(\=\+{\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{strip-cdrs}, \\ 
{\it{formals\/}})\-\index{disjointp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-s-$>$lr1-strip-cars-bindings-ctrl-stk \\ \index{proper-p-statep-lr-$>$p-s-$>$lr!1-strip-cars-bindings-ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings}) \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{s-formals}}\,({\rm{assoc}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-formals}, \\ 
{\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-formals})\-\index{lr-make-temp-name-alist})\index{strip-cdrs})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-$>$p-s-$>$lr1-definedp-s-pname \\ \index{lr-programs-properp-lr-$>$p-s-$>$!lr1-definedp-s-pname}
\=\+($\neg$ {\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-p-frame-put-assoc \\ \index{lr-temps-p-frame-put-assoc}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l2\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{lr-expr\/}} $=$ {\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\it{l2\/}} $=$ {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-temps}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\it{val\/}}, \\ 
{\it{lr-expr\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l2\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{bindings})\-\index{put-assoc}, \\ 
{\it{ret-pc\/}})\-\index{p-frame}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\-\index{lr-temps} \\ 
$=$$\;\;\;\;${\rm{put-assoc}}\,(\=\+{\it{val\/}}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}), \\ 
{\rm{lr-temps}}\,(\=\+{\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l2\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}), \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\-\index{lr-temps})\-\index{put-assoc})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-lr-temps-strip-cars-temp-var-dcls \\ \index{strip-cars-lr-temps-strip-cars-te!mp-var-dcls}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\it{frame\/}} $=$ {\rm{top}}\,({\rm{p-ctrl-stk}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-ctrl-stk})\index{top}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{lr-temps}}\,({\it{frame\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-temps}) \\ 
$=$$\;\;\;\;${\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-formals})\-\index{lr-make-temp-name-alist})\index{strip-cdrs})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-s-$>$lr1-strip-cars-bindings-ctrl-stk.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-s-change-temp-helper-1 \\ \index{lr-s-similar-statesp-s-change-te!mp-helper-1}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}) \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-formals})\-\index{lr-make-temp-name-alist})\-))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-s-$>$lr1-lr-similar-temps \\ \index{lr-s-similar-statesp-s-$>$lr1-l!r-similar-temps}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\it{s-temps\/}}, \\ 
{\rm{lr-temps}}\,({\rm{top}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{top}, {\it{l\/}})\index{lr-temps}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-s-similar-temps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  count-codelist1-cons \\ \index{count-codelist1-cons}
{\rm{count-codelist1}}\,({\rm{cons}}\,({\it{x\/}}, {\it{y\/}}))\index{count-codelist1} $=$ ({\it{x\/}} $+$ ({\tt{10}} $*$ {\rm{count-codelist1}}\,({\it{y\/}})\index{count-codelist1}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-append-initial \\ \index{equal-append-initial}
({\rm{append}}\,({\it{x\/}}, {\it{y\/}}) $=$ {\rm{append}}\,({\it{x\/}}, {\it{z\/}})) $=$ ({\it{y\/}} $=$ {\it{z\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plist-listp-x-append-x-not-0 \\ \index{plist-listp-x-append-x-not-0}
{\rm{plistp}}\,({\it{x\/}})\index{plistp} $\rightarrow$ (({\rm{append}}\,({\it{x\/}}, {\tt{0}}) $=$ {\tt{0}}) $=$ ({\it{x\/}} $=$ {\bf{nil}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-append-final-0 \\ \index{equal-append-final-0}
({\rm{append}}\,({\it{y\/}}, {\tt{0}}) $=$ {\rm{append}}\,({\it{z\/}}, {\tt{0}})) $=$ ({\rm{plist}}\,({\it{y\/}})\index{plist} $=$ {\rm{plist}}\,({\it{z\/}})\index{plist})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  count-codelist1-append-non-listp \\ \index{count-codelist1-append-non-listp}
\=\+($\neg$ {\rm{listp}}\,({\it{z\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{count-codelist1}}\,({\rm{append}}\,({\it{num-list\/}}, {\it{z\/}}))\index{count-codelist1} $=$ {\rm{count-codelist1}}\,({\it{num-list\/}})\index{count-codelist1})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-equal-make-symbol-car-gensym \\ \index{not-equal-make-symbol-car-gensy!m}
\=\+({\rm{count-codelist1}}\,({\it{num-list1\/}})\index{count-codelist1} $<$ {\rm{count-codelist1}}\,({\it{num-list2\/}})\index{count-codelist1}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{make-symbol}}\,({\it{initial\/}}, {\it{num-list1\/}})\index{make-symbol} \\ 
$\not=$$\;\;\;\;${\rm{car}}\,({\rm{gensym}}\,({\it{initial\/}}, {\it{num-list2\/}}, {\it{atom-list\/}})\index{gensym}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  count-codelist1-cdr-gensym \\ \index{count-codelist1-cdr-gensym}
\=\+({\rm{count-codelist1}}\,({\it{num-list1\/}})\index{count-codelist1} $<$ {\rm{count-codelist1}}\,({\it{num-list2\/}})\index{count-codelist1}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{count-codelist1}}\,({\it{num-list1\/}})\index{count-codelist1} \\ 
$<$$\;\;\;\;${\rm{count-codelist1}}\,({\rm{cdr}}\,({\rm{gensym}}\,({\it{initial\/}}, {\it{num-list2\/}}, {\it{atom-list\/}})\index{gensym}))\index{count-codelist1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-member-make-symbol-lr-make-temp-name-alist-1-incr \\ \index{not-member-make-symbol-lr-make-te!mp-name-alist-1-incr}
\=\+({\rm{count-codelist1}}\,({\it{num-list1\/}})\index{count-codelist1} $<$ {\rm{count-codelist1}}\,({\it{num-list2\/}})\index{count-codelist1}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{make-symbol}}\,({\it{initial\/}}, {\it{num-list1\/}})\index{make-symbol} \\ 
$\in$$\;\;\;\;${\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list2\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{strip-cdrs})\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-member-car-gensym-lr-make-temp-name-alist-1-cdr \\ \index{not-member-car-gensym-lr-make-te!mp-name-alist-1-cdr}
\=\+(\=\+{\rm{car}}\,({\rm{gensym}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{atoms\/}})\index{gensym}) \\ 
$\in$$\;\;\;\;${\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\rm{cdr}}\,({\rm{gensym}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list\/}}, \\ 
{\it{atoms\/}})\-\index{gensym}), \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{strip-cdrs})\- \\ 
$=$$\;\;\;\;${\bf{f}}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-strip-cdrs-lr-make-temp-name-alist-1 \\ \index{no-duplicatesp-strip-cdrs-lr-ma!ke-temp-name-alist-1}
{\rm{no-duplicatesp}}\,({\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{strip-cdrs})\index{no-duplicatesp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-strip-cdrs-lr-make-temp-name-alist \\ \index{no-duplicatesp-strip-cdrs-lr-ma!ke-temp-name-alist}
{\rm{no-duplicatesp}}\,({\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist})\index{strip-cdrs})\index{no-duplicatesp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-s-temps-s-eval \\ \index{definedp-s-temps-s-eval}
\=\+({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{definedp}}\,({\it{x\/}}, {\rm{s-temps}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-temps})\index{definedp} $=$ {\rm{definedp}}\,({\it{x\/}}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-lr-make-temp-name-alist-1 \\ \index{strip-cars-lr-make-temp-name-ali!st-1}
\=\+{\rm{strip-cars}}\,({\rm{lr-make-temp-name-alist-1}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist-1}) \\ 
$=$$\;\;\;\;${\rm{plist}}\,({\it{temp-list\/}})\index{plist}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-lr-make-temp-name-alist \\ \index{strip-cars-lr-make-temp-name-ali!st}
{\rm{strip-cars}}\,({\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist}) $=$ {\rm{plist}}\,({\it{temp-list\/}})\index{plist}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-strip-cars-lr-temps-car-p-ctrl-stk \\ \index{lr-eval-preserves-strip-cars-lr!-temps-car-p-ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{strip-cars}}\,({\rm{lr-temps}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}), {\it{l2\/}})\index{lr-temps}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\rm{lr-temps}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}), {\it{l2\/}})\index{lr-temps}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-s-change-temp \\ \index{lr-s-similar-statesp-s-change-te!mp}
\=\+{\bf let }\=\+{\it{s-l\/}}{\bf $\;$ be$\;\;$}{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\rm{s-temps}}\,({\it{s-eval\/}})\index{s-temps}, {\it{lr-eval\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-ans}}\,({\it{s-eval\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s-eval\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{s-eval\/}} $=$ {\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval}) \\ 
$\wedge$$\;\;\;\;$({\it{value\/}} $=$ {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{s-l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\it{s-params\/}}, \\ 
{\rm{s-temps}}\,({\rm{s-change-temp}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{s-ans}}\,({\it{s-eval\/}})\index{s-ans})\-\index{s-change-temp})\index{s-temps}, \\ 
{\rm{lr-set-temp}}\,(\=\+{\it{lr-eval\/}}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}), \\ 
{\it{value\/}})\-\index{lr-set-temp}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp}\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-s-similar-statesp-s-change-temp-helper-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-do-temp-fetch \\ \index{lr-temps-lr-do-temp-fetch}
{\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-do-temp-fetch \\ \index{lr-params-lr-do-temp-fetch}
{\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-simlar-statesp-lr-do-temp-fetch \\ \index{lr-s-simlar-statesp-lr-do-temp-!fetch}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-member-no-duplicates-cdr-assoc-helper \\ \index{not-member-no-duplicates-cdr-as!soc-helper}
\=\+(\=\+{\rm{no-duplicatesp}}\,({\it{list\/}})\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs} $=$ {\it{list\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $\not\in$ {\it{list\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{s-expr\/}}, {\it{alist\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{alist\/}})) $\not=$ {\it{name\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-member-no-duplicates-cdr-assoc \\ \index{not-member-no-duplicates-cdr-as!soc}
\=\+(\=\+{\rm{no-duplicatesp}}\,({\it{list\/}})\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cdrs}}\,({\it{alist1\/}})\index{strip-cdrs} $=$ {\it{list\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $\not\in$ {\it{list\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{s-expr\/}}, {\it{alist2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\it{alist2\/}}) $=$ {\rm{strip-cars}}\,({\it{alist1\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{alist1\/}})) $\not=$ {\it{name\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-equal-lr-s-eval-temp-setp-not-lr-s-similar-temps \\ \index{not-equal-lr-s-eval-temp-setp-n!ot-lr-s-similar-temps}
\=\+(\=\+({\it{lr-expr\/}} $=$ {\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{temp-alist\/}}))) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\it{data-seg\/}})\index{lr-s-similar-temps} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\it{temp-alist\/}}) $=$ {\rm{strip-cars}}\,({\it{s-temps\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs} $=$ {\rm{strip-cars}}\,({\it{lr-temps\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\it{lr-temps\/}}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{s-expr\/}}, {\it{s-temps\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{cdr}}\,({\rm{assoc}}\,({\it{lr-expr\/}}, {\it{lr-temps\/}})) $\not=$ {\sc{lr-undef-addr}}\index{lr-undef-addr}) \\ 
$\leftrightarrow$$\;\;\;\;${\rm{cadr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{s-temps\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-strip-cars-append-member-x-2 \\ \index{definedp-strip-cars-append-membe!r-x-2}
\=\+({\rm{strip-cars}}\,({\it{x\/}}) $=$ {\rm{append}}\,({\it{y\/}}, {\it{z\/}})) \\ 
$\rightarrow$$\;\;\;\;$(({\it{e\/}} $\in$ {\it{z\/}}) $=$ {\rm{definedp}}\,({\it{e\/}}, {\rm{restn}}\,({\rm{length}}\,({\it{y\/}})\index{length}, {\it{x\/}})\index{restn})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-iff-lr-s-temp-setp-not-lr-s-similar-statesp-helper \\ \index{not-iff-lr-s-temp-setp-not-lr-s!-similar-statesp-helper}
\=\+(\=\+({\it{x\/}} $\in$ {\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-formals})\-\index{lr-make-temp-name-alist})\index{strip-cdrs}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\it{x\/}}, {\rm{lr-temps}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}), {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-temps})) \\ 
$=$$\;\;\;\;${\rm{cdr}}\,({\rm{assoc}}\,({\it{x\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-member-lr-expr-temps \\ \index{lr-programs-properp-member-lr-e!xpr-temps}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\in$$\;\;\;\;${\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{temp-var-dcls}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-iff-lr-s-temp-setp-not-lr-s-similar-statesp \\ \index{not-iff-lr-s-temp-setp-not-lr-s!-similar-statesp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}))\- \\ 
$\wedge$$\;\;\;\;$($\neg$ (\=\+{\rm{lr-eval-temp-setp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-eval-temp-setp} \\ 
$\leftrightarrow$$\;\;\;\;${\rm{s-temp-setp}}\,({\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-temp-setp})\-) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-lr-s-eval-lr-s-similar-temps \\ \index{lr-valp-lr-s-eval-lr-s-similar-te!mps}
\=\+(\=\+({\it{lr-expr\/}} $=$ {\rm{cdr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{temp-alist\/}}))) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\it{data-seg\/}})\index{lr-s-similar-temps} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\it{temp-alist\/}}) $=$ {\rm{strip-cars}}\,({\it{s-temps\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs} $=$ {\rm{strip-cars}}\,({\it{lr-temps\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\it{lr-temps\/}}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{s-expr\/}}, {\it{s-temps\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{assoc}}\,({\it{lr-expr\/}}, {\it{lr-temps\/}})) $\not=$ {\sc{lr-undef-addr}}\index{lr-undef-addr}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{caddr}}\,({\rm{assoc}}\,({\it{s-expr\/}}, {\it{s-temps\/}})), \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\it{lr-expr\/}}, {\it{lr-temps\/}})), \\ 
{\it{data-seg\/}})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-cdr-assoc-strip-cdrs-definedp \\ \index{member-cdr-assoc-strip-cdrs-defi!nedp}
{\rm{definedp}}\,({\it{x\/}}, {\it{alist\/}})\index{definedp} $\rightarrow$ ({\rm{cdr}}\,({\rm{assoc}}\,({\it{x\/}}, {\it{alist\/}})) $\in$ {\rm{strip-cdrs}}\,({\it{alist\/}})\index{strip-cdrs})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-pairlist \\ \index{definedp-pairlist}
{\rm{definedp}}\,({\it{x\/}}, {\rm{pairlist}}\,({\it{temp-list\/}}, {\it{anything\/}}))\index{definedp} $=$ ({\it{x\/}} $\in$ {\it{temp-list\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-lr-make-temp-name-alist-1 \\ \index{definedp-lr-make-temp-name-alist!-1}
\=\+{\rm{definedp}}\,({\it{x\/}}, {\rm{lr-make-temp-name-alist-1}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist-1})\index{definedp} \\ 
$=$$\;\;\;\;$({\it{x\/}} $\in$ {\it{temp-list\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-lr-make-temp-name-alist \\ \index{definedp-lr-make-temp-name-alist}
\=\+{\rm{definedp}}\,({\it{x\/}}, {\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist})\index{definedp} \\ 
$=$$\;\;\;\;$({\it{x\/}} $\in$ {\it{temp-list\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-temp-stk-lr-do-temp-fetch-p-psw-run \\ \index{p-temp-stk-lr-do-temp-fetch-p-p!sw-run}
\=\+({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-temp-stk}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-temp-stk} \\ 
$=$$\;\;\;\;${\rm{push}}\,(\=\+{\rm{local-var-value}}\,({\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{local-var-value}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{push})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-lr-do-temp-fetch \\ \index{lr-check-result-lr-do-temp-fetc!h}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}))\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-eval-temp-setp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-eval-temp-setp} \\ 
$\wedge$$\;\;\;\;$({\it{value\/}} $=$ {\rm{caddr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\rm{assoc}}\,({\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{s-temps}}\,({\it{s\/}})\index{s-temps})), \\ 
{\rm{cons}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\it{value\/}}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})), \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-do-temp-fetch-run-lr-eval-temp-setp \\ \index{lr-do-temp-fetch-run-lr-eval-te!mp-setp}
({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) $\rightarrow$ {\rm{lr-eval-temp-setp}}\,({\it{l\/}})\index{lr-eval-temp-setp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-valp-assoc \\ \index{lr-s-similar-const-table-lr-valp!-assoc}
\=\+({\rm{definedp}}\,({\it{value\/}}, {\it{table\/}})\index{definedp} $\wedge$ {\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\rm{cdr}}\,({\rm{assoc}}\,({\it{value\/}}, {\it{table\/}})), {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-list-quote-opener \\ \index{lr-proper-exprp-list-quote-opene!r}
\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{quote}}, {\it{addr\/}}), \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$=$$\;\;\;\;$(({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) $\wedge$ ({\it{addr\/}} $\in$ {\rm{strip-cdrs}}\,({\it{table\/}})\index{strip-cdrs})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-lr-push-tstk-quote \\ \index{lr-check-result-lr-push-tstk-qu!ote}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\-\index{lr-push-tstk})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\-\index{lr-push-tstk})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-subrp-user-funcall-opener \\ \index{lr-eval-subrp-user-funcall-opene!r}
\=\+{\bf let }\=\+{\it{lr-eval-list\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{lr-eval-list\/}})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\it{lr-eval-list\/}} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf then }{\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval-list\/}})\index{lr-apply-subr} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf then }{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{lr-eval-list\/}})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{lr-pop-cstk}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\-\index{lr-set-expr} \\ 
{\bf else }{\rm{lr-set-error}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\tt{'}}{\tt{bad-instruction}})\-\index{lr-set-error}$\;${\bf  endif}\-)\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-lr-expr-funcall \\ \index{length-cdr-lr-expr-funcall}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) $\vee$ {\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length} $=$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-8} \\  
\=\+{\rm{induct-hint-8}}\,({\it{n\/}}, {\it{value\/}}, {\it{temp-stk\/}})\index{induct-hint-8} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-8}}\,({\it{n\/}} $-\;1$, {\rm{cdr}}\,({\it{value\/}}), {\rm{cdr}}\,({\it{temp-stk\/}}))\index{induct-hint-8}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-lr-valp-get-n-lessp-length \\ \index{lr-check-result1-lr-valp-get-n-!lessp-length}
\=\+({\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} $\wedge$ ({\it{n\/}} $<$ {\rm{length}}\,({\it{values\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\rm{get}}\,({\it{n\/}}, {\it{values\/}})\index{get}, {\rm{get}}\,({\it{n\/}}, {\it{temp-stk\/}})\index{get}, {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-lr-good-pointerp \\ \index{lr-valp-lr-good-pointerp}
{\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} $\rightarrow$ {\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-lr-good-pointerp-get-n-lessp-car \\ \index{lr-check-result1-lr-good-pointe!rp-get-n-lessp-car}
\=\+({\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} $\wedge$ ({\rm{length}}\,({\it{values\/}})\index{length} $\not<$ {\tt{1}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{type}}\,({\rm{car}}\,({\it{temp-stk\/}}))\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{car}}\,({\it{temp-stk\/}})) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{car}}\,({\it{temp-stk\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{car}}\,({\it{temp-stk\/}}))\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{car}}\,({\it{temp-stk\/}}))\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{car}}\,({\it{temp-stk\/}}))\index{area-name} $=$ {\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{car}}\,({\it{temp-stk\/}}), \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-lr-good-pointerp-get-n-lessp-cadr \\ \index{lr-check-result1-lr-good-pointe!rp-get-n-lessp-cadr}
\=\+({\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} $\wedge$ ({\rm{length}}\,({\it{values\/}})\index{length} $\not<$ {\tt{2}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{type}}\,({\rm{cadr}}\,({\it{temp-stk\/}}))\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{cadr}}\,({\it{temp-stk\/}})) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cadr}}\,({\it{temp-stk\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{cadr}}\,({\it{temp-stk\/}}))\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{cadr}}\,({\it{temp-stk\/}}))\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{cadr}}\,({\it{temp-stk\/}}))\index{area-name} $=$ {\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{cadr}}\,({\it{temp-stk\/}}), \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-proper-heapp2 \\ \index{p-run-subr-preserves-lr-proper-!heapp2}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{value\/}}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-apply-subr-preserves-lr-proper-heapp2 \\ \index{lr-apply-subr-preserves-lr-prope!r-heapp2}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{value\/}}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\index{lr-proper-heapp2}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-15} \\  
\=\+{\rm{induct-hint-15}}\,({\it{s\/}}, {\it{c\/}})\index{induct-hint-15} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}) \\ 
{\bf then }{\rm{induct-hint-15}}\,({\rm{s-set-expr}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval}, {\it{s\/}}, {\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\index{s-set-expr}, {\it{c\/}})\index{induct-hint-15} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-s-eval-list \\ \index{length-s-eval-list}
\=\+({\rm{listp}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}) $\wedge$ ({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-ans})\index{length} $=$ {\rm{length}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-lr-compile-body \\ \index{plistp-lr-compile-body}
{\rm{listp}}\,({\it{body\/}}) $\rightarrow$ {\rm{plistp}}\,({\rm{lr-compile-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{temp-alist\/}}, {\it{const-alist\/}})\index{lr-compile-body})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-lr-expr-s-$>$lr1 \\ \index{plistp-lr-expr-s-$>$lr1}
\=\+({\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} $\wedge$ {\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\rightarrow$$\;\;\;\;${\rm{plistp}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr})\index{plistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-cdr-lr-expr-funcall-s-$>$lr1 \\ \index{length-cdr-lr-expr-funcall-s-$>$!lr1}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) $\vee$ {\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-same-signature-lr-apply-subr \\ \index{adpp-same-signature-lr-apply-su!br}
\=\+{\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, {\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\index{adpp} \\ 
$=$$\;\;\;\;${\rm{adpp}}\,({\it{adp\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{adpp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-apply-subr-preserves-lr-proper-heapp \\ \index{lr-apply-subr-preserves-lr-prope!r-heapp}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-apply-subr})\index{p-data-segment})\index{lr-proper-heapp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-lr-apply-subr \\ \index{lr-s-similar-params-lr-apply-su!br}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-s-similar-params})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\it{s-params\/}}, \\ 
{\it{lr-params\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\-\index{lr-s-similar-params}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-apply-subr \\ \index{lr-params-lr-apply-subr}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-params}}\,({\it{frame\/}}, {\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-params} $=$ {\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-apply-subr \\ \index{lr-temps-lr-apply-subr}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-temps}}\,({\it{frame\/}}, {\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{lr-temps} $=$ {\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-temps-lr-apply-subr \\ \index{lr-s-similar-temps-lr-apply-sub!r}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-s-similar-temps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,(\=\+{\it{s-temps\/}}, \\ 
{\it{lr-temps\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\-\index{lr-s-similar-temps}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-apply-subr \\ \index{lr-s-similar-const-table-lr-app!ly-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table1\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table2\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-s-similar-const-table})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\it{table2\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\-\index{lr-s-similar-const-table}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-apply-subr \\ \index{lr-s-similar-statesp-lr-apply-s!ubr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{new-l\/}}, {\it{table\/}})\index{lr-s-similar-statesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\it{s-params\/}}, \\ 
{\it{s-temps\/}}, \\ 
{\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lr-eval-list-helper \\ \index{proper-p-statep-lr-$>$p-lr-eval!-list-helper}
\=\+{\bf let }\=\+{\it{cur-expr\/}}{\bf $\;$ be$\;\;$}{\rm{cur-expr}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{cur-expr}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{length}}\,({\it{cur-expr\/}})\index{length} $<$ {\tt{1}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{cur-expr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{cur-expr\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{cur-expr\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{litatom}}\,({\rm{car}}\,({\it{cur-expr\/}})) $\vee$ {\rm{subrp}}\,({\rm{car}}\,({\it{cur-expr\/}}))) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-lr-eval-list \\ \index{proper-p-statep-lr-$>$p-lr-eval!-list}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) $\vee$ {\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-statep-lr-$>$p-lr-eval-list-helper.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-listp-p-temp-stk-not-lr-check-result1 \\ \index{not-listp-p-temp-stk-not-lr-che!ck-result1}
\=\+{\rm{lr-check-result1}}\,({\it{value\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $\not<$ {\rm{length}}\,({\it{value\/}})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  restn-add1-opener-alt \\ \index{restn-add1-opener-alt}
\=\+{\rm{restn}}\,($1\;+$ {\it{n\/}}, {\it{list\/}})\index{restn} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}})$\;\;${\bf then }{\rm{restn}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{list\/}}))\index{restn} \\ 
{\bf else }{\it{list\/}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-p-temp-stk-p-run-subr \\ \index{cdr-p-temp-stk-p-run-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk} \\ 
$=$$\;\;\;\;${\rm{restn}}\,({\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length}, {\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{restn})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,(\=\+{\it{value\/}}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-temp-stk}) \\ 
$=$$\;\;\;\;${\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable restn-add1-opener-alt.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  cdr-p-temp-stk-lr-apply-subr \\ \index{cdr-p-temp-stk-lr-apply-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk} \\ 
$=$$\;\;\;\;${\rm{restn}}\,({\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length}, {\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{restn})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,(\=\+{\it{value\/}}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{cdr}}\,({\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-temp-stk}) $=$ {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-reverse-length-1-opener \\ \index{lr-check-result1-reverse-length!-1-opener}
\=\+({\rm{length}}\,({\it{values\/}})\index{length} $=$ {\tt{1}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-result1}}\,({\rm{reverse}}\,({\it{values\/}})\index{reverse}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-valp}}\,({\rm{car}}\,({\it{values\/}}), {\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-good-pointerp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-reverse-length-2-opener \\ \index{lr-check-result1-reverse-length!-2-opener}
\=\+({\rm{length}}\,({\it{values\/}})\index{length} $=$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-result1}}\,({\rm{reverse}}\,({\it{values\/}})\index{reverse}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-valp}}\,({\rm{cadr}}\,({\it{values\/}}), {\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{cadr}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\rm{car}}\,({\it{values\/}}), {\rm{cadr}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{lr-good-pointerp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-fetch-tag-cons-lr-valp-car-cdr \\ \index{lr-valp-fetch-tag-cons-lr-valp-!car-cdr}
\=\+(\=\+{\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;$({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch} $=$ {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-valp}}\,(\=\+{\rm{car}}\,({\it{value\/}}), \\ 
{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-car-offset}}\index{lr-car-offset}))\index{add-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{cdr}}\,({\it{value\/}}), \\ 
{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-cdr-offset}}\index{lr-cdr-offset}))\index{add-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-valp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-type-tag-nat \\ \index{lr-good-pointerp-type-tag-nat}
\=\+({\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} $\wedge$ {\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{type} $=$ {\tt{'}}{\tt{nat}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-valp-f-helper \\ \index{lr-proper-heapp-lr-valp-f-helpe!r}
\=\+(\=\+{\rm{lr-proper-heapp-nodep}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-valp}}\,({\bf{f}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} $=$ ({\it{addr\/}} $=$ {\sc{lr-f-addr}}\index{lr-f-addr}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-valp-f \\ \index{lr-proper-heapp-lr-valp-f}
\=\+({\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} $\wedge$ {\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-valp}}\,({\bf{f}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} $=$ ({\it{addr\/}} $=$ {\sc{lr-f-addr}}\index{lr-f-addr}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-equal-value-fact \\ \index{lr-valp-equal-value-fact}
\=\+({\rm{lr-valp}}\,({\it{value1\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} $\wedge$ {\rm{lr-valp}}\,({\it{value2\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp}) \\ 
$\rightarrow$$\;\;\;\;$({\it{value1\/}} $=$ {\it{value2\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-valp-0 \\ \index{lr-proper-heapp-lr-valp-0}
\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-valp}}\,({\it{value\/}}, {\rm{identity}}\,({\sc{lr-0-addr}}\index{lr-0-addr}), {\it{data-seg\/}})\index{lr-valp} $=$ ({\it{value\/}} $=$ {\tt{0}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-valp-lr-f-addr \\ \index{lr-proper-heapp-lr-valp-lr-f-ad!dr}
\=\+({\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} $\wedge$ {\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-valp}}\,({\it{value\/}}, {\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}), {\it{data-seg\/}})\index{lr-valp} $=$ ({\it{value\/}} $=$ {\bf{f}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-valp-lr-t-addr \\ \index{lr-proper-heapp-lr-valp-lr-t-ad!dr}
\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-valp}}\,({\it{value\/}}, {\rm{identity}}\,({\sc{lr-t-addr}}\index{lr-t-addr}), {\it{data-seg\/}})\index{lr-valp} $=$ ({\it{value\/}} $=$ {\bf{t}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-fetch-tag-not-cons-lr-valp-car-cdr-0 \\ \index{lr-valp-fetch-tag-not-cons-lr-v!alp-car-cdr-0}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$\not=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag})\- \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{value\/}}) $\not=$ {\tt{0}}) $\vee$ ({\rm{cdr}}\,({\it{value\/}}) $\not=$ {\tt{0}})))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-valp}}\,({\it{value\/}}, {\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-valp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-not-tag-cons-not-listp \\ \index{lr-valp-not-tag-cons-not-listp}
\=\+(($\neg$ {\rm{listp}}\,({\it{value\/}})) $\wedge$ ({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch} $=$ {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-fetch-tag-not-cons-lr-valp-listp \\ \index{lr-valp-fetch-tag-not-cons-lr-v!alp-listp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$\not=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag})\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{value\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-valp}}\,({\it{value\/}}, {\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-valp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-cons \\ \index{lr-valp-cons}
\=\+{\rm{lr-valp}}\,({\rm{cons}}\,({\it{x\/}}, {\it{y\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
{\bf then }\=\+({\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{x\/}}, \\ 
{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{y\/}}, \\ 
{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{lr-valp}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-a-list-cons \\ \index{lr-valp-deposit-a-list-cons}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\it{fp-addr\/}} $=$ {\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{deposit-a-list}}\,({\rm{list}}\,({\it{x0\/}}, {\it{x1\/}}, {\it{x2\/}}, {\it{x3\/}}), {\it{fp-addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-car-p-temp-stk-p-run-subr-cons-helper \\ \index{lr-valp-car-p-temp-stk-p-run-su!br-cons-helper}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{car\/}}, {\it{car-addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{cdr\/}}, {\it{cdr-addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{cons}}\,({\it{car\/}}, {\it{cdr\/}}), \\ 
{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\it{car-addr\/}}, \\ 
{\it{cdr-addr\/}})\-, \\ 
{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-valp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-valp-cons.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-valp-not-tag-true-not-listp \\ \index{lr-valp-not-tag-true-not-listp}
\=\+(($\neg$ {\rm{truep}}\,({\it{value\/}})) $\wedge$ ({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch} $=$ {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-fetch-tag-not-true-lr-valp-listp \\ \index{lr-valp-fetch-tag-not-true-lr-v!alp-listp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch} \\ 
$\not=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag})\-)\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-valp}}\,({\bf{t}}, {\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-valp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-car-p-temp-stk-p-run-subr \\ \index{lr-valp-car-p-temp-stk-p-run-su!br}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,({\rm{reverse}}\,({\it{values\/}})\index{reverse}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{values\/}})\index{length} $=$ {\rm{arity}}\,({\it{subr\/}})\index{arity}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{pc\/}})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{call}}, {\it{subr\/}}))\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{apply-subr}}\,({\it{subr\/}}, {\it{values\/}}), \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-run-subr})\index{p-temp-stk}), \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,({\it{subr\/}}, {\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-run-subr})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-not-definedp-subrp-runtime-support \\ \index{lr-programs-properp-not-definedp!-subrp-runtime-support}
\=\+(\=\+{\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-apply-subr-lr-apply-subr \\ \index{lr-valp-apply-subr-lr-apply-sub!r}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,(\=\+{\rm{reverse}}\,({\it{values\/}})\index{reverse}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{values\/}})\index{length} $=$ {\rm{length}}\,({\rm{cdr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{apply-subr}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\it{values\/}}), \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-temp-stk}), \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-data-segment})\-\index{lr-valp}\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-programs-properp-not-definedp-subrp-runtime-support.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-check-result-lr-apply-subr \\ \index{lr-check-result-lr-apply-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}, \\ 
{\it{pos\/}}{\bf $\;$ be$\;\;$}{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{apply-subr}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval})\index{s-ans})\-, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-apply-subr})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-apply-subr})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-$>$lr1-lr-funcall-s-fun-call-state \\ \index{s-$>$lr1-lr-funcall-s-fun-call-!state}
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-progs}}\,({\it{s-eval\/}})\index{s-progs} $=$ {\rm{s-progs}}\,({\it{s\/}})\index{s-progs}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{lr-eval\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{s-$>$lr1}}\,(\=\+{\rm{s-fun-call-state}}\,({\it{s-eval\/}}, {\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{s-fun-call-state}, \\ 
{\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall}, \\ 
{\it{table\/}})\-\index{s-$>$lr1} \\ 
$=$$\;\;\;\;${\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-funcall \\ \index{lr-params-lr-funcall}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-params}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-funcall})\index{p-ctrl-stk}), {\rm{lr-funcall}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-funcall})\index{lr-params} \\ 
$=$$\;\;\;\;${\rm{pair-formal-vars-with-actuals}}\,(\=\+{\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment})\-)\index{formal-vars}, \\ 
{\rm{p-temp-stk}}\,({\it{l2\/}})\index{p-temp-stk})\-\index{pair-formal-vars-with-actuals})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-funcall \\ \index{lr-temps-lr-funcall}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-temps}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-funcall})\index{p-ctrl-stk}), {\rm{lr-funcall}}\,({\it{l1\/}}, {\it{l2\/}})\index{lr-funcall})\index{lr-temps} \\ 
$=$$\;\;\;\;${\rm{pair-temps-with-initial-values}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{pair-temps-with-initial-values})\-\-
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  car-reverse-last \\ \index{car-reverse-last}
{\rm{car}}\,({\rm{reverse}}\,({\it{list\/}})\index{reverse}) $=$ {\rm{car}}\,({\rm{last}}\,({\it{list\/}})\index{last})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-sub1-length-car-last \\ \index{get-sub1-length-car-last}
\=\+({\rm{listp}}\,({\it{list\/}}) $\wedge$ ({\it{n\/}} $=$ ({\rm{length}}\,({\it{list\/}})\index{length} $-\;1$))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\it{n\/}}, {\it{list\/}})\index{get} $=$ {\rm{car}}\,({\rm{last}}\,({\it{list\/}})\index{last}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-last-first-n-add1-get \\ \index{car-last-first-n-add1-get}
{\rm{car}}\,({\rm{last}}\,({\rm{first-n}}\,($1\;+$ {\it{n\/}}, {\it{list\/}})\index{first-n})\index{last}) $=$ {\rm{get}}\,({\it{n\/}}, {\it{list\/}})\index{get}
\end{tabbing}

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

\begin{tabbing}{\sc Definition}:\index{induct-hint-1} \\  
\=\+{\rm{induct-hint-1}}\,({\it{x\/}}, {\it{y\/}}, {\it{z\/}})\index{induct-hint-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{x\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{y\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{z\/}}) \\ 
{\bf then }{\rm{induct-hint-1}}\,({\rm{cdr}}\,({\it{x\/}}), {\rm{butlast}}\,({\it{y\/}})\index{butlast}, {\rm{butlast}}\,({\it{z\/}})\index{butlast})\index{induct-hint-1} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-append-2 \\ \index{lr-check-result1-append-2}
\=\+({\rm{length}}\,({\it{values\/}})\index{length} $=$ {\rm{length}}\,({\it{temp-stk1\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-result1}}\,({\it{values\/}}, {\rm{append}}\,({\it{temp-stk1\/}}, {\it{temp-stk2\/}}), {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;${\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk1\/}}, {\it{data-seg\/}})\index{lr-check-result1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-butlast \\ \index{lr-check-result1-butlast}
\=\+(\=\+{\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $=$ {\rm{length}}\,({\it{values\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{values\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result1}}\,({\rm{butlast}}\,({\it{values\/}})\index{butlast}, {\rm{butlast}}\,({\it{temp-stk\/}})\index{butlast}, {\it{data-seg\/}})\index{lr-check-result1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  reverse-butlast \\ \index{reverse-butlast}
{\rm{listp}}\,({\it{x\/}}) $\rightarrow$ ({\rm{reverse}}\,({\rm{butlast}}\,({\it{x\/}})\index{butlast})\index{reverse} $=$ {\rm{cdr}}\,({\rm{reverse}}\,({\it{x\/}})\index{reverse}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-lr-valp-get \\ \index{lr-s-similar-params-lr-valp-get}
\=\+(\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{s-params\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\it{s-params\/}}) $=$ {\rm{strip-cars}}\,({\it{lr-params\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\it{data-seg\/}})\index{lr-s-similar-params})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\rm{cdr}}\,({\rm{get}}\,({\it{n\/}}, {\it{s-params\/}})\index{get}), {\rm{cdr}}\,({\rm{get}}\,({\it{n\/}}, {\it{lr-params\/}})\index{get}), {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-lr-funcall-helper-1 \\ \index{lr-s-similar-params-lr-funcall-!helper-1}
\=\+(\=\+{\rm{lr-s-similar-params}}\,(\=\+{\rm{pairlist}}\,({\rm{cdr}}\,({\it{formals\/}}), {\rm{cdr}}\,({\rm{reverse}}\,({\it{values\/}})\index{reverse})), \\ 
{\rm{pairlist}}\,({\rm{cdr}}\,({\it{formals\/}}), {\rm{cdr}}\,({\rm{reverse}}\,({\it{temp-stk\/}})\index{reverse})), \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-params} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{formals\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{values\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$(($1\;+$ {\rm{length}}\,({\rm{cdr}}\,({\it{formals\/}}))\index{length}) $=$ {\rm{length}}\,({\it{temp-stk\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $=$ {\rm{length}}\,({\it{values\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\rm{car}}\,({\rm{last}}\,({\it{values\/}})\index{last}), {\rm{car}}\,({\rm{last}}\,({\it{temp-stk\/}})\index{last}), {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-lr-funcall \\ \index{lr-s-similar-params-lr-funcall}
\=\+(\=\+{\rm{lr-check-result1}}\,({\it{values\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $=$ {\rm{length}}\,({\it{values\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $=$ {\rm{length}}\,({\it{formals\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\rm{pairlist}}\,({\it{formals\/}}, {\rm{reverse}}\,({\it{values\/}})\index{reverse}), \\ 
{\rm{pairlist}}\,({\it{formals\/}}, {\rm{reverse}}\,({\it{temp-stk\/}})\index{reverse}), \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-params}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  append-first-n-restn \\ \index{append-first-n-restn}
({\rm{length}}\,({\it{l\/}})\index{length} $\not<$ {\it{i\/}}) $\rightarrow$ ({\rm{append}}\,({\rm{first-n}}\,({\it{i\/}}, {\it{l\/}})\index{first-n}, {\rm{restn}}\,({\it{i\/}}, {\it{l\/}})\index{restn}) $=$ {\it{l\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result1-first-n-temp-stk \\ \index{lr-check-result1-first-n-temp-st!k}
\=\+({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{length}}\,({\it{values\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-result1}}\,({\it{values\/}}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, {\it{data-seg\/}})\index{lr-check-result1} \\ 
$=$$\;\;\;\;${\rm{lr-check-result1}}\,(\=\+{\it{values\/}}, \\ 
{\rm{first-n}}\,({\rm{length}}\,({\it{values\/}})\index{length}, {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{first-n}, \\ 
{\it{data-seg\/}})\-\index{lr-check-result1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-push-tstk-length \\ \index{lr-push-tstk-length}
\=\+({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{object\/}})\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\it{object\/}})\index{lr-push-tstk})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-add1-add1-cddr-fact \\ \index{length-add1-add1-cddr-fact}
({\rm{length}}\,({\it{x\/}})\index{length} $=$ ($1\;+$ ($1\;+$ {\rm{length}}\,({\it{y\/}})\index{length}))) $\rightarrow$ ({\rm{length}}\,({\rm{cddr}}\,({\it{x\/}}))\index{length} $=$ {\rm{length}}\,({\it{y\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-p-run-subr-helper-1 \\ \index{length-p-temp-stk-p-run-subr-he!lper-1}
\=\+(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ ($1\;+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cddr}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-p-run-subr \\ \index{length-p-temp-stk-p-run-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $+$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}))\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-apply-subr \\ \index{length-p-temp-stk-lr-apply-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $+$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}))\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-proper-formalsp} \\  
\=\+{\rm{lr-proper-formalsp}}\,({\it{programs\/}})\index{lr-proper-formalsp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{programs\/}}) \\ 
{\bf then }\=\+(\=\+({\rm{logic-fname}}\,({\rm{name}}\,({\rm{car}}\,({\it{programs\/}}))\index{name})\index{logic-fname} $=$ {\tt{'}}{\tt{quote}}) \\ 
$\vee$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{car}}\,({\it{programs\/}}))\index{formal-vars})\index{length} \\ 
$=$$\;\;\;\;${\rm{arity}}\,({\rm{logic-fname}}\,({\rm{name}}\,({\rm{car}}\,({\it{programs\/}}))\index{name})\index{logic-fname})\index{arity})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\it{programs\/}}))\index{lr-proper-formalsp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-formal-vars-lr-proper-formalsp-arity \\ \index{length-formal-vars-lr-proper-fo!rmalsp-arity}
\=\+(\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\rm{logic-fname}}\,({\it{name\/}})\index{logic-fname} $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\it{programs\/}})\index{lr-proper-formalsp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{formal-vars})\index{length} \\ 
$=$$\;\;\;\;${\rm{arity}}\,({\rm{logic-fname}}\,({\it{name\/}})\index{logic-fname})\index{arity})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  arity-formals-not-quote \\ \index{arity-formals-not-quote}
\=\+({\rm{formals}}\,({\it{name\/}}) $\wedge$ ({\it{name\/}} $\not=$ {\tt{'}}{\tt{quote}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{arity}}\,({\it{name\/}})\index{arity} $=$ {\rm{length}}\,({\rm{formals}}\,({\it{name\/}}))\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-formalsp-lr-compile-programs \\ \index{lr-proper-formalsp-lr-compile-p!rograms}
\=\+{\rm{s-programs-okp}}\,({\it{programs\/}})\index{s-programs-okp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{lr-compile-programs}}\,({\it{programs\/}}, {\it{table\/}})\index{lr-compile-programs})\index{lr-proper-formalsp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable arity-formals-not-quote.

\addvspace{18pt}


\noindent{\sc Event}:   Disable lr-proper-formalsp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-funcall-not-caar-prog-seg \\ \index{lr-programs-properp-funcall-not!-caar-prog-seg}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname} $=$ {\rm{caar}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-funcall \\ \index{length-p-temp-stk-lr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-temp-stk})\index{length}))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $+$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}))\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-temp-stk})\index{length} $=$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval \\ \index{length-p-temp-stk-lr-eval}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\rm{length}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list})\index{length} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} \\ 
{\bf else }{\tt{1}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval-flag-list \\ \index{length-p-temp-stk-lr-eval-flag-!list}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{s-expr-list}}\,({\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos})\index{s-expr-list})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  reverse-reverse-alt \\ \index{reverse-reverse-alt}
{\rm{reverse}}\,({\rm{reverse}}\,({\it{l\/}})\index{reverse})\index{reverse} $=$ {\rm{plist}}\,({\it{l\/}})\index{plist}
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  s-good-statep-length-cdr-s-expr-funcall \\ \index{s-good-statep-length-cdr-s-expr!-funcall}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) $\vee$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{length} $=$ {\rm{arity}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{arity})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-temps-make-temps-pair-temps \\ \index{lr-s-similar-temps-make-temps-p!air-temps}
{\rm{lr-s-similar-temps}}\,(\=\+{\rm{make-temps-entries}}\,({\it{temp-list\/}})\index{make-temps-entries}, \\ 
{\rm{pair-temps-with-initial-values}}\,({\rm{lr-make-temp-var-dcls}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{lr-make-temp-var-dcls})\index{pair-temps-with-initial-values}, \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-temps-lr-funcall \\ \index{lr-s-similar-temps-lr-funcall}
{\rm{lr-s-similar-temps}}\,(\=\+{\rm{make-temps-entries}}\,({\rm{s-temp-list}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{progs\/}}))\index{s-temp-list})\index{make-temps-entries}, \\ 
{\rm{pair-temps-with-initial-values}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{lr-compile-programs}}\,(\=\+{\it{progs\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-programs})\-)\index{temp-var-dcls})\index{pair-temps-with-initial-values}, \\ 
{\it{data-seg\/}})\-\index{lr-s-similar-temps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-s-similar-const-table \\ \index{lr-eval-preserves-lr-s-similar-!const-table}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table1\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table2\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-s-similar-const-table})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table2\/}}, {\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-funcall \\ \index{lr-s-similar-statesp-lr-funcall}
\=\+{\bf let }\=\+{\it{pos\/}}{\bf $\;$ be$\;\;$}{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{values\/}}, \\ 
{\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{formals\/}} $=$ {\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-formals}) \\ 
$\wedge$$\;\;\;\;$({\it{lr-eval\/}} $=$ {\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}) \\ 
$\wedge$$\;\;\;\;$({\it{values\/}} $=$ {\rm{s-ans}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{pairlist}}\,({\it{formals\/}}, {\it{values\/}}), \\ 
{\rm{make-temps-entries}}\,({\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-temp-list})\index{make-temps-entries}, \\ 
{\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-params-lr-set-expr-lr-pop-cstk \\ \index{lr-params-lr-set-expr-lr-pop-cst!k}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-params}}\,(\=\+{\it{frame\/}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}})\index{lr-eval})\index{lr-pop-cstk}, \\ 
{\it{l\/}}, \\ 
{\it{pos\/}})\-\index{lr-set-expr})\-\index{lr-params} \\ 
$=$$\;\;\;\;${\rm{lr-params}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-params})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-temps-lr-set-expr-lr-pop-cstk \\ \index{lr-temps-lr-set-expr-lr-pop-cst!k}
\=\+(\=\+({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-temps}}\,(\=\+{\it{frame\/}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}})\index{lr-eval})\index{lr-pop-cstk}, \\ 
{\it{l\/}}, \\ 
{\it{pos\/}})\-\index{lr-set-expr})\-\index{lr-temps} \\ 
$=$$\;\;\;\;${\rm{lr-temps}}\,({\it{frame\/}}, {\it{l\/}})\index{lr-temps})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-s-similar-params \\ \index{lr-eval-preserves-lr-s-similar-p!arams}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-s-similar-params})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\it{s-params\/}}, \\ 
{\it{lr-params\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{lr-s-similar-params}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-s-similar-temps \\ \index{lr-eval-preserves-lr-s-similar-te!mps}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-s-similar-temps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\it{s-temps\/}}, {\it{lr-temps\/}}, {\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-s-similar-temps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-set-expr-lr-pop-cstk \\ \index{lr-s-similar-statesp-lr-set-exp!r-lr-pop-cstk}
\=\+{\bf let }\=\+{\it{funcall\/}}{\bf $\;$ be$\;\;$}{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-funcall}, \\ 
{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s-eval\/}})\index{s-temps}, {\it{lr-eval\/}}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{funcall\/}}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s-eval\/}})\index{s-temps}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\it{funcall\/}}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{lr-pop-cstk}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\-\index{lr-set-expr}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-restn \\ \index{popn-restn}
({\rm{length}}\,({\it{list\/}})\index{length} $\not<$ {\it{n\/}}) $\rightarrow$ ({\rm{popn}}\,({\it{n\/}}, {\it{list\/}})\index{popn} $=$ {\rm{restn}}\,({\it{n\/}}, {\it{list\/}})\index{restn})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-lr-funcall \\ \index{lr-check-result-lr-funcall}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}, \\ 
{\it{pos\/}}{\bf $\;$ be$\;\;$}{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}, \\ 
{\it{s-eval\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{s-eval\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s-eval\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-funcall})\index{p-temp-stk})\-\index{lr-check-result})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result}\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable popn-restn.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-flag-list-opener-1 \\ \index{lr-eval-s-$>$lr1-flag-list-opene!r-1}
\=\+(\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} \\ 
$=$$\;\;\;\;${\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-eval}}\,({\bf{t}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-flag-list-opener-2 \\ \index{lr-eval-s-$>$lr1-flag-list-opene!r-2}
\=\+(\=\+{\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list})) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval} $=$ {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-result-lr-proper-heapp \\ \index{lr-check-result-lr-proper-heapp}
\=\+{\rm{lr-check-result}}\,({\it{flag\/}}, {\it{value\/}}, {\it{temp-stk\/}}, {\it{data-seg\/}}, {\it{orig-temp-stk\/}})\index{lr-check-result} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-lr-set-error \\ \index{lr-programs-properp-lr-set-erro!r}
\=\+{\rm{lr-programs-properp}}\,({\rm{lr-set-error}}\,({\it{l\/}}, {\it{error\/}})\index{lr-set-error}, {\it{table\/}})\index{lr-programs-properp} \\ 
$=$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-lr-pop-tstk-lr-eval-flag-t \\ \index{p-psw-lr-pop-tstk-lr-eval-flag-t}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-pop-tstk}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok})\index{lr-pop-tstk})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-leaves-listp-p-temp-stk-lr-set-pos \\ \index{lr-eval-leaves-listp-p-temp-stk!-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-lr-if-ok-p-psw-run \\ \index{p-psw-run-lr-if-ok-p-psw-run}
({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) $\rightarrow$ ({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-lr-if-ok \\ \index{lr-s-similar-statesp-lr-if-ok}
\=\+{\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$=$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\it{s-params\/}}, {\it{s-temps\/}}, {\it{l\/}}, {\it{table\/}})\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-equivalence \\ \index{lr-eval-s-eval-equivalence}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-temps}, \\ 
{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}}$\;\;${\bf then }{\tt{'}}{\tt{list}} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-, \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-psw-run-lr-if-ok-p-psw-run.

\addvspace{18pt}

\begin{verbatim}; ------------------------------------------------------------
; was lr-eval5.events
; ------------------------------------------------------------


;; The following define functions for each SUBR that tell how many
;; resources are used.  In the computations of the maximum control
;; stack size we break out the parts needed for formals and
;; temporaries and building a new control-stack frame.  For example in
;; CONS we have (plus 2 0 1 ...), the 2 is for building a new frame,
;; the 0 is for the formals (CONS leaves its args on the temp stack)
;; and 1 for temporaries.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-apply-car-r} \\  
{\rm{s-apply-car-r}}\,({\it{s\/}})\index{s-apply-car-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{1}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-apply-cdr-r} \\  
{\rm{s-apply-cdr-r}}\,({\it{s\/}})\index{s-apply-cdr-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{1}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{verbatim};; CONS takes two implicit args
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-apply-cons-r} \\  
{\rm{s-apply-cons-r}}\,({\it{s\/}})\index{s-apply-cons-r} $=$ {\rm{list}}\,({\tt{2}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{1}} $+$ {\tt{0}}, {\tt{0}}, {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-apply-false-r} \\  
{\rm{s-apply-false-r}}\,({\it{s\/}})\index{s-apply-false-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{verbatim};; FALSEP takes one implicit arg on stack.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-apply-falsep-r} \\  
{\rm{s-apply-falsep-r}}\,({\it{s\/}})\index{s-apply-falsep-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{verbatim};; LISTP takes an implicit arg
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-apply-listp-r} \\  
{\rm{s-apply-listp-r}}\,({\it{s\/}})\index{s-apply-listp-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{verbatim};; NLISTP takes an implicit arg
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-apply-nlistp-r} \\  
{\rm{s-apply-nlistp-r}}\,({\it{s\/}})\index{s-apply-nlistp-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-apply-true-r} \\  
{\rm{s-apply-true-r}}\,({\it{s\/}})\index{s-apply-true-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-apply-truep-r} \\  
{\rm{s-apply-truep-r}}\,({\it{s\/}})\index{s-apply-truep-r} $=$ {\rm{list}}\,({\tt{1}}, {\tt{2}} $+$ {\tt{0}} $+$ {\tt{0}} $+$ {\tt{0}}, {\tt{0}}, {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-apply-subr-r} \\  
\=\+{\rm{s-apply-subr-r}}\,({\it{subr\/}}, {\it{s\/}})\index{s-apply-subr-r} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\it{subr\/}}: \\ 
{\bf case = }{\it{car\/}} \\ 
{\bf then }{\rm{s-apply-car-r}}\,({\it{s\/}})\index{s-apply-car-r} \\ 
{\bf case = }{\it{cdr\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-cdr-r}}\,({\it{s\/}})\index{s-apply-cdr-r} \\ 
{\bf case = }{\it{cons\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-cons-r}}\,({\it{s\/}})\index{s-apply-cons-r} \\ 
{\bf case = }{\it{false\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-false-r}}\,({\it{s\/}})\index{s-apply-false-r} \\ 
{\bf case = }{\it{falsep\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-falsep-r}}\,({\it{s\/}})\index{s-apply-falsep-r} \\ 
{\bf case = }{\it{listp\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-listp-r}}\,({\it{s\/}})\index{s-apply-listp-r} \\ 
{\bf case = }{\it{nlistp\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-nlistp-r}}\,({\it{s\/}})\index{s-apply-nlistp-r} \\ 
{\bf case = }{\it{true\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-true-r}}\,({\it{s\/}})\index{s-apply-true-r} \\ 
{\bf case = }{\it{truep\/}} \\ 
{\bf $\;\;$then }{\rm{s-apply-truep-r}}\,({\it{s\/}})\index{s-apply-truep-r} \\ 
{\bf otherwise }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}})$\;${\bf  endcase}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{max-r} \\  
\=\+{\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\rm{max}}\,({\rm{car}}\,({\it{list1\/}}), {\rm{car}}\,({\it{list2\/}})), \\ 
{\rm{max}}\,({\rm{cadr}}\,({\it{list1\/}}), {\rm{cadr}}\,({\it{list2\/}})), \\ 
{\rm{max}}\,({\rm{caddr}}\,({\it{list1\/}}), {\rm{caddr}}\,({\it{list2\/}})), \\ 
{\rm{cadddr}}\,({\it{list1\/}}) $+$ {\rm{cadddr}}\,({\it{list2\/}}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable max-r.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{s-add-temp-r} \\  
\=\+{\rm{s-add-temp-r}}\,({\it{list\/}}, {\it{n\/}})\index{s-add-temp-r} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\it{n\/}} $+$ {\rm{car}}\,({\it{list\/}}), {\rm{cadr}}\,({\it{list\/}}), {\rm{caddr}}\,({\it{list\/}}), {\rm{cadddr}}\,({\it{list\/}}))\-
\end{tabbing}

\begin{verbatim};; S-EVAL-R is somewhat similar to S-EVAL.  It returns a list of four
;; numbers representing.  the maximum temp stack size, maximum ctrl stack
;; size, maximum word size and number of free heap nodes respectively needed
;; to execute the compilation of the S-STATE s in Piton without getting an
;; error.
\end{verbatim}\begin{tabbing}{\sc Definition}:\index{s-eval-r} \\  
\=\+{\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $\not=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{s-pos}}\,({\it{s\/}})\index{s-pos} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }{\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}) \\ 
{\bf then }{\rm{max-r}}\,(\=\+{\rm{s-eval-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r}, \\ 
{\rm{s-add-temp-r}}\,(\=\+{\rm{s-eval-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval}, \\ 
{\it{s\/}}, \\ 
{\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\-\index{s-set-expr}, \\ 
{\it{c\/}})\-\index{s-eval-r}, \\ 
{\tt{1}})\-\index{s-add-temp-r})\-\index{max-r} \\ 
{\bf else }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}})$\;${\bf  endif}\- \\ 
{\bf elseif }{\it{c\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})$\;\;${\bf then }{\rm{list}}\,({\tt{1}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }{\rm{s-expr}}\,({\it{s\/}})\index{s-expr} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{s-err-flag}}\,({\it{test\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{s-ans}}\,({\it{test\/}})\index{s-ans} \\ 
{\bf then }{\rm{max-r}}\,(\=\+{\rm{s-add-temp-r}}\,(\=\+{\rm{s-eval-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-pos}}\,(\=\+{\it{s\/}}, \\ 
{\rm{dv}}\,(\=\+{\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, \\ 
{\tt{1}})\-\index{dv})\-\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-r}, \\ 
{\tt{1}})\-\index{s-add-temp-r}, \\ 
{\rm{s-eval-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\it{test\/}}, \\ 
{\it{s\/}}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{2}})\index{dv})\-\index{s-set-expr}, \\ 
{\it{c\/}})\-\index{s-eval-r})\-\index{max-r} \\ 
{\bf else }{\rm{max-r}}\,(\=\+{\rm{s-add-temp-r}}\,(\=\+{\rm{s-eval-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-pos}}\,(\=\+{\it{s\/}}, \\ 
{\rm{dv}}\,(\=\+{\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, \\ 
{\tt{1}})\-\index{dv})\-\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-r}, \\ 
{\tt{1}})\-\index{s-add-temp-r}, \\ 
{\rm{s-eval-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\it{test\/}}, \\ 
{\it{s\/}}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{3}})\index{dv})\-\index{s-set-expr}, \\ 
{\it{c\/}})\-\index{s-eval-r})\-\index{max-r}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{s-eval-r}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval-r}$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }{\rm{s-eval-r}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval-r} \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }\=\+{\bf if }{\rm{s-temp-setp}}\,({\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-temp-setp}$\;\;${\bf then }{\rm{list}}\,({\tt{2}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf else }{\rm{max-r}}\,(\=\+{\rm{list}}\,({\tt{2}}, {\tt{0}}, {\tt{0}}, {\tt{0}}), \\ 
{\rm{s-eval-r}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval-r})\-\index{max-r}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\rm{list}}\,({\tt{1}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\rm{list}}\,({\tt{1}}, {\tt{0}}, {\tt{0}}, {\tt{0}}) \\ 
{\bf elseif }\=\+{\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{run}}\- \\ 
{\bf then }{\rm{s-eval-r}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval-r} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf then }{\rm{max-r}}\,(\=\+{\rm{s-eval-r}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval-r}, \\ 
{\rm{s-add-temp-r}}\,(\=\+{\rm{s-apply-subr-r}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{s-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,(\=\+{\it{s\/}}, \\ 
{\rm{dv}}\,(\=\+{\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, \\ 
{\tt{1}})\-\index{dv})\-\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval})\-\index{s-apply-subr-r}, \\ 
{\rm{arity}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{arity})\-\index{s-add-temp-r})\-\index{max-r} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{arg-s\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{fstate\/}}{\bf $\;$ be$\;\;$}{\rm{s-fun-call-state}}\,({\it{arg-s\/}}, {\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{s-fun-call-state}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{arg-r\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval-r}}\,({\bf{t}}, {\it{fstate\/}}, {\it{c\/}} $-\;1$)\index{s-eval-r}\- \\ 
{\bf in} \\ 
{\rm{max-r}}\,(\=\+{\rm{s-eval-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-r}, \\ 
{\rm{list}}\,(\=\+{\rm{car}}\,({\it{arg-r\/}}), \\ 
\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-params}}\,({\it{fstate\/}})\index{s-params})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-temps}}\,({\it{fstate\/}})\index{s-temps})\index{length} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\it{arg-r\/}})\-, \\ 
{\rm{caddr}}\,({\it{arg-r\/}}), \\ 
{\rm{cadddr}}\,({\it{arg-r\/}}))\-)\-\index{max-r}$\;${\bf  endlet}\-$\;${\bf  endlet}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\rm{list}}\,({\tt{0}}, {\tt{0}}, {\tt{0}}, {\tt{0}})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-eval-temp-r}$\;\;$
{\rm{s-eval-temp-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r} $=$ {\rm{car}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-eval-ctrl-r}$\;\;$
{\rm{s-eval-ctrl-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r} $=$ {\rm{cadr}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-eval-ws-r}$\;\;$
{\rm{s-eval-ws-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ws-r} $=$ {\rm{caddr}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-eval-heap-r} \\  
{\rm{s-eval-heap-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r} $=$ {\rm{cadddr}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-max-subr-reqs} \\  
\=\+{\sc{s-max-subr-reqs}}\index{s-max-subr-reqs} \\ 
$=$$\;\;\;\;${\rm{max}}\,(\=\+{\rm{log}}\,({\tt{2}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{log}, \\ 
{\rm{max}}\,(\=\+{\rm{log}}\,({\tt{2}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{log}, \\ 
{\rm{max}}\,({\rm{log}}\,({\tt{2}}, {\sc{lr-cdr-offset}}\index{lr-cdr-offset})\index{log}, {\rm{log}}\,({\tt{2}}, {\sc{lr-car-offset}}\index{lr-car-offset})\index{log}))\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-max-subr-reqs.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  numberp-car-cadr-caddr-cadddr-s-apply-subr-r \\ \index{numberp-car-cadr-caddr-cadddr-s!-apply-subr-r}
\=\+({\rm{car}}\,({\rm{s-apply-subr-r}}\,({\it{subr\/}}, {\it{s\/}})\index{s-apply-subr-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\it{subr\/}}, {\it{s\/}})\index{s-apply-subr-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\it{subr\/}}, {\it{s\/}})\index{s-apply-subr-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\it{subr\/}}, {\it{s\/}})\index{s-apply-subr-r}) $\in\;${\bf{N}}${}$)\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-apply-subr-r.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  numberp-max-r \\ \index{numberp-max-r}
\=\+({\rm{car}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{caddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\in\;${\bf{N}}${}$)\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-s-eval-temp-ctrl-ws-heap-r \\ \index{numberp-s-eval-temp-ctrl-ws-heap!-r}
\=\+({\rm{s-eval-temp-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{s-eval-ctrl-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{s-eval-ws-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ws-r} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{s-eval-heap-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r} $\in\;${\bf{N}}${}$)\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-eval-temp-r.

\addvspace{18pt}

\noindent{\sc Event}:   Disable s-eval-ctrl-r.

\addvspace{18pt}

\noindent{\sc Event}:   Disable s-eval-ws-r.

\addvspace{18pt}

\noindent{\sc Event}:   Disable s-eval-heap-r.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{lr-count-free-nodes} \\  
\=\+{\rm{lr-count-free-nodes}}\,({\it{addr\/}}, {\it{node-list\/}}, {\it{data-seg\/}})\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{addr\/}} $\in$ {\it{node-list\/}} \\ 
{\bf then }$1\;+$ {\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{delete}}\,({\it{addr\/}}, {\it{node-list\/}})\index{delete}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-check-resourcesp} \\  
\=\+{\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$=$$\;\;\;\;$(\=\+(\=\+{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $+$ {\rm{s-eval-temp-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r}))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r})\-)\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\rm{s-eval-ws-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ws-r}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-check-resourcesp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-lessp-max-r-car \\ \index{not-lessp-max-r-car}
\=\+({\rm{car}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{car}}\,({\it{list1\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{car}}\,({\it{list2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-max-r-cadr \\ \index{not-lessp-max-r-cadr}
\=\+({\rm{cadr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{cadr}}\,({\it{list1\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{cadr}}\,({\it{list2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-max-r-caddr \\ \index{not-lessp-max-r-caddr}
\=\+({\rm{caddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{caddr}}\,({\it{list1\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{caddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{caddr}}\,({\it{list2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-max-r-cadddr \\ \index{not-lessp-max-r-cadddr}
\=\+({\rm{cadddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{cadddr}}\,({\it{list1\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{cadddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $\not<$ {\rm{cadddr}}\,({\it{list2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-listp-s-expr-list \\ \index{lr-check-resourcesp-listp-s-exp!r-list}
\=\+(\=\+({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\tt{'}}{\tt{list}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\bf{t}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-proper-heapp \\ \index{lr-eval-preserves-lr-proper-heapp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-s-similar-statesp \\ \index{lr-eval-preserves-lr-s-similar-!statesp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-temps}, \\ 
{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-flag-run-flag-t-subsetp-s-collect-all-temps \\ \index{s-eval-flag-run-flag-t-subsetp-!s-collect-all-temps}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,({\it{flag\/}}, {\rm{s-expr}}\,({\it{s\/}})\index{s-expr}, {\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{subsetp}}\,(\=\+{\rm{s-collect-all-temps}}\,({\it{flag\/}}, {\rm{s-expr}}\,({\it{s\/}})\index{s-expr})\index{s-collect-all-temps}, \\ 
{\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-temps})\index{temp-alist-to-set})\-\index{subsetp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-flag-run-flag-t-s-check-temps-setp \\ \index{s-eval-flag-run-flag-t-s-check-te!mps-setp}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,({\it{flag\/}}, {\rm{s-expr}}\,({\it{s\/}})\index{s-expr}, {\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-temps})\index{s-check-temps-setp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-length-bindings-car-p-ctrl-stk \\ \index{lr-eval-preserves-length-bindin!gs-car-p-ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{bindings})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-preserves-p-ctrl-stk-size \\ \index{lr-eval-s-$>$lr1-preserves-p-ct!rl-stk-size}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval-flag-not-list \\ \index{length-p-temp-stk-lr-eval-flag-!not-list}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\tt{1}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-proper-heapp-lr-set-pos \\ \index{lr-eval-preserves-lr-proper-heapp!-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-data-segment})\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-s-similar-statesp-lr-set-pos \\ \index{lr-eval-preserves-lr-s-similar-!statesp-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-temps}, \\ 
{\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-flag-t-s-ans-f-lr-set-pos \\ \index{lr-eval-s-eval-flag-t-s-ans-f-l!r-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{s-ans}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}) \\ 
$=$$\;\;\;\;${\sc{lr-f-addr}}\index{lr-f-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-flag-t-s-ans-non-f-lr-set-pos \\ \index{lr-eval-s-eval-flag-t-s-ans-non!-f-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-ans}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}) \\ 
$\not=$$\;\;\;\;${\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  subsetp-not-member-both \\ \index{subsetp-not-member-both}
(({\it{addr\/}} $\not\in$ {\it{set2\/}}) $\wedge$ {\rm{subsetp}}\,({\it{set1\/}}, {\it{set2\/}})\index{subsetp}) $\rightarrow$ ({\it{addr\/}} $\not\in$ {\it{set1\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-deposit-free-ptr \\ \index{lr-count-free-nodes-deposit-free!-ptr}
\=\+({\rm{adpp}}\,({\tt{'}}{\tt{(}}{\tt{free-ptr}}{\tt{ .\ }}{\tt{0}}{\tt{)}}, {\it{data-seg\/}})\index{adpp} $\wedge$ {\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\it{addr\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,({\it{addr\/}}, {\it{node-list\/}}, {\it{data-seg\/}})\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-deposit-non-ref-count \\ \index{lr-count-free-nodes-deposit-non!-ref-count}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{addr2\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\it{addr1\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{add-addr}}\,({\it{addr2\/}}, {\it{offset\/}})\index{add-addr}, {\it{data-seg\/}})\index{deposit})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,({\it{addr1\/}}, {\it{node-list\/}}, {\it{data-seg\/}})\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-deposit-lr-nodep \\ \index{lr-count-free-nodes-deposit-lr-!nodep}
\=\+({\rm{lr-nodep}}\,({\it{addr2\/}}, {\it{data-seg\/}})\index{lr-nodep} $\wedge$ {\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,({\it{addr1\/}}, {\it{node-list\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,({\it{addr1\/}}, {\it{node-list\/}}, {\it{data-seg\/}})\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-delete-deposit \\ \index{lr-count-free-nodes-delete-depo!sit}
\=\+(\=\+({\it{addr1\/}} $\not\in$ {\it{node-list\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\it{addr2\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{ref-count\/}}, \\ 
{\rm{add-addr}}\,(\=\+{\it{addr1\/}}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,({\it{addr2\/}}, {\it{node-list\/}}, {\it{data-seg\/}})\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-max-addr-lr-free-list-nodes \\ \index{lr-count-free-nodes-max-addr-lr!-free-list-nodes}
\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg1\/}})\index{lr-free-list-nodes}, \\ 
{\it{data-seg2\/}})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\tt{0}}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-lr-free-list-nodes-p-run-cons \\ \index{lr-count-lr-free-list-nodes-p-r!un-cons}
\=\+{\bf let }\=\+{\it{dds\/}}{\bf $\;$ be$\;\;$}{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{5}})\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\it{any1\/}}, \\ 
{\it{any2\/}})\-, \\ 
{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch} $\not=$ {\it{max-addr\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+($1\;+$ {\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{dds\/}})\index{lr-free-list-nodes}, \\ 
{\it{dds\/}})\-\index{lr-count-free-nodes}) \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-p-max-node-fetch-fp-addr-not-errorp-p-run-cons \\ \index{not-p-max-node-fetch-fp-addr-not!-errorp-p-run-cons}
\=\+(\=\+(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\it{max-node\/}} $=$ {\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cons}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch} $\not=$ {\it{max-node\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-comp-body-lr-compile-programs \\ \index{get-comp-body-lr-compile-progra!ms}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{lr-return-pc}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-return-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, \\ 
{\rm{comp-programs}}\,({\rm{lr-compile-programs}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\it{table\/}})\-\index{lr-compile-programs})\index{comp-programs})\-)\index{program-body})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\rm{offset}}\,({\rm{lr-return-pc}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-return-pc})\index{offset})\index{lr-make-label}, \\ 
{\bf{nil}}, \\ 
\=\+{\bf if }{\rm{definedp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp} \\ 
{\bf then }{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
{\bf else }{\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname})$\;${\bf  endif}\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-lr-free-list-nodes-p-run-subr \\ \index{lr-count-lr-free-list-nodes-p-r!un-subr}
\=\+{\bf let }\=\+{\it{p\/}}{\bf $\;$ be$\;\;$}{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-return-pc})\-\index{p-set-pc}, \\ 
{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{p-run-subr}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\it{p\/}})\index{p-run-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\it{p\/}})\-\index{p-run-subr})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\it{p\/}})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\it{p\/}})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{s-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval})\-\index{s-apply-subr-r}))\-)\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-lr-free-list-nodes-lr-apply-subr \\ \index{lr-count-lr-free-list-nodes-lr-!apply-subr}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}) \\ 
$\wedge$$\;\;\;\;$({\it{s-eval-size\/}} $=$ {\rm{s-eval-heap-r}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval-heap-r}) \\ 
$\wedge$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\it{s-eval-size\/}})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\it{s-eval-size\/}} \\ 
$+$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{s-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval})\-\index{s-apply-subr-r}) \\ 
$+$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-apply-subr})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-apply-subr})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{new-l\/}})\-\index{lr-apply-subr})\index{p-data-segment})\-\index{lr-count-free-nodes})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-equivalence-lr-check-result-flag-list \\ \index{lr-eval-s-eval-equivalence-lr-c!heck-result-flag-list}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\rm{s-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment}, \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-\index{lr-check-result}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cadddr-max-r \\ \index{cadddr-max-r}
{\rm{cadddr}}\,({\rm{max-r}}\,({\it{list1\/}}, {\it{list2\/}})\index{max-r}) $=$ ({\rm{cadddr}}\,({\it{list1\/}}) $+$ {\rm{cadddr}}\,({\it{list2\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-heap-r-lr-count-lr-free-list-nodes \\ \index{lr-eval-s-eval-heap-r-lr-count-!lr-free-list-nodes}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-list-set-expr-nx \\ \index{lr-check-resourcesp-list-set-exp!r-nx}
\=\+(\=\+{\rm{listp}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\tt{'}}{\tt{list}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-expr}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval}, {\it{s\/}}, {\rm{nx}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos})\index{nx})\index{s-set-expr}, \\ 
{\rm{lr-eval}}\,({\bf{t}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{c\/}})\-\index{lr-check-resourcesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-lr-push-tstk-flag-run \\ \index{lr-check-resourcesp-lr-push-tst!k-flag-run}
\=\+(\=\+{\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}, {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})))\-\index{lr-push-tstk})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-s-set-pos-if-cadr \\ \index{lr-check-resourcesp-s-set-pos-i!f-cadr}
\=\+(\=\+{\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-subsetp-s-collect-temp-alist-s-set-pos-if \\ \index{s-eval-subsetp-s-collect-temp-a!list-s-set-pos-if}
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{subsetp}}\,(\=\+{\rm{s-collect-all-temps}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{s-collect-all-temps}, \\ 
{\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\rm{s-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval})\index{s-temps})\index{temp-alist-to-set})\-\index{subsetp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-pop-tstk-lr-eval-flag-t \\ \index{length-p-temp-stk-lr-pop-tstk-l!r-eval-flag-t}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-pop-tstk}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\it{l\/}}, \\ 
{\it{table\/}})\-\index{s-$>$lr1}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok})\index{lr-pop-tstk})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-$>$lr1-preserves-p-ctrl-stk-size-lr-set-pos \\ \index{lr-eval-s-$>$lr1-preserves-p-ct!rl-stk-size-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-lr-pop-tstk-lr-eval-1 \\ \index{lr-check-resourcesp-lr-pop-tstk!-lr-eval-1}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-ans}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval}, \\ 
{\it{s\/}}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{2}})\index{dv})\-\index{s-set-expr}, \\ 
{\rm{lr-pop-tstk}}\,({\it{lr-eval\/}})\index{lr-pop-tstk}, \\ 
{\it{c\/}})\-\index{lr-check-resourcesp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-lr-pop-tstk-lr-eval-2 \\ \index{lr-check-resourcesp-lr-pop-tstk!-lr-eval-2}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{s-ans}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-ans}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-set-expr}}\,(\=\+{\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval}, \\ 
{\it{s\/}}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{3}})\index{dv})\-\index{s-set-expr}, \\ 
{\rm{lr-pop-tstk}}\,({\it{lr-eval\/}})\index{lr-pop-tstk}, \\ 
{\it{c\/}})\-\index{lr-check-resourcesp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-s-temp-eval \\ \index{lr-check-resourcesp-s-temp-eval}
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-s-temp-test \\ \index{lr-check-resourcesp-s-temp-test}
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{s-temp-setp}}\,({\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-temp-setp}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-do-temp-fetch-lr-check-resourcesp-temp-test \\ \index{lr-do-temp-fetch-lr-check-resou!rcesp-temp-test}
\=\+(\=\+{\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}))\- \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{s-temp-setp}}\,({\rm{cadr}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-temp-setp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-push-tstk-lr-check-resourcesp-quote \\ \index{lr-push-tstk-lr-check-resourcesp!-quote}
\=\+(\=\+{\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-push-tstk}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-expr}))\-\index{lr-push-tstk})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-funcall \\ \index{lr-check-resourcesp-funcall}
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-s-eval-temp-ctrl-ws-heap-r-opened \\ \index{numberp-s-eval-temp-ctrl-ws-heap!-r-opened}
\=\+({\rm{car}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadr}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{caddr}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r}) $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cadddr}}\,({\rm{s-eval-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-r}) $\in\;${\bf{N}}${}$)\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-1-not-zerop-exp \\ \index{lessp-1-not-zerop-exp}
(({\it{m\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\tt{1}} $<$ {\it{n\/}})) $\rightarrow$ ({\tt{1}} $<$ {\rm{exp}}\,({\it{n\/}}, {\it{m\/}})\index{exp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-1-not-zerop-log \\ \index{lessp-1-not-zerop-log}
(({\tt{1}} $<$ {\it{c\/}}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$)) $\rightarrow$ (({\rm{log}}\,({\it{c\/}}, {\it{n\/}})\index{log} $<$ {\tt{1}}) $=$ ({\it{n\/}} $<$ {\tt{1}}))
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-18} \\  
\=\+{\rm{induct-hint-18}}\,({\it{c\/}}, {\it{n\/}}, {\it{m\/}})\index{induct-hint-18} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{c\/}} $<$ {\tt{2}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{m\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-18}}\,({\it{c\/}}, {\it{n\/}} $\div$ {\it{c\/}}, {\it{m\/}} $-\;1$)\index{induct-hint-18}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  times-quotient-lessp-fact-1 \\ \index{times-quotient-lessp-fact-1}
\=\+(({\it{c\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{m\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(({\it{n\/}} $<$ ({\it{c\/}} $*$ {\it{m\/}})) $=$ (({\it{n\/}} $\div$ {\it{c\/}}) $<$ {\it{m\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  exp-log-lessp-fact-1 \\ \index{exp-log-lessp-fact-1}
\=\+(({\tt{1}} $<$ {\it{c\/}}) $\wedge$ ({\it{n\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{m\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(({\it{n\/}} $<$ {\rm{exp}}\,({\it{c\/}}, {\it{m\/}})\index{exp}) $=$ ({\rm{log}}\,({\it{c\/}}, {\it{n\/}})\index{log} $<$ ($1\;+$ {\it{m\/}})))\-
\end{tabbing}


\noindent{\sc Event}:   Disable times-quotient-lessp-fact-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  adpp-untag-add-addr-offset-car \\ \index{adpp-untag-add-addr-offset-car}
\=\+(\=\+{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-car-offset}}\index{lr-car-offset}))\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-add-addr-offset-cdr \\ \index{adpp-untag-add-addr-offset-cdr}
\=\+(\=\+{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-cons-tag}}\index{lr-cons-tag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-cdr-offset}}\index{lr-cdr-offset}))\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  exp-log-2-lessp-add1-fact-1 \\ \index{exp-log-2-lessp-add1-fact-1}
(($1\;+$ {\it{n\/}}) $<$ {\rm{exp}}\,({\tt{2}}, {\it{m\/}})\index{exp}) $=$ ({\rm{log}}\,({\tt{2}}, $1\;+$ {\it{n\/}})\index{log} $<$ ($1\;+$ {\it{m\/}}))
\end{tabbing}

\begin{verbatim};; The P-TEST-BOOL-AND-JUMP cause a lot of case splits after being opened
;; and the result rewritten with P-OBJECTP-TYPE, so we prove two simple
;; lemmas and disable it, this should hopefully speed up the proof.
\end{verbatim}\begin{tabbing}{\sc Theorem}:  p-test-bool-and-jump-okp-t-cons-bool-t \\ \index{p-test-bool-and-jump-okp-t-cons!-bool-t}
\=\+{\rm{p-test-bool-and-jump-okp}}\,(\=\+{\rm{list}}\,({\it{ins-name\/}}, {\tt{'}}{\tt{t}}, {\it{label\/}}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{cons}}\,({\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}, {\it{temp-stk\/}}), \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\bf{t}}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-bool-and-jump-okp-f-cons-bool-t \\ \index{p-test-bool-and-jump-okp-f-cons!-bool-t}
\=\+{\rm{p-test-bool-and-jump-okp}}\,(\=\+{\rm{list}}\,({\it{ins-name\/}}, {\tt{'}}{\tt{f}}, {\it{label\/}}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{cons}}\,({\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{t}}{\tt{)}}, {\it{temp-stk\/}}), \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\bf{t}}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-bool-and-jump-okp-t-cons-bool-f \\ \index{p-test-bool-and-jump-okp-t-cons!-bool-f}
\=\+{\rm{p-test-bool-and-jump-okp}}\,(\=\+{\rm{list}}\,({\it{ins-name\/}}, {\tt{'}}{\tt{t}}, {\it{label\/}}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{cons}}\,({\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, {\it{temp-stk\/}}), \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\bf{t}}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-test-bool-and-jump-okp-f-cons-bool-f \\ \index{p-test-bool-and-jump-okp-f-cons!-bool-f}
\=\+{\rm{p-test-bool-and-jump-okp}}\,(\=\+{\rm{list}}\,({\it{ins-name\/}}, {\tt{'}}{\tt{f}}, {\it{label\/}}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{cons}}\,({\tt{'}}{\tt{(}}{\tt{bool}}{\tt{ }}{\tt{f}}{\tt{)}}, {\it{temp-stk\/}}), \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-test-bool-and-jump-okp} \\ 
$=$$\;\;\;\;${\bf{t}}\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-test-bool-and-jump-okp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-car-lr-check-resourcesp \\ \index{p-psw-run-run-car-lr-check-reso!urcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{car}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{car}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{car}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{car}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{car}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{car}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{car}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-cdr-lr-check-resourcesp \\ \index{p-psw-run-run-cdr-lr-check-reso!urcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cdr}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cdr}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cdr}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cdr}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cdr}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{cdr}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{cdr}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-plus-remainder-0-fact \\ \index{lessp-plus-remainder-0-fact}
\=\+(\=\+(({\it{offset1\/}} ${}${\bf{mod}}${}$ {\it{max\/}}) $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$(({\it{offset2\/}} ${}${\bf{mod}}${}$ {\it{max\/}}) $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\it{max\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{offset1\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset2\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$((({\it{n\/}} $+$ {\it{offset1\/}}) $<$ {\it{offset2\/}}) $=$ ({\it{offset1\/}} $<$ {\it{offset2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-lessp-plus-fact \\ \index{lr-boundary-nodep-lessp-plus-fa!ct}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr1\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\it{n\/}} $+$ {\rm{offset}}\,({\it{addr1\/}})\index{offset}) $<$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}) \\ 
$=$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $<$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-add-addr-lr-nodep-not-max-addr \\ \index{adpp-untag-add-addr-lr-nodep-not!-max-addr}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-add-addr-offset-on-free-listp \\ \index{adpp-untag-add-addr-offset-on-f!ree-listp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\tt{1}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{add-addr}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, {\it{n\/}})\index{add-addr})\index{untag}, {\it{data-seg\/}})\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-cons-lr-check-resourcesp \\ \index{p-psw-run-run-cons-lr-check-res!ourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cons}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cons}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cons}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cons}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{cons}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{cons}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{cons}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-false-lr-check-resourcesp \\ \index{p-psw-run-run-false-lr-check-re!sourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{false}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{false}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{false}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{false}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{false}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{false}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{false}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-falsep-lr-check-resourcesp \\ \index{p-psw-run-run-falsep-lr-check-re!sourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{falsep}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{falsep}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{falsep}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{falsep}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{falsep}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{falsep}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{falsep}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-listp-lr-check-resourcesp \\ \index{p-psw-run-run-listp-lr-check-re!sourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{listp}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{listp}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{listp}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{listp}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{listp}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{listp}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{listp}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-nlistp-lr-check-resourcesp \\ \index{p-psw-run-run-nlistp-lr-check-re!sourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{nlistp}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{nlistp}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{nlistp}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{nlistp}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{nlistp}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{nlistp}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{nlistp}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-true-lr-check-resourcesp \\ \index{p-psw-run-run-true-lr-check-res!ourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{true}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{true}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{true}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{true}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{true}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{true}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{true}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-run-truep-lr-check-resourcesp \\ \index{p-psw-run-run-truep-lr-check-re!sourcesp}
\=\+(\=\+{\rm{lr-check-result}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans}, \\ 
{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{orig-temp-stk\/}})\-\index{lr-check-result} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{truep}}{\tt{)}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{new-l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{truep}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{new-l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{cadr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{truep}}, {\it{new-s\/}})\index{s-apply-subr-r}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-word-size}}\,({\it{new-l\/}})\index{p-word-size} \\ 
$\not<$$\;\;\;\;${\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{truep}}, {\it{new-s\/}})\index{s-apply-subr-r})))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{cadddr}}\,({\rm{s-apply-subr-r}}\,({\tt{'}}{\tt{truep}}, {\it{new-s\/}})\index{s-apply-subr-r}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\tt{'}}{\tt{truep}})\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{s-ans}}\,({\it{new-s\/}})\index{s-ans})\index{length} $=$ {\rm{arity}}\,({\tt{'}}{\tt{truep}})\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, \\ 
{\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\-\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-last \\ \index{length-last}
{\rm{listp}}\,({\it{l\/}}) $\rightarrow$ ({\rm{length}}\,({\rm{last}}\,({\it{l\/}})\index{last})\index{length} $=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-plus-lessp-fact \\ \index{equal-plus-lessp-fact}
(({\it{x\/}} $+$ {\it{z\/}}) $=$ {\it{y\/}}) $\rightarrow$ (({\it{y\/}} $<$ ({\it{n\/}} $+$ {\it{x\/}})) $=$ ({\it{z\/}} $<$ {\it{n\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-lr-count-free-nodes-lr-eval-list-lr-set-pos \\ \index{not-lessp-lr-count-free-nodes-l!r-eval-list-lr-set-pos}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$<$$\;\;\;\;${\it{n\/}})\- \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$<$$\;\;\;\;$(\=\+{\rm{s-eval-heap-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-heap-r} \\ 
$+$$\;\;\;\;${\it{n\/}})\-)\-)\-\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable equal-plus-lessp-fact.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-definedp-subrp-runtime-support \\ \index{lr-programs-properp-definedp-su!brp-runtime-support}
\=\+(\=\+($\neg$ {\rm{definedp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-p-run-subr-lr-check-resourcesp \\ \index{p-psw-run-p-run-subr-lr-check-re!sourcesp}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{new-s\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval}, \\ 
{\it{pc\/}}{\bf $\;$ be$\;\;$}{\rm{lr-return-pc}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-return-pc}, \\ 
{\it{r\/}}{\bf $\;$ be$\;\;$}{\rm{s-apply-subr-r}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-apply-subr-r}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{new-s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{table\/}})\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} \\ 
$+$$\;\;\;\;${\rm{arity}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{arity} \\ 
$+$$\;\;\;\;${\rm{car}}\,({\it{r\/}}))\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$({\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} $+$ {\rm{cadr}}\,({\it{r\/}})))\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\rm{max}}\,({\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}, {\rm{caddr}}\,({\it{r\/}}))) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-max-node}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-free-list-nodes}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{cadddr}}\,({\it{r\/}}) \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval-heap-r})\-)\- \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), {\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-programs-properp-definedp-subrp-runtime-support.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-lessp-help-fact \\ \index{not-lessp-help-fact}
(({\it{x\/}} $\not<$ {\it{y\/}}) $\wedge$ ({\it{x\/}} $\not<$ {\it{z\/}})) $\rightarrow$ (({\it{x\/}} $<$ {\rm{max}}\,({\it{y\/}}, {\it{z\/}})) $=$ {\bf{f}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-lr-apply-subr-lr-check-resourcesp \\ \index{p-psw-run-lr-apply-subr-lr-chec!k-resourcesp}
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-apply-subr}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-apply-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-logic-fnames-lr-compile-programs \\ \index{strip-logic-fnames-lr-compile-p!rograms}
\=\+{\rm{strip-logic-fnames}}\,({\rm{lr-compile-programs}}\,({\it{programs\/}}, {\it{const-table\/}})\index{lr-compile-programs})\index{strip-logic-fnames} \\ 
$=$$\;\;\;\;${\rm{strip-logic-fnames}}\,({\it{programs\/}})\index{strip-logic-fnames}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-logic-fnames-cdr-lr-compile-programs \\ \index{strip-logic-fnames-cdr-lr-compi!le-programs}
\=\+{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\rm{lr-compile-programs}}\,({\it{programs\/}}, {\it{const-table\/}})\index{lr-compile-programs}))\index{strip-logic-fnames} \\ 
$=$$\;\;\;\;${\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{programs\/}}))\index{strip-logic-fnames}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-s-$>$lr1-definedp-cdr-s-progs \\ \index{lr-programs-properp-s-$>$lr1-de!finedp-cdr-s-progs}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-programs-okp}}\,({\rm{cdr}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-programs-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, {\rm{cdr}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-programs-okp-formals-not-f \\ \index{s-programs-okp-formals-not-f}
({\rm{s-programs-okp}}\,({\it{progs\/}})\index{s-programs-okp} $\wedge$ ({\it{prog\/}} $\in$ {\it{progs\/}})) $\rightarrow$ ({\rm{s-formals}}\,({\it{prog\/}})\index{s-formals} $\not=$ {\bf{f}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-plus-arity-length-formals \\ \index{not-lessp-plus-arity-length-for!mals}
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\rm{arity}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{arity} $+$ {\it{x\/}}) $<$ {\rm{length}}\,({\rm{formals}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})))\index{length}) \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-make-temp-var-dcls \\ \index{length-lr-make-temp-var-dcls}
{\rm{length}}\,({\rm{lr-make-temp-var-dcls}}\,({\it{temp-alist\/}})\index{lr-make-temp-var-dcls})\index{length} $=$ {\rm{length}}\,({\it{temp-alist\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-make-temp-name-alist-1 \\ \index{length-lr-make-temp-name-alist-!1}
\=\+{\rm{length}}\,({\rm{lr-make-temp-name-alist-1}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist-1})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\it{temp-list\/}})\index{length}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-make-temp-name-alist \\ \index{length-lr-make-temp-name-alist}
{\rm{length}}\,({\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist})\index{length} $=$ {\rm{length}}\,({\it{temp-list\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ctrl-stk-size-0 \\ \index{p-ctrl-stk-size-0}
({\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size} $=$ {\tt{0}}) $=$ ($\neg$ {\rm{listp}}\,({\it{ctrl-stk\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-make-temps-entries \\ \index{length-make-temps-entries}
{\rm{length}}\,({\rm{make-temps-entries}}\,({\it{list\/}})\index{make-temps-entries})\index{length} $=$ {\rm{length}}\,({\it{list\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-ctrl-r-funcall-opener \\ \index{s-eval-ctrl-r-funcall-opener}
\=\+{\bf let }\=\+{\it{arg-s\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{arg-s\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{s-eval-ctrl-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r} \\ 
$=$$\;\;\;\;${\rm{max}}\,(\=\+{\rm{s-eval-ctrl-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-ctrl-r}, \\ 
$1\;+$ ($1\;+$ (\=\+{\rm{length}}\,({\rm{formals}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})))\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-temp-list})\index{length} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{arg-s\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval-ctrl-r})\-))\-)\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-good-statep-formals-assoc-cdr-s-progs \\ \index{s-good-statep-formals-assoc-cdr!-s-progs}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{cdr}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{s-formals}}\,({\rm{assoc}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, {\it{progs\/}}))\index{s-formals} \\ 
$=$$\;\;\;\;${\rm{formals}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-p-ctrl-stk-size-make-p-call-frame \\ \index{not-lessp-p-ctrl-stk-size-make-p!-call-frame}
\=\+{\bf let }\=\+{\it{s-prog\/}}{\bf $\;$ be$\;\;$}{\rm{assoc}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, {\rm{cdr}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})), \\ 
{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-list\/}})\index{length} $=$ {\rm{length}}\,({\rm{s-temp-list}}\,({\it{s-prog\/}})\index{s-temp-list})\index{length}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r})\-)\- \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-max-ctrl-stk-size}}\,({\it{l\/}})\index{p-max-ctrl-stk-size} \\ 
$\not<$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{cons}}\,(\=\+{\rm{make-p-call-frame}}\,(\=\+{\rm{formals}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})), \\ 
{\it{temp-stk\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{pc\/}})\-\index{make-p-call-frame}, \\ 
{\rm{p-ctrl-stk}}\,({\it{lr-eval\/}})\index{p-ctrl-stk})\-)\index{p-ctrl-stk-size})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-0 \\ \index{definedp-0}
{\rm{definedp}}\,({\it{x\/}}, {\tt{0}})\index{definedp} $=$ {\bf{f}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-definedp-user-fname-p-runtime-support-programs \\ \index{not-definedp-user-fname-p-runti!me-support-programs}
$\neg$ {\rm{definedp}}\,({\rm{user-fname}}\,({\it{name\/}})\index{user-fname}, {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  comp-programs-assoc-cons-opener \\ \index{comp-programs-assoc-cons-opener}
\=\+({\rm{user-fname}}\,({\it{name\/}})\index{user-fname} $\not=$ {\it{prog1-name\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\it{name\/}})\index{user-fname}, \\ 
{\rm{comp-programs}}\,({\rm{cons}}\,({\rm{cons}}\,({\it{prog1-name\/}}, {\it{prog1\/}}), {\it{progs\/}}))\index{comp-programs})\- \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\rm{user-fname}}\,({\it{name\/}})\index{user-fname}, {\rm{comp-programs-1}}\,({\it{progs\/}})\index{comp-programs-1}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-lr-funcall-p-psw-run \\ \index{lr-check-resourcesp-lr-funcall-p!-psw-run}
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\-\index{lr-funcall})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-max-arg2 \\ \index{lessp-max-arg2}
{\rm{max}}\,({\it{x\/}}, {\it{y\/}}) $\not<$ {\it{y\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-plus-arity-length-formals-alt \\ \index{not-lessp-plus-arity-length-for!mals-alt}
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(({\it{x\/}} $+$ {\rm{arity}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{arity}) $<$ {\rm{length}}\,({\rm{formals}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})))\index{length}) \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-lr-compile-programs \\ \index{listp-lr-compile-programs}
{\rm{listp}}\,({\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs}) $=$ {\rm{listp}}\,({\it{progs\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  caar-lr-compile-programs \\ \index{caar-lr-compile-programs}
{\rm{listp}}\,({\it{progs\/}}) $\rightarrow$ ({\rm{caar}}\,({\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs}) $=$ {\rm{caar}}\,({\it{progs\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval-lr-funcall \\ \index{length-p-temp-stk-lr-eval-lr-fu!ncall}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{lr-eval\/}})\index{lr-funcall})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ctrl-stk-size-p-ctrl-stk-lr-funcall \\ \index{p-ctrl-stk-size-p-ctrl-stk-lr-f!uncall}
\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;$(\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{formal-vars}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-)\index{formal-vars})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-)\index{temp-var-dcls})\index{length} \\ 
$+$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-s-$>$lr1-definedp-s-progs \\ \index{lr-programs-properp-s-$>$lr1-de!finedp-s-progs}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-programs-okp}}\,({\rm{cdr}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-programs-okp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, {\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-ctrl-heap-temp-ws-s-fun-call-state-opener \\ \index{s-eval-ctrl-heap-temp-ws-s-fun-!call-state-opener}
\=\+{\bf let }\=\+{\it{s-eval\/}}{\bf $\;$ be$\;\;$}{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\it{s-eval\/}})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{s-eval-ctrl-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r} \\ 
$=$$\;\;\;\;${\rm{max}}\,(\=\+{\rm{s-eval-ctrl-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-ctrl-r}, \\ 
\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-formals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\index{user-fname}, \\ 
{\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\-)\index{s-temp-list})\index{length} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval-ctrl-r}\-)\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{s-eval-heap-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-eval-heap-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-heap-r} \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval-heap-r})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{s-eval-temp-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r} \\ 
$=$$\;\;\;\;${\rm{max}}\,(\=\+{\rm{s-eval-temp-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-temp-r}, \\ 
{\rm{s-eval-temp-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval-temp-r})\-)\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{s-eval-ws-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ws-r} \\ 
$=$$\;\;\;\;${\rm{max}}\,(\=\+{\rm{s-eval-ws-r}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval-ws-r}, \\ 
{\rm{s-eval-ws-r}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\it{s-eval\/}}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\it{c\/}} $-\;1$)\-\index{s-eval-ws-r})\-)\-)\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-resourcesp-lr-funcall-s-fun-call-state \\ \index{lr-check-resourcesp-lr-funcall-!s-fun-call-state}
\=\+(\=\+({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-resourcesp}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-fun-call-state}}\,(\=\+{\rm{s-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{s-set-pos}}\,({\it{s\/}}, {\it{pos\/}})\index{s-set-pos}, \\ 
{\it{c\/}})\-\index{s-eval}, \\ 
{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}))\-\index{s-fun-call-state}, \\ 
{\rm{lr-funcall}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-check-resourcesp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-eval-ctrl-heap-temp-ws-s-fun-call-state-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  s-eval-flag-run-car-s-apply-subr-r-not-zero \\ \index{s-eval-flag-run-car-s-apply-sub!r-r-not-zero}
\=\+(\=\+{\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{new-l\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{s-apply-subr-r}}\,(\=\+{\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}), \\ 
{\rm{s-eval}}\,({\tt{'}}{\tt{list}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\-\index{s-apply-subr-r}) \\ 
$\not<$$\;\;\;\;${\tt{1}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval-lr-set-pos-flag-t \\ \index{length-p-temp-stk-lr-eval-lr-set!-pos-flag-t}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\tt{1}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-flag-run-s-eval-temp-r-not-zero \\ \index{s-eval-flag-run-s-eval-temp-r-n!ot-zero}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{s-eval-temp-r}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r} $\not<$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-psw-run-p-psw-lr-if-ok-not-run-check-resourcesp \\ \index{p-psw-run-p-psw-lr-if-ok-not-ru!n-check-resourcesp}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{s-set-pos}}\,({\it{s\/}}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{s-set-pos}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok})\index{p-psw} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\rm{dv}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lr-check-resourcesp-temp-test-bad-max-temp-stk-size \\ \index{not-lr-check-resourcesp-temp-te!st-bad-max-temp-stk-size}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{s-expr}}\,({\it{s\/}})\index{s-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-flag-run \\ \index{lr-eval-s-eval-flag-run}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}, {\rm{s-body}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{table\/}})\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,(\=\+{\it{flag\/}}, \\ 
\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}}$\;\;${\bf then }{\rm{s-expr-list}}\,({\it{s\/}})\index{s-expr-list} \\ 
{\bf else }{\rm{s-expr}}\,({\it{s\/}})\index{s-expr}$\;${\bf  endif}\-, \\ 
{\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\-\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\it{flag\/}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-check-resourcesp}}\,({\it{flag\/}}, {\it{s\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-check-resourcesp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{s-$>$lr1}}\,({\it{s\/}}, {\it{l\/}}, {\it{table\/}})\index{s-$>$lr1}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-lr-compile-body-1 \\ \index{plistp-lr-compile-body-1}
{\rm{plistp}}\,({\it{prog\/}})\index{plistp} $\rightarrow$ {\rm{plistp}}\,({\rm{lr-compile-body}}\,({\it{flag\/}}, {\it{prog\/}}, {\it{temp-alist\/}}, {\it{table\/}})\index{lr-compile-body})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{l-restrict-subrps} \\  
\=\+{\rm{l-restrict-subrps}}\,({\it{flag\/}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\rm{l-restrict-subrps}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}))\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{l-restrict-subrps}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }{\rm{l-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{l-restrict-subrps} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\it{expr\/}})) \\ 
{\bf then }\=\+{\rm{definedp}}\,({\rm{car}}\,({\it{expr\/}}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{l-restrict-subrps}\- \\ 
{\bf elseif }{\rm{body}}\,({\rm{car}}\,({\it{expr\/}}))$\;\;${\bf then }{\rm{l-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{l-restrict-subrps} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{l-restrict-subrps-progs} \\  
\=\+{\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{pnames\/}}) \\ 
{\bf then }\=\+{\rm{l-restrict-subrps}}\,({\bf{t}}, {\rm{body}}\,({\rm{car}}\,({\it{pnames\/}})))\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps-progs}}\,({\rm{cdr}}\,({\it{pnames\/}}))\index{l-restrict-subrps-progs}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}
 
\begin{tabbing}{\sc Definition}:\index{s-restrict-subrps} \\  
\=\+{\rm{s-restrict-subrps}}\,({\it{flag\/}}, {\it{expr\/}})\index{s-restrict-subrps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}))\index{s-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-restrict-subrps}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }\=\+({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{s-restrict-subrps} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }{\rm{s-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-restrict-subrps} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\it{expr\/}})) \\ 
{\bf then }\=\+{\rm{definedp}}\,({\rm{car}}\,({\it{expr\/}}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-restrict-subrps}\- \\ 
{\bf elseif }{\rm{body}}\,({\rm{car}}\,({\it{expr\/}}))$\;\;${\bf then }{\rm{s-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-restrict-subrps} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-restrict-subrps-progs} \\  
\=\+{\rm{s-restrict-subrps-progs}}\,({\it{progs\/}})\index{s-restrict-subrps-progs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{progs\/}}) \\ 
{\bf then }\=\+{\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body})\index{s-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{cdr}}\,({\it{progs\/}}))\index{s-restrict-subrps-progs}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-proper-exprp-plist-temp-list \\ \index{s-proper-exprp-plist-temp-list}
\=\+{\rm{s-proper-exprp}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\rm{plist}}\,({\it{temp-list\/}})\index{plist})\index{s-proper-exprp} \\ 
$=$$\;\;\;\;${\rm{s-proper-exprp}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temp-list\/}})\index{s-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-listp-s-progs-not-s-good-statep \\ \index{not-listp-s-progs-not-s-good-st!atep}
($\neg$ {\rm{listp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})) $\rightarrow$ ($\neg$ {\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-init-heap-contents \\ \index{length-lr-init-heap-contents}
{\rm{length}}\,({\rm{lr-init-heap-contents}}\,({\it{addr\/}}, {\it{size\/}})\index{lr-init-heap-contents})\index{length} $=$ ($1\;+$ ({\it{size\/}} $*$ {\sc{lr-node-size}}\index{lr-node-size}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-cons \\ \index{fetch-cons}
\=\+{\rm{fetch}}\,({\rm{list}}\,({\it{x\/}}, {\rm{cons}}\,({\it{name1\/}}, {\it{n\/}})), {\rm{cons}}\,({\rm{cons}}\,({\it{name2\/}}, {\it{contents\/}}), {\it{rest-data-seg\/}}))\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{name1\/}} $=$ {\it{name2\/}}$\;\;${\bf then }{\rm{get}}\,({\it{n\/}}, {\it{contents\/}})\index{get} \\ 
{\bf else }{\rm{fetch}}\,({\rm{list}}\,({\it{x\/}}, {\rm{cons}}\,({\it{name1\/}}, {\it{n\/}})), {\it{rest-data-seg\/}})\index{fetch}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-cons \\ \index{lr-s-similar-const-table-cons}
\=\+{\rm{lr-s-similar-const-table}}\,({\rm{cons}}\,({\rm{cons}}\,({\it{object\/}}, {\it{addr\/}}), {\it{table\/}}), {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-valp}}\,({\it{object\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-nil \\ \index{lr-s-similar-const-table-nil}
{\rm{lr-s-similar-const-table}}\,({\bf{nil}}, {\it{data-seg\/}})\index{lr-s-similar-const-table}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-init-heap-contents-add1-opener \\ \index{lr-init-heap-contents-add1-opene!r}
\=\+{\rm{lr-init-heap-contents}}\,({\it{addr\/}}, $1\;+$ {\it{size\/}})\index{lr-init-heap-contents} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{lr-new-node}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-init-tag}}\index{lr-init-tag})\index{tag}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag})\-\index{lr-new-node}, \\ 
{\rm{lr-init-heap-contents}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}, {\it{size\/}})\index{lr-init-heap-contents})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-cons \\ \index{deposit-cons}
\=\+{\rm{deposit}}\,(\=\+{\it{object\/}}, \\ 
{\rm{list}}\,({\it{x\/}}, {\rm{cons}}\,({\it{name1\/}}, {\it{n\/}})), \\ 
{\rm{cons}}\,({\rm{cons}}\,({\it{name2\/}}, {\it{contents\/}}), {\it{rest-data-seg\/}}))\-\index{deposit} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{name1\/}} $=$ {\it{name2\/}} \\ 
{\bf then }{\rm{cons}}\,({\rm{cons}}\,({\it{name1\/}}, {\rm{put}}\,({\it{object\/}}, {\it{n\/}}, {\it{contents\/}})\index{put}), {\it{rest-data-seg\/}}) \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{cons}}\,({\it{name2\/}}, {\it{contents\/}}), \\ 
{\rm{deposit}}\,({\it{object\/}}, {\rm{list}}\,({\it{x\/}}, {\rm{cons}}\,({\it{name1\/}}, {\it{n\/}})), {\it{rest-data-seg\/}})\index{deposit})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-cons-pack-opener \\ \index{adpp-cons-pack-opener}
\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{cons}}\,({\rm{pack}}\,({\it{xxx\/}}), {\it{n\/}}), {\rm{cons}}\,({\rm{cons}}\,({\rm{pack}}\,({\it{yyy\/}}), {\it{contents\/}}), {\it{rest\/}}))\index{adpp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{xxx\/}} $=$ {\it{yyy\/}}$\;\;${\bf then }{\it{n\/}} $<$ {\rm{length}}\,({\it{contents\/}})\index{length} \\ 
{\bf else }{\rm{adpp}}\,({\rm{cons}}\,({\rm{pack}}\,({\it{xxx\/}}), {\it{n\/}}), {\it{rest\/}})\index{adpp}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-deposit-a-list \\ \index{fetch-deposit-a-list}
\=\+(({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$) $\wedge$ ({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{listp}}\,({\it{list\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\it{addr1\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{definedp}}\,({\rm{area-name}}\,({\it{addr2\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp} \\ 
{\bf then }\=\+{\bf if }{\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name} \\ 
{\bf then }\=\+{\bf if }\=\+({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\not<$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\it{addr1\/}})\index{offset} \\ 
$<$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $+$ {\rm{length}}\,({\it{list\/}})\index{length}))\-\- \\ 
{\bf then }{\rm{get}}\,({\rm{offset}}\,({\it{addr1\/}})\index{offset} $-$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}, {\it{list\/}})\index{get} \\ 
{\bf else }{\rm{fetch}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{fetch}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{fetch}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{fetch}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-0-lr-0-addr-opener \\ \index{lr-valp-0-lr-0-addr-opener}
\=\+{\rm{lr-valp}}\,({\tt{0}}, {\rm{identity}}\,({\sc{lr-0-addr}}\index{lr-0-addr}), {\it{data-seg\/}})\index{lr-valp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-0-addr}}\index{lr-0-addr})\index{untag}), {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-0-addr}}\index{lr-0-addr}), {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-add1-tag}}\index{lr-add1-tag}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset})\index{add-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch})\index{untag} \\ 
$=$$\;\;\;\;${\tt{0}})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-valp-0-lr-0-addr-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-valp-t-lr-t-addr-opener \\ \index{lr-valp-t-lr-t-addr-opener}
\=\+{\rm{lr-valp}}\,({\bf{t}}, {\rm{identity}}\,({\sc{lr-t-addr}}\index{lr-t-addr}), {\it{data-seg\/}})\index{lr-valp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-t-addr}}\index{lr-t-addr})\index{untag}), {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-t-addr}}\index{lr-t-addr}), {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-true-tag}}\index{lr-true-tag}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-valp-t-lr-t-addr-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-valp-f-lr-f-addr-opener \\ \index{lr-valp-f-lr-f-addr-opener}
\=\+{\rm{lr-valp}}\,({\bf{f}}, {\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}), {\it{data-seg\/}})\index{lr-valp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{untag}), {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}), {\it{data-seg\/}})\index{fetch})\index{untag} $=$ {\sc{lr-false-tag}}\index{lr-false-tag}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-valp-f-lr-f-addr-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-cdr-lr-compile-quote \\ \index{definedp-table-definedp-cdr-lr-!compile-quote}
\=\+{\rm{definedp}}\,({\it{x\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{x\/}}, {\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-car-lr-compile-quote \\ \index{definedp-car-lr-compile-quote}
\=\+{\rm{definedp}}\,({\it{x\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{definedp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{x\/}}, {\it{data-seg\/}})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-car-lr-compile-quote \\ \index{lr-proper-p-areasp-car-lr-compi!le-quote}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-proper-p-areasp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-deposit-a-list \\ \index{length-deposit-a-list}
\=\+{\rm{listp}}\,({\it{list\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})))\index{length} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp} \\ 
{\bf then }\=\+{\bf if }{\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\it{name\/}} \\ 
{\bf then }\=\+{\bf if }\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length} \\ 
$<$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\rm{length}}\,({\it{list\/}})\index{length})\- \\ 
{\bf then }{\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\rm{length}}\,({\it{list\/}})\index{length} \\ 
{\bf else }{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}$\;${\bf  endif}\- \\ 
{\bf else }{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-lr-compile-quote \\ \index{adpp-lr-compile-quote}
\=\+{\rm{adpp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,({\it{addr\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-definedp-area-name-free-ptr \\ \index{adpp-untag-definedp-area-name-f!ree-ptr}
\=\+{\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{identity}}\,({\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}), {\it{data-seg\/}})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-deposit-a-list \\ \index{lr-max-node-deposit-a-list}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{list\/}}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\rm{length}}\,({\it{list\/}})\index{length}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-p-objects-lookup} \\  
\=\+{\rm{all-p-objects-lookup}}\,({\it{list\/}}, {\it{table\/}}, {\it{p\/}})\index{all-p-objects-lookup} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }\=\+{\rm{p-objectp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{list\/}}), {\it{table\/}})), {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{all-p-objects-lookup}}\,({\rm{cdr}}\,({\it{list\/}}), {\it{table\/}}, {\it{p\/}})\index{all-p-objects-lookup}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-all-litatoms-all-p-objectps-lookup \\ \index{proper-p-alistp-all-litatoms-al!l-p-objectps-lookup}
\=\+(\=\+{\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{params\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{all-p-objects-lookup}}\,({\rm{strip-cdrs}}\,({\it{params\/}})\index{strip-cdrs}, {\it{table\/}}, {\it{p\/}})\index{all-p-objects-lookup})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,({\rm{pair-formals-with-addresses}}\,({\it{params\/}}, {\it{table\/}})\index{pair-formals-with-addresses}, {\it{p\/}})\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-cdr-lr-data-seg-table-body \\ \index{definedp-table-definedp-cdr-lr-!data-seg-table-body}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-cdr-lr-data-seg-table-list \\ \index{definedp-table-definedp-cdr-lr-!data-seg-table-list}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-cdr-lr-init-data-seg-table \\ \index{definedp-table-definedp-cdr-lr-i!nit-data-seg-table}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-car-lr-data-seg-table-body \\ \index{definedp-table-definedp-car-lr-!data-seg-table-body}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{data-seg\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{car}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-car-lr-data-seg-table-list \\ \index{definedp-table-definedp-car-lr-!data-seg-table-list}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\it{data-seg\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-lengths-same-signature-car-lr-compile-quote \\ \index{equal-lengths-same-signature-ca!r-lr-compile-quote}
\=\+{\rm{same-signature}}\,({\it{data-seg\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-same-signature-car-lr-compile-quote \\ \index{adpp-same-signature-car-lr-compi!le-quote}
\=\+{\rm{same-signature}}\,({\it{data-seg\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{same-signature} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{adpp}}\,({\it{adp\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{adpp} \\ 
$=$$\;\;\;\;${\rm{adpp}}\,({\it{adp\/}}, {\it{data-seg\/}})\index{adpp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-compile-quote-helper \\ \index{same-signature-car-lr-compile-q!uote-helper}
\=\+{\bf let }\=\+{\it{pair\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\rm{car}}\,({\it{object\/}}), {\rm{cdr}}\,({\it{object\/}})), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\rm{car}}\,({\it{pair\/}}))\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg\/}}, {\rm{car}}\,({\it{pair\/}}))\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{car}}\,({\it{pair\/}}))\index{fetch})\index{offset} $+$ {\rm{length}}\,({\it{list\/}})\index{length}))\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\it{list\/}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\it{pair\/}}))\-\index{fetch}, \\ 
{\rm{car}}\,({\it{pair\/}}))\-\index{deposit-a-list})\-\index{same-signature}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-compile-quote-generalized \\ \index{same-signature-car-lr-compile-q!uote-generalized}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\index{lr-proper-free-listp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable equal-lengths-same-signature-car-lr-compile-quote.

\addvspace{18pt}

\noindent{\sc Event}:   Disable adpp-same-signature-car-lr-compile-quote.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-car-lr-compile-quote \\ \index{lr-proper-free-listp-car-lr-compi!le-quote}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-proper-free-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-car-lr-compile-quote \\ \index{p-objectp-car-lr-compile-quote}
\=\+(\=\+{\rm{p-objectp}}\,(\=\+{\it{object1\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,(\=\+{\it{object1\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object2\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}), \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-car-lr-data-seg-table-body \\ \index{lr-proper-p-areasp-car-lr-data-!seg-table-body}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{expr\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\index{lr-proper-p-areasp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-compile-quote \\ \index{same-signature-car-lr-compile-q!uote}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-data-seg-table-body \\ \index{same-signature-car-lr-data-seg-t!able-body}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{expr\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\index{lr-proper-free-listp})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable same-signature-car-lr-compile-quote.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-max-node-car-lr-data-seg-table-body \\ \index{lr-max-node-car-lr-data-seg-tab!le-body}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-data-seg-table-list-helper \\ \index{same-signature-car-lr-data-seg-t!able-list-helper}
\=\+{\bf let }\=\+{\it{dst-body\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table-body}}\,({\bf{t}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{same-signature}}\,(\=\+{\rm{car}}\,({\it{dst-body\/}}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\rm{car}}\,({\it{dst-body\/}}), \\ 
{\rm{cdr}}\,({\it{dst-body\/}}))\-\index{lr-data-seg-table-list}))\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\rm{car}}\,({\it{dst-body\/}}), \\ 
{\rm{cdr}}\,({\it{dst-body\/}}))\-\index{lr-data-seg-table-list}))\-\index{same-signature}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-data-seg-table-list \\ \index{same-signature-car-lr-data-seg-t!able-list}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\-\index{same-signature}\-
\end{tabbing}


\noindent{\sc Event}:   Disable same-signature-car-lr-data-seg-table-list-helper.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-car-lr-compile-quote \\ \index{length-car-lr-compile-quote}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-))\index{length} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{data-seg\/}})))\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-car-lr-compile-quote \\ \index{lr-max-node-car-lr-compile-quote}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-car-lr-init-data-seg-table \\ \index{lr-proper-free-listp-car-lr-init!-data-seg-table}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{lr-proper-free-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-lr-fp-addr-lr-init-data-seg \\ \index{adpp-untag-lr-fp-addr-lr-init-d!ata-seg}
{\rm{adpp}}\,({\rm{identity}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}), {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-lr-init-data-seg \\ \index{lr-max-node-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-lr-fp-addr-lr-init-data-seg \\ \index{fetch-lr-fp-addr-lr-init-data-se!g}
\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-not-lessp-fact-helper \\ \index{lr-boundary-nodep-not-lessp-fact!-helper}
\=\+(({\it{x\/}} $<$ ({\it{y\/}} $*$ {\it{z\/}})) $\wedge$ (({\it{x\/}} ${}${\bf{mod}}${}$ {\it{y\/}}) $=$ {\tt{0}}) $\wedge$ ({\it{x\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(({\it{x\/}} $<$ ({\it{y\/}} $*$ ({\it{z\/}} $-\;1$))) $=$ ({\it{x\/}} $\not=$ ({\it{y\/}} $*$ ({\it{z\/}} $-\;1$))))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-times-difference-fact \\ \index{lessp-times-difference-fact}
\=\+(({\it{z\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{x\/}} $\not\simeq {\tt{0}}$) $\wedge$ (({\it{x\/}} ${}${\bf{mod}}${}$ {\it{y\/}}) $=$ {\tt{0}})) \\ 
$\rightarrow$$\;\;\;\;$((({\it{x\/}} $-$ {\it{y\/}}) $<$ ({\it{y\/}} $*$ ({\it{z\/}} $-\;1$))) $=$ ({\it{x\/}} $<$ ({\it{y\/}} $*$ {\it{z\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-times-difference-node-on-boundaryp-fact \\ \index{lessp-times-difference-node-on-!boundaryp-fact}
\=\+(({\it{heap-size\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not\simeq {\tt{0}}$) $\wedge$ {\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+(((({\rm{offset}}\,({\it{addr\/}})\index{offset} $-\;1$) $-\;1$) $-\;1$) $-\;1$) \\ 
$<$$\;\;\;\;$({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ ({\it{heap-size\/}} $-\;1$)))\- \\ 
$=$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ ({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-lessp-lr-node-size-0 \\ \index{lr-boundary-nodep-lessp-lr-node!-size-0}
\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\rightarrow$$\;\;\;\;$(\=\+((({\rm{offset}}\,({\it{addr\/}})\index{offset} $-\;1$) $=$ {\tt{1}}) $=$ {\bf{f}}) \\ 
$\wedge$$\;\;\;\;$(((({\rm{offset}}\,({\it{addr\/}})\index{offset} $-\;1$) $-\;1$) $=$ {\tt{1}}) $=$ {\bf{f}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-lessp-lr-node-size-1 \\ \index{lr-boundary-nodep-lessp-lr-node!-size-1}
\=\+(({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} $\wedge$ ({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size})) \\ 
$\rightarrow$$\;\;\;\;$(({\it{n\/}} $<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) $=$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\tt{0}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-lessp-lr-node-size-2 \\ \index{lr-boundary-nodep-lessp-lr-node!-size-2}
{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} $\rightarrow$ (({\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\tt{1}}) $=$ {\bf{f}})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-17} \\  
\=\+{\rm{induct-hint-17}}\,({\it{addr1\/}}, {\it{size\/}}, {\it{addr2\/}})\index{induct-hint-17} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{size\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{offset}}\,({\it{addr2\/}})\index{offset} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-17}}\,(\=\+{\rm{add-addr}}\,({\it{addr1\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}, \\ 
{\it{size\/}} $-\;1$, \\ 
{\rm{sub-addr}}\,({\it{addr2\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{sub-addr})\-\index{induct-hint-17}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-cdr-lr-init-heap-contents \\ \index{get-cdr-lr-init-heap-contents}
\=\+(\=\+({\rm{offset}}\,({\it{addr2\/}})\index{offset} $<$ ({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr2\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr1\/}})\index{offset} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\rm{offset}}\,({\it{addr2\/}})\index{offset}, {\rm{cdr}}\,({\rm{lr-init-heap-contents}}\,({\it{addr1\/}}, {\it{heap-size\/}})\index{lr-init-heap-contents}))\index{get} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\rm{add-addr}}\,({\it{addr1\/}}, {\rm{offset}}\,({\it{addr2\/}})\index{offset})\index{add-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-boundary-nodep-lessp-lr-node-size-0.

\addvspace{18pt}

\noindent{\sc Event}:   Disable lr-boundary-nodep-lessp-lr-node-size-1.

\addvspace{18pt}

\noindent{\sc Event}:   Disable lr-boundary-nodep-lessp-lr-node-size-2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  length-cdr-assoc-lr-heap-name-lr-init-data-seg \\ \index{length-cdr-assoc-lr-heap-name-l!r-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})))\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ ({\it{heap-size\/}} $*$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-add-addr-ref-count-offset-lr-init-data-seg-help-1 \\ \index{fetch-add-addr-ref-count-offset!-lr-init-data-seg-help-1}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{add-addr}}\,({\it{addr\/}}, {\tt{4}})\index{add-addr} $=$ {\tt{'}}{\tt{(}}{\tt{addr}}{\tt{ }}{\tt{(}}{\tt{heap}}{\tt{ .\ }}{\tt{4}}{\tt{)}}{\tt{)}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-add-addr-fact \\ \index{equal-add-addr-fact}
\=\+({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\rm{type}}\,({\it{addr2\/}})\index{type}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{add-addr}}\,({\it{addr1\/}}, {\it{n1\/}})\index{add-addr} $=$ {\rm{add-addr}}\,({\it{addr2\/}}, {\it{n2\/}})\index{add-addr}) \\ 
$=$$\;\;\;\;$(\=\+({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{addr2\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$(({\rm{offset}}\,({\it{addr1\/}})\index{offset} $+$ {\it{n1\/}}) $=$ ({\rm{offset}}\,({\it{addr2\/}})\index{offset} $+$ {\it{n2\/}})))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-all-nodes} \\  
\=\+{\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{nil}} \\ 
{\bf elseif }{\it{min-offset\/}} $\not<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}$\;\;${\bf then }{\bf{nil}} \\ 
{\bf else }{\rm{cons}}\,(\=\+{\rm{sub-addr}}\,({\it{max-addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{sub-addr}, \\ 
{\rm{lr-all-nodes}}\,(\=\+{\it{min-offset\/}}, \\ 
{\rm{sub-addr}}\,({\it{max-addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{sub-addr})\-\index{lr-all-nodes})\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-19} \\  
\=\+{\rm{induct-hint-19}}\,({\it{addr\/}}, {\it{max-addr\/}})\index{induct-hint-19} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset} \\ 
{\bf then }{\rm{induct-hint-19}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}, {\it{max-addr\/}})\index{induct-hint-19} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-times-plus-fact \\ \index{lessp-times-plus-fact}
({\it{n\/}} $\not\simeq {\tt{0}}$) $\rightarrow$ ((({\it{n\/}} $*$ {\it{v\/}}) $<$ ({\it{n\/}} $+$ ({\it{n\/}} $*$ {\it{w\/}}))) $=$ ({\it{v\/}} $<$ ($1\;+$ {\it{w\/}})))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-sub1-lessp-fact \\ \index{lessp-sub1-lessp-fact}
\=\+(({\it{x\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{y\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{x\/}} $\not=$ {\tt{0}}) $\wedge$ ({\it{x\/}} $\not=$ {\it{y\/}})) \\ 
$\rightarrow$$\;\;\;\;$((({\it{x\/}} $-\;1$) $<$ {\it{y\/}}) $=$ ({\it{x\/}} $<$ {\it{y\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  remainder-difference-not-equal-lessp-fact \\ \index{remainder-difference-not-equal-!lessp-fact}
\=\+(\=\+(({\it{x\/}} ${}${\bf{mod}}${}$ {\it{n\/}}) $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$(({\it{y\/}} ${}${\bf{mod}}${}$ {\it{n\/}}) $=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\not=$ ({\it{y\/}} $-$ {\it{n\/}})) \\ 
$\wedge$$\;\;\;\;$({\it{y\/}} $\not<$ {\it{n\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{y\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(({\it{x\/}} $<$ ({\it{y\/}} $-$ {\it{n\/}})) $=$ ({\it{x\/}} $<$ {\it{y\/}}))\-
\end{tabbing}


\noindent{\sc Event}:   Disable lessp-sub1-lessp-fact.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-boundaryp-nodep-difference-node-size \\ \index{lr-boundaryp-nodep-difference-n!ode-size}
\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset\/}} $-$ {\sc{lr-node-size}}\index{lr-node-size})\index{lr-boundary-offsetp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-difference-not-equal-lessp-fact-1 \\ \index{lr-boundary-offsetp-difference-!not-equal-lessp-fact-1}
\=\+(\=\+{\rm{lr-boundary-offsetp}}\,({\it{x\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{y\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\not=$ ({\it{y\/}} $-$ {\sc{lr-node-size}}\index{lr-node-size})) \\ 
$\wedge$$\;\;\;\;$({\it{y\/}} $\not<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{y\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(({\it{x\/}} $<$ ({\it{y\/}} $-$ {\sc{lr-node-size}}\index{lr-node-size})) $=$ ({\it{x\/}} $<$ {\it{y\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-lr-all-nodes-helper \\ \index{member-lr-all-nodes-helper}
\=\+(\=\+({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{area-name}}\,({\it{max-addr\/}})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\rm{type}}\,({\it{max-addr\/}})\index{type}) \\ 
$\wedge$$\;\;\;\;$({\it{addr\/}} $\not=$ {\rm{sub-addr}}\,({\it{max-addr\/}}, {\sc{lr-node-size}}\index{lr-node-size})\index{sub-addr}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ (((({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $-\;1$) $-\;1$) $-\;1$) $-\;1$)) \\ 
$=$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-lr-all-nodes \\ \index{member-lr-all-nodes}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{min-offset\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ {\it{min-offset\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{addr\/}} $\in$ {\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes}) \\ 
$=$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable member-lr-all-nodes-helper.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-all-nodes-nil \\ \index{lr-all-nodes-nil}
\=\+({\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes} $=$ {\bf{nil}}) \\ 
$=$$\;\;\;\;$(({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\simeq {\tt{0}}$) $\vee$ ({\it{min-offset\/}} $\not<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  delete-append \\ \index{delete-append}
\=\+{\rm{delete}}\,({\it{e\/}}, {\rm{append}}\,({\it{x\/}}, {\it{y\/}}))\index{delete} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{e\/}} $\in$ {\it{x\/}}$\;\;${\bf then }{\rm{append}}\,({\rm{delete}}\,({\it{e\/}}, {\it{x\/}})\index{delete}, {\it{y\/}}) \\ 
{\bf else }{\rm{append}}\,({\it{x\/}}, {\rm{delete}}\,({\it{e\/}}, {\it{y\/}})\index{delete})$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-difference-node-size-sub-addr-2 \\ \index{lessp-difference-node-size-sub-!addr-2}
\=\+(\=\+({\it{offset\/}} $<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp})\- \\ 
$\rightarrow$$\;\;\;\;$((({\rm{offset}}\,({\it{addr\/}})\index{offset} $-$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size})) $<$ {\it{offset\/}}) $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-member-lr-all-nodes-too-small-addr \\ \index{not-member-lr-all-nodes-too-sma!ll-addr}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{min-offset\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\it{min-offset\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{min-offset\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$({\it{addr\/}} $\not\in$ {\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes})\-
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-plist-node-list \\ \index{lr-check-free-nodes-plist-node-!list}
\=\+{\rm{lr-check-free-nodes}}\,({\it{addr\/}}, {\rm{plist}}\,({\it{node-list\/}})\index{plist}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-check-free-nodes}}\,({\it{addr\/}}, {\it{node-list\/}}, {\it{data-seg\/}}, {\it{max-addr\/}})\index{lr-check-free-nodes}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-all-nodes-offset-same-max \\ \index{lr-all-nodes-offset-same-max}
{\rm{lr-all-nodes}}\,({\rm{offset}}\,({\it{addr\/}})\index{offset}, {\it{addr\/}})\index{lr-all-nodes} $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-all-nodes-offset-max-addr-opener-helper \\ \index{lr-all-nodes-offset-max-addr-ope!ner-helper}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{offset\/}} $<$ (((({\rm{offset}}\,({\it{addr\/}})\index{offset} $-\;1$) $-\;1$) $-\;1$) $-\;1$)) \\ 
$=$$\;\;\;\;$({\it{offset\/}} $\not=$ (((({\rm{offset}}\,({\it{addr\/}})\index{offset} $-\;1$) $-\;1$) $-\;1$) $-\;1$)))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-all-nodes-lessp-max-addr-opener \\ \index{lr-all-nodes-lessp-max-addr-ope!ner}
\=\+(\=\+({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\it{min-offset\/}} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{min-offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{min-offset\/}})\index{lr-boundary-offsetp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{lr-all-nodes}}\,(\=\+{\it{min-offset\/}} $+$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}), \\ 
{\it{max-addr\/}})\-\index{lr-all-nodes}, \\ 
{\rm{list}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{min-offset\/}}))\-\index{tag}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-init-init-data-seg-generalized \\ \index{fetch-init-init-data-seg-genera!lized}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ ({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})) \\ 
$=$$\;\;\;\;${\rm{lr-init-heap-contents}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\tt{0}}))\-\index{tag}), \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, {\it{data-seg\/}})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{addr\/}}, {\tt{4}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-difference-node-size-sub-addr-3 \\ \index{lessp-difference-node-size-sub-!addr-3}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ ({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+((((({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}}) $-\;1$) $-\;1$) $-\;1$) $-\;1$) \\ 
$<$$\;\;\;\;${\rm{offset}}\,({\it{addr\/}})\index{offset})\- \\ 
$=$$\;\;\;\;${\bf{f}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-nodep-tag-cons-times-lr-node-size \\ \index{lr-boundary-nodep-tag-cons-time!s-lr-node-size}
{\rm{lr-boundary-nodep}}\,({\rm{tag}}\,({\it{x\/}}, {\rm{cons}}\,({\it{name\/}}, {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}}))\index{tag})\index{lr-boundary-nodep}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  tag-type-name-offset-equal-same \\ \index{tag-type-name-offset-equal-same}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\it{x\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\it{name\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{tag}}\,({\it{x\/}}, {\rm{cons}}\,({\it{name\/}}, {\rm{offset}}\,({\it{addr\/}})\index{offset}))\index{tag} $=$ {\it{addr\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-lr-free-list-nodes-init-data-seg \\ \index{lr-check-free-nodes-lr-free-list!-nodes-init-data-seg}
\=\+{\bf let }\=\+{\it{init-data-seg\/}}{\bf $\;$ be$\;\;$}{\rm{list}}\,(\=\+{\rm{cons}}\,({\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}, {\it{any1\/}}), \\ 
{\rm{cons}}\,({\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name}, {\it{any2\/}}), \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\rm{lr-init-heap-contents}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\tt{0}})\-)\-\index{tag}, \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\-\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\not<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\it{init-data-seg\/}})\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-free-nodes}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{lr-all-nodes}}\,({\rm{offset}}\,({\it{addr\/}})\index{offset}, {\it{max-addr\/}})\index{lr-all-nodes}, \\ 
{\rm{list}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{identity}}\,({\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}), \\ 
{\it{any1\/}})\-, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name}), \\ 
{\it{any2\/}})\-, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{lr-init-heap-contents}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\tt{0}})\-)\-\index{tag}), \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\-, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes}\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable fetch-init-init-data-seg-generalized.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-a-list-lr-nodep \\ \index{lr-free-list-nodes-deposit-a-li!st-lr-nodep}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,({\rm{list}}\,({\it{a\/}}, {\it{b\/}}, {\it{c\/}}, {\it{d\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{b\/}}, \\ 
{\rm{add-addr}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-free-nodes-deposit-a-list-lr-nodep \\ \index{lr-check-free-nodes-deposit-a-li!st-lr-nodep}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-check-free-nodes}}\,(\=\+{\it{addr1\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit-a-list}}\,({\rm{list}}\,({\it{a\/}}, {\it{b\/}}, {\it{c\/}}, {\it{d\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-check-free-nodes}}\,(\=\+{\it{addr1\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{b\/}}, \\ 
{\rm{add-addr}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit}, \\ 
{\it{max-addr\/}})\-\index{lr-check-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-all-nodes-not-lessp-min-offset-max-addr \\ \index{lr-all-nodes-not-lessp-min-offset!-max-addr}
\=\+({\it{min-offset\/}} $\not<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes} $=$ {\bf{nil}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-init-init-data-seg-sub-addr \\ \index{fetch-init-init-data-seg-sub-ad!dr}
\=\+(\=\+(({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}}) $\not<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $-$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size})) \\ 
$<$$\;\;\;\;$({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}))\- \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})) \\ 
$=$$\;\;\;\;${\rm{lr-init-heap-contents}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\tt{0}}))\index{tag}, \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{sub-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\index{sub-addr}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch} \\ 
$=$$\;\;\;\;${\it{addr\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-lr-init-heap-contents-generalized \\ \index{lr-free-list-nodes-lr-init-heap!-contents-generalized}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$(({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}) $\not<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})) \\ 
$=$$\;\;\;\;${\rm{lr-init-heap-contents}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\tt{0}}))\-\index{tag}), \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes} $=$ {\rm{lr-all-nodes}}\,({\tt{0}}, {\it{max-addr\/}})\index{lr-all-nodes})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-lr-init-heap-contents \\ \index{lr-free-list-nodes-lr-init-heap!-contents}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$(({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}) $\not<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{cons}}\,({\rm{identity}}\,({\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}), {\it{any1\/}}), \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name}), \\ 
{\it{any2\/}})\-, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{lr-init-heap-contents}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\tt{0}})\-)\-\index{tag}), \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\-)\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-all-nodes}}\,({\tt{0}}, {\it{max-addr\/}})\index{lr-all-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-node-listp-lr-all-nodes \\ \index{lr-node-listp-lr-all-nodes}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-node-listp}}\,({\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{addr\/}})\index{lr-all-nodes}, {\it{data-seg\/}})\index{lr-node-listp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-lr-all-nodes \\ \index{plistp-lr-all-nodes}
{\rm{plistp}}\,({\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-lr-init-data-seg \\ \index{lr-free-list-nodes-lr-init-data!-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-all-nodes}}\,(\=\+{\rm{identity}}\,({\rm{offset}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr})\index{offset}), \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag})\-\index{lr-all-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-lr-init-data-seg-helper \\ \index{lr-proper-free-listp-lr-init-dat!a-seg-helper}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-free-nodes}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}), \\ 
{\rm{lr-all-nodes}}\,(\=\+{\rm{identity}}\,({\rm{offset}}\,({\rm{add-addr}}\,(\=\+{\sc{lr-f-addr}}\index{lr-f-addr}, \\ 
{\sc{lr-node-size}}\index{lr-node-size})\-\index{add-addr})\index{offset}), \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
\=\+{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) \\ 
$*$$\;\;\;\;${\it{heap-size\/}}\-)\-)\-\index{tag})\-\index{lr-all-nodes}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag})\-\index{lr-check-free-nodes}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-lr-init-data-seg \\ \index{lr-proper-free-listp-lr-init-dat!a-seg}
({\it{heap-size\/}} $\not<$ {\tt{2}}) $\rightarrow$ {\rm{lr-proper-free-listp}}\,({\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{lr-proper-free-listp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-lr-heap-name-lr-init-data-seg \\ \index{definedp-lr-heap-name-lr-init-d!ata-seg}
{\rm{definedp}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-lr-heap-name-lr-init-data-seg \\ \index{lr-proper-p-areasp-lr-heap-name!-lr-init-data-seg}
{\rm{lr-proper-p-areasp}}\,({\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{lr-proper-p-areasp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-car-lr-init-data-seg-table \\ \index{lr-proper-p-areasp-car-lr-init-!data-seg-table}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{lr-proper-p-areasp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-car-lr-data-seg-table-list \\ \index{lr-proper-p-areasp-car-lr-data-!seg-table-list}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\index{lr-proper-p-areasp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-car-lr-init-data-seg-table \\ \index{definedp-table-definedp-car-lr-i!nit-data-seg-table}
\=\+{\rm{definedp}}\,({\it{name\/}}, {\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{definedp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{data-seg\/}})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-cons-table \\ \index{all-p-objects-lookup-cons-table}
\=\+({\rm{all-p-objects-lookup}}\,({\it{list\/}}, {\it{table\/}}, {\it{p\/}})\index{all-p-objects-lookup} $\wedge$ {\rm{p-objectp}}\,({\it{y\/}}, {\it{p\/}})\index{p-objectp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,({\it{list\/}}, {\rm{cons}}\,({\rm{cons}}\,({\it{x\/}}, {\it{y\/}}), {\it{table\/}}), {\it{p\/}})\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-opener-alt-lr-proper-free-listp \\ \index{p-objectp-opener-alt-lr-proper-!free-listp}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{data-seg\/}} $=$ {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-lookup-deposit-a-list \\ \index{p-objectp-lookup-deposit-a-list}
\=\+{\rm{p-objectp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp} \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{deposit-a-list}}\,({\it{stuff\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-deposit-a-list \\ \index{all-p-objects-lookup-deposit-a-!list}
\=\+{\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup} \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{deposit-a-list}}\,({\it{stuff\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-lookup-deposit \\ \index{p-objectp-lookup-deposit}
\=\+{\rm{p-objectp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp} \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-deposit \\ \index{all-p-objects-lookup-deposit}
\=\+{\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup} \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-name-p-objectp-tag-0-lr-proper-p-areasp \\ \index{definedp-name-p-objectp-tag-0-l!r-proper-p-areasp}
\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-objectp}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\it{name\/}}, {\tt{0}})), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp} \\ 
$=$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{data-seg\/}})\index{definedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-lr-compile-quote \\ \index{all-p-objects-lookup-lr-compile!-quote}
\=\+(\=\+{\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-lr-data-seg-table-body \\ \index{all-p-objects-lookup-lr-data-se!g-table-body}
\=\+(\=\+{\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-lr-data-seg-table-list \\ \index{all-p-objects-lookup-lr-data-se!g-table-list}
\=\+(\=\+{\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\it{table\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,(\=\+{\it{list\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-lookup-lr-init-data-seg-table \\ \index{p-objectp-lookup-lr-init-data-se!g-table}
\=\+(\=\+{\rm{p-objectp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-definedp-table-lr-compile-quote \\ \index{assoc-definedp-table-lr-compile!-quote}
\=\+{\rm{definedp}}\,({\it{object1\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\it{object1\/}}, {\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object2\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote})) \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\it{object1\/}}, {\it{table\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-definedp-table-lr-init-data-seg-table \\ \index{assoc-definedp-table-lr-init-dat!a-seg-table}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table})) \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\it{object\/}}, {\it{table\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-lr-compile-quote-self \\ \index{definedp-table-lr-compile-quote!-self}
\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-good-pointerp-opener \\ \index{lr-s-similar-const-table-lr-goo!d-pointerp-opener}
\=\+({\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} $\wedge$ {\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{type}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}})))\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}}))) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}}))) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}})))\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}})))\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{area-name}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}})))\index{area-name} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}))\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}})), \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-deposit-lr-fp-addr \\ \index{lr-s-similar-const-table-deposit!-lr-fp-addr}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\it{table\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{anything\/}}, \\ 
{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-fetch-lr-fp-addr-car-lr-compile-quote \\ \index{adpp-fetch-lr-fp-addr-car-lr-co!mpile-quote}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,(\=\+{\rm{untag}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{fetch})\index{untag}, \\ 
{\it{data-seg\/}})\-\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-good-pointerp-tablep} \\  
\=\+{\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{table\/}}) \\ 
{\bf then }\=\+{\rm{lr-good-pointerp}}\,({\rm{cdar}}\,({\it{table\/}}), {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\rm{cdr}}\,({\it{table\/}}), {\it{data-seg\/}})\index{lr-good-pointerp-tablep}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-tablep-definedp-table \\ \index{lr-good-pointerp-tablep-definedp!-table}
\=\+({\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} $\wedge$ {\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\it{object\/}}, {\it{table\/}})), {\it{data-seg\/}})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-opener-2-area-name-alt \\ \index{lr-proper-free-listp-opener-2-a!rea-name-alt}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{car}}\,({\rm{untag}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{untag}) $=$ {\sc{lr-heap-name}}\index{lr-heap-name})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-tablep-deposit-free-ptr \\ \index{lr-good-pointerp-tablep-deposit!-free-ptr}
\=\+{\rm{lr-good-pointerp-tablep}}\,(\=\+{\it{table\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\-\index{lr-good-pointerp-tablep} \\ 
$=$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-lr-boundary-nodep \\ \index{add1-lr-boundary-nodep}
\=\+({\rm{lr-boundary-nodep}}\,({\it{addr1\/}})\index{lr-boundary-nodep} $\wedge$ {\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ ($1\;+$ {\rm{offset}}\,({\it{addr2\/}})\index{offset})) $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-plus \\ \index{lr-boundary-offsetp-plus}
\=\+{\rm{lr-boundary-offsetp}}\,({\it{n\/}})\index{lr-boundary-offsetp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-boundary-offsetp}}\,({\it{m\/}} $+$ {\it{n\/}})\index{lr-boundary-offsetp} $=$ {\rm{lr-boundary-offsetp}}\,({\it{m\/}})\index{lr-boundary-offsetp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add1-add1-lr-boundary-nodep \\ \index{add1-add1-lr-boundary-nodep}
\=\+({\rm{lr-boundary-nodep}}\,({\it{addr1\/}})\index{lr-boundary-nodep} $\wedge$ {\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{offset}}\,({\it{addr1\/}})\index{offset} $=$ ($1\;+$ ($1\;+$ {\rm{offset}}\,({\it{addr2\/}})\index{offset}))) $=$ {\bf{f}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-tablep-deposit-a-list \\ \index{lr-good-pointerp-tablep-deposit!-a-list}
\=\+(\=\+{\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,(\=\+{\it{table\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{tag\/}}, {\it{ref-count\/}}, {\it{x\/}}, {\it{y\/}}), \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-table-cons \\ \index{lr-good-pointerp-table-cons}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-good-pointerp-tablep}}\,({\rm{cons}}\,({\rm{cons}}\,({\it{object\/}}, {\it{addr\/}}), {\it{table\/}}), {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$=$$\;\;\;\;$(\=\+(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-length-sub1-not-lessp \\ \index{lr-proper-free-listp-length-sub!1-not-lessp}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;${\rm{offset}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{fetch})\index{offset})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-lr-compile-quote \\ \index{lr-minimum-heapp-lr-compile-quote}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-minimum-heapp}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-minimum-heapp} \\ 
$=$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-heap-reqs} \\  
\=\+{\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{pair\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{object\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+{\rm{s-heap-reqs}}\,({\bf{t}}, {\rm{car}}\,({\it{object\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{object\/}}), \\ 
{\rm{car}}\,({\it{pair\/}}), \\ 
{\rm{cdr}}\,({\it{pair\/}}))\-\index{s-heap-reqs}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp}$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }$1\;+$ {\rm{s-heap-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\rm{car}}\,({\it{object\/}}), {\rm{cdr}}\,({\it{object\/}})), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{s-heap-reqs} \\ 
{\bf elseif }{\it{object\/}} $\in\;${\bf{N}}${}$$\;\;${\bf then }{\tt{1}} \\ 
{\bf elseif }{\rm{truep}}\,({\it{object\/}})$\;\;${\bf then }{\tt{1}} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-heap-reqs.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{s-heap-reqs-body} \\  
\=\+{\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{dst1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{expr\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}\- \\ 
{\bf in} \\ 
\=\+{\rm{s-heap-reqs-body}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\rm{car}}\,({\it{dst1\/}}), \\ 
{\rm{cdr}}\,({\it{dst1\/}}))\-\index{s-heap-reqs-body}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }\=\+({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{s-heap-reqs-body}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{s-heap-reqs}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
{\bf else }{\rm{s-heap-reqs-body}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body}$\;${\bf  endif}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-heap-reqs-list} \\  
\=\+{\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{progs\/}}) \\ 
{\bf then }\=\+{\rm{s-heap-reqs-body}}\,({\bf{t}}, {\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-list}}\,(\=\+{\rm{cdr}}\,({\it{progs\/}}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{s-heap-reqs-list}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-init-heap-reqs} \\  
\=\+{\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{params\/}}) \\ 
{\bf then }\=\+{\rm{s-heap-reqs}}\,({\bf{t}}, {\rm{cdar}}\,({\it{params\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-init-heap-reqs}}\,(\=\+{\rm{cdr}}\,({\it{params\/}}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{cdar}}\,({\it{params\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{cdar}}\,({\it{params\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{s-init-heap-reqs}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-total-heap-reqs} \\  
\=\+{\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{init-ds-table1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\sc{lr-f-addr}}\index{lr-f-addr})))\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{init-ds-table2\/}}{\bf $\;$ be$\;\;$}{\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table1\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table1\/}}))\-\index{lr-init-data-seg-table}\- \\ 
{\bf in} \\ 
\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\sc{lr-f-addr}}\index{lr-f-addr})))\-\index{s-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-init-heap-reqs}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table1\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table1\/}}))\-\index{s-init-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-list}}\,(\=\+{\it{progs\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table2\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table2\/}}))\-\index{s-heap-reqs-list}\-$\;${\bf  endlet}\-$\;${\bf  endlet}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-ws-reqs} \\  
\=\+{\rm{s-ws-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{pair\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{object\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
{\rm{max}}\,(\=\+{\rm{s-ws-reqs}}\,({\bf{t}}, {\rm{car}}\,({\it{object\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs}, \\ 
{\rm{s-ws-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{object\/}}), \\ 
{\rm{car}}\,({\it{pair\/}}), \\ 
{\rm{cdr}}\,({\it{pair\/}}))\-\index{s-ws-reqs})\-$\;${\bf  endlet}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp}$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }{\rm{max}}\,(\=\+{\rm{log}}\,({\tt{2}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{log}, \\ 
{\rm{s-ws-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\rm{car}}\,({\it{object\/}}), {\rm{cdr}}\,({\it{object\/}})), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{s-ws-reqs})\- \\ 
{\bf elseif }{\it{object\/}} $\in\;${\bf{N}}${}$$\;\;${\bf then }{\rm{max}}\,({\rm{log}}\,({\tt{2}}, {\sc{lr-add1-tag}}\index{lr-add1-tag})\index{log}, {\rm{log}}\,({\tt{2}}, {\it{object\/}})\index{log}) \\ 
{\bf elseif }{\rm{truep}}\,({\it{object\/}})$\;\;${\bf then }{\rm{log}}\,({\tt{2}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{log} \\ 
{\bf elseif }{\rm{falsep}}\,({\it{object\/}})$\;\;${\bf then }{\rm{log}}\,({\tt{2}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{log} \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-ws-reqs.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{s-ws-reqs-body} \\  
\=\+{\rm{s-ws-reqs-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-body} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{dst1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{expr\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}\- \\ 
{\bf in} \\ 
{\rm{max}}\,(\=\+{\rm{s-ws-reqs-body}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-body}, \\ 
{\rm{s-ws-reqs-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{expr\/}}), \\ 
{\rm{car}}\,({\it{dst1\/}}), \\ 
{\rm{cdr}}\,({\it{dst1\/}}))\-\index{s-ws-reqs-body})\-$\;${\bf  endlet}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }\=\+({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{s-ws-reqs-body}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-body} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{s-ws-reqs}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs} \\ 
{\bf else }{\rm{s-ws-reqs-body}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-body}$\;${\bf  endif}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-ws-reqs-list} \\  
\=\+{\rm{s-ws-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-list} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{progs\/}}) \\ 
{\bf then }{\rm{max}}\,(\=\+{\rm{s-ws-reqs-body}}\,({\bf{t}}, {\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-body}, \\ 
{\rm{s-ws-reqs-list}}\,(\=\+{\rm{cdr}}\,({\it{progs\/}}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{s-ws-reqs-list})\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-init-ws-reqs} \\  
\=\+{\rm{s-init-ws-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-ws-reqs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{params\/}}) \\ 
{\bf then }{\rm{max}}\,(\=\+{\rm{s-ws-reqs}}\,({\bf{t}}, {\rm{cdar}}\,({\it{params\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs}, \\ 
{\rm{s-init-ws-reqs}}\,(\=\+{\rm{cdr}}\,({\it{params\/}}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{cdar}}\,({\it{params\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{cdar}}\,({\it{params\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{s-init-ws-reqs})\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-total-ws-reqs} \\  
\=\+{\rm{s-total-ws-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-ws-reqs} \\ 
$=$$\;\;\;\;$\=\+{\bf let }\=\+{\it{init-ds-table1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\sc{lr-f-addr}}\index{lr-f-addr})))\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{init-ds-table2\/}}{\bf $\;$ be$\;\;$}{\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table1\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table1\/}}))\-\index{lr-init-data-seg-table}\- \\ 
{\bf in} \\ 
{\rm{max}}\,(\=\+{\rm{s-ws-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{f}}, {\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\bf{nil}})\-\index{s-ws-reqs}, \\ 
{\rm{max}}\,(\=\+{\rm{s-init-ws-reqs}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table1\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table1\/}}))\-\index{s-init-ws-reqs}, \\ 
{\rm{max}}\,(\=\+{\rm{s-ws-reqs-list}}\,(\=\+{\it{progs\/}}, \\ 
{\rm{car}}\,({\it{init-ds-table2\/}}), \\ 
{\rm{cdr}}\,({\it{init-ds-table2\/}}))\-\index{s-ws-reqs-list}, \\ 
{\sc{s-max-subr-reqs}}\index{s-max-subr-reqs})\-)\-)\-$\;${\bf  endlet}\-$\;${\bf  endlet}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-restricted-objectp} \\  
\=\+{\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }\=\+{\rm{s-restricted-objectp}}\,({\bf{t}}, {\rm{car}}\,({\it{object\/}}))\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{object\/}}))\index{s-restricted-objectp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\it{object\/}} $=$ {\bf{t}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{object\/}} $=$ {\bf{f}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{listp}}\,({\it{object\/}}) \\ 
{\bf then }{\rm{s-restricted-objectp}}\,({\tt{'}}{\tt{list}}, {\rm{list}}\,({\rm{car}}\,({\it{object\/}}), {\rm{cdr}}\,({\it{object\/}})))\index{s-restricted-objectp} \\ 
{\bf elseif }{\it{object\/}} $\in\;${\bf{N}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-data-seg-body-restrictedp} \\  
\=\+{\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{expr\/}})\index{s-data-seg-body-restrictedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\rm{s-data-seg-body-restrictedp}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}))\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-data-seg-body-restrictedp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }\=\+({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{s-data-seg-body-restrictedp}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{s-data-seg-body-restrictedp} \\ 
{\bf elseif }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{s-restricted-objectp}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{s-restricted-objectp} \\ 
{\bf else }{\rm{s-data-seg-body-restrictedp}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-data-seg-body-restrictedp}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-data-seg-list-restrictedp} \\  
\=\+{\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{progs\/}}) \\ 
{\bf then }\=\+{\rm{s-data-seg-body-restrictedp}}\,({\bf{t}}, {\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body})\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\rm{cdr}}\,({\it{progs\/}}))\index{s-data-seg-list-restrictedp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-init-data-seg-restrictedp} \\  
\=\+{\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{params\/}}) \\ 
{\bf then }\=\+{\rm{s-restricted-objectp}}\,({\bf{t}}, {\rm{cdar}}\,({\it{params\/}}))\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\rm{cdr}}\,({\it{params\/}}))\index{s-init-data-seg-restrictedp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{s-restrictedp} \\  
\=\+{\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-not-equal-length-1 \\ \index{lr-minimum-heapp-not-equal-lengt!h-1}
\=\+{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $\not=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-at-most \\ \index{lr-count-free-nodes-at-most}
{\rm{length}}\,({\it{node-list\/}})\index{length} $\not<$ {\rm{lr-count-free-nodes}}\,({\it{addr\/}}, {\it{node-list\/}}, {\it{data-seg\/}})\index{lr-count-free-nodes}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-lr-count-free-nodes-max-addr \\ \index{lr-proper-free-listp-lr-count-f!ree-nodes-max-addr}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} \\ 
$=$$\;\;\;\;$($1\;+$ {\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset}))\- \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\tt{0}})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-count-free-nodes-at-most.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-deposit-a-list-lr-nodep \\ \index{lr-count-free-nodes-deposit-a-li!st-lr-nodep}
\=\+(\=\+({\rm{type}}\,({\it{addr1\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr1\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr1\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr1\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr1\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr1\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-node-listp}}\,({\it{node-list\/}}, {\it{data-seg\/}})\index{lr-node-listp} \\ 
$\wedge$$\;\;\;\;$({\it{addr1\/}} $\not\in$ {\it{node-list\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\it{addr2\/}}, \\ 
{\it{node-list\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{x\/}}, {\it{ref-count\/}}, {\it{y\/}}, {\it{z\/}}), \\ 
{\it{addr1\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,({\it{addr2\/}}, {\rm{delete}}\,({\it{addr1\/}}, {\it{node-list\/}})\index{delete}, {\it{data-seg\/}})\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-member-free-addr-lr-free-list-nodes \\ \index{lr-proper-free-listp-member-free!-addr-lr-free-list-nodes}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$))\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch} \\ 
$\in$$\;\;\;\;${\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-compile-quote-s-heap-reqs-help1 \\ \index{lr-count-free-nodes-lr-compile-q!uote-s-heap-reqs-help1}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} \\ 
$<$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$))\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;$($1\;+$ {\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{delete}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes})\-\index{delete}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-lr-count-free-nodes-max-addr-alt \\ \index{lr-proper-free-listp-lr-count-f!ree-nodes-max-addr-alt}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} \\ 
$\not<$$\;\;\;\;$({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$))\- \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\tt{0}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-heap-reqs-object-t \\ \index{s-heap-reqs-object-t}
\=\+(({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{s-heap-reqs}}\,({\it{flag\/}}, {\bf{t}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-lr-boundary-offsetp-nodep-plus-node-size-fact-1 \\ \index{lessp-lr-boundary-offsetp-nodep!-plus-node-size-fact-1}
\=\+({\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} $\wedge$ {\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\it{offset\/}} $<$ ({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $+$ {\rm{offset}}\,({\it{addr\/}})\index{offset})) \\ 
$=$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ {\it{offset\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-compile-quote-s-heap-reqs \\ \index{lr-count-free-nodes-lr-compile-q!uote-s-heap-reqs}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-lr-good-pointerp-tablep-help-1 \\ \index{lr-compile-quote-lr-good-pointe!rp-tablep-help-1}
\=\+{\bf let }\=\+{\it{ccar\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;$({\rm{s-heap-reqs}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} $+$ {\it{x\/}}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\rm{car}}\,({\it{ccar\/}}))\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\it{ccar\/}}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\it{ccar\/}}))\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\it{x\/}})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-heap-reqs-flag-list-nil-opener \\ \index{s-heap-reqs-flag-list-nil-opene!r}
{\rm{s-heap-reqs}}\,({\tt{'}}{\tt{list}}, {\bf{nil}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-flag-list-nil-opener \\ \index{lr-compile-quote-flag-list-nil-!opener}
{\rm{lr-compile-quote}}\,({\tt{'}}{\tt{list}}, {\bf{nil}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote} $=$ {\rm{cons}}\,({\it{data-seg\/}}, {\it{table\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-heap-reqs-flag-list-cons-opener \\ \index{s-heap-reqs-flag-list-cons-opene!r}
\=\+{\rm{s-heap-reqs}}\,({\tt{'}}{\tt{list}}, {\rm{cons}}\,({\it{x\/}}, {\it{y\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-heap-reqs}}\,({\bf{t}}, {\it{x\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{y\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\it{x\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}), \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\it{x\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{s-heap-reqs})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-flag-list-cons-opener \\ \index{lr-compile-quote-flag-list-cons!-opener}
\=\+{\rm{lr-compile-quote}}\,({\tt{'}}{\tt{list}}, {\rm{cons}}\,({\it{x\/}}, {\it{y\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote} \\ 
$=$$\;\;\;\;${\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{y\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\it{x\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}), \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\it{x\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-compile-quote}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-lr-good-pointerp-tablep-help-2 \\ \index{lr-compile-quote-lr-good-pointe!rp-tablep-help-2}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not=$$\;\;\;\;${\tt{0}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{delete}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes})\-\index{delete}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\rm{car}}\,({\it{object\/}}), {\rm{cdr}}\,({\it{object\/}})), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{object\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,(\=\+{\rm{car}}\,({\it{object\/}}), \\ 
{\rm{cdr}}\,({\it{object\/}}))\-, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch})\index{offset} \\ 
$+$$\;\;\;\;${\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-heap-reqs-flag-list-cons-opener.

\addvspace{18pt}

\noindent{\sc Event}:   Disable lr-compile-quote-flag-list-cons-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-lr-good-pointerp-tablep-help-3 \\ \index{lr-compile-quote-lr-good-pointe!rp-tablep-help-3}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\tt{1}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch})\index{offset} \\ 
$+$$\;\;\;\;${\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-lr-good-pointerp-tablep \\ \index{lr-compile-quote-lr-good-pointe!rp-tablep}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,(\=\+{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-nodep-car-lr-compile-quote \\ \index{lr-nodep-car-lr-compile-quote}
\=\+{\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-free-listp-opener-2-lr-nodep \\ \index{lr-proper-free-listp-opener-2-l!r-nodep}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{addr\/}} $=$ {\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-nodep-deposit-a-list \\ \index{lr-nodep-deposit-a-list}
\=\+{\rm{lr-nodep}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr1\/}}, {\rm{deposit-a-list}}\,({\it{list\/}}, {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit-a-list})\index{lr-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-16} \\  
\=\+{\rm{induct-hint-16}}\,({\it{object\/}}, {\it{list\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{induct-hint-16} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{list\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{object\/}} $=$ {\rm{car}}\,({\it{list\/}})$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-16}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\it{list\/}}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{list\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{list\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{induct-hint-16}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-object-cdr-lr-compile-quote-list \\ \index{definedp-object-cdr-lr-compile-q!uote-list}
\=\+({\it{object\/}} $\in$ {\it{list\/}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\tt{'}}{\tt{list}}, {\it{list\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-cdr-assoc-car-lr-compile-quote-list \\ \index{lr-good-pointerp-cdr-assoc-car-!lr-compile-quote-list}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\tt{'}}{\tt{list}}, {\it{object-list\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not=$$\;\;\;\;${\tt{0}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} $-\;1$) \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\tt{'}}{\tt{list}}, {\it{object-list\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{object\/}} $\in$ {\it{object-list\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{object-list\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\it{object-list\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-deposit-non-ref-not-good-pointerp \\ \index{lr-good-pointerp-deposit-non-re!f-not-good-pointerp}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\sc{lr-node-size}}\index{lr-node-size}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not=$ {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\rm{deposit}}\,({\it{x\/}}, {\rm{add-addr}}\,({\it{addr\/}}, {\it{n\/}})\index{add-addr}, {\it{data-seg\/}})\index{deposit})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-deposit-ref-count-not-good-pointerp \\ \index{lr-good-pointerp-deposit-ref-co!unt-not-good-pointerp}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{x\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,(\=\+{\it{good-pointer\/}}, \\ 
{\rm{deposit}}\,(\=\+{\it{x\/}}, \\ 
{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-deposit-non-add-addr-not-good-pointerp \\ \index{lr-good-pointerp-deposit-non-ad!d-addr-not-good-pointerp}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\rm{deposit}}\,({\it{x\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-numberp-addrp-deposit-a-list-cons-same-addr \\ \index{lr-check-numberp-addrp-deposit-!a-list-cons-same-addr}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not<$ ({\sc{lr-node-size}}\index{lr-node-size} $+$ {\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{addr}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\tt{'}}{\tt{heap}}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tagged-number\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tagged-number\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-numberp-addrp}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-add1-tag}}\index{lr-add1-tag})\-\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\it{tagged-number\/}}, \\ 
{\it{good-pointer\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-check-numberp-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-deposit-a-list-numberp \\ \index{lr-proper-heapp-nodep-deposit-a!-list-numberp}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tagged-number\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tagged-number\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-add1-tag}}\index{lr-add1-tag})\-\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\it{tagged-number\/}}, \\ 
{\it{good-pointer\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp2-deposit-a-list-numberp \\ \index{lr-proper-heapp2-deposit-a-list!-numberp}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tag\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tagged-number\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tagged-number\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-add1-tag}}\index{lr-add1-tag})\index{tag}), \\ 
{\it{tag\/}}, \\ 
{\it{tagged-number\/}}, \\ 
{\it{good-pointer\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-lr-undef-addr \\ \index{lr-good-pointerp-lr-undef-addr}
\=\+(\=\+{\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}), {\it{data-seg\/}})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-deposit-a-list-truep \\ \index{lr-proper-heapp-nodep-deposit-a!-list-truep}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer1\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer2\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-true-tag}}\index{lr-true-tag})\-\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\it{good-pointer1\/}}, \\ 
{\it{good-pointer2\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp2-deposit-a-list-truep \\ \index{lr-proper-heapp2-deposit-a-list!-truep}
\=\+(\=\+{\rm{lr-nodep}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{max-addr\/}}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\rm{fetch}}\,({\rm{add-addr}}\,({\it{addr\/}}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}, {\it{data-seg\/}})\index{fetch})\index{type} $\not=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer1\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{good-pointer2\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{tag\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{tag\/}})\index{untag} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag}), \\ 
{\it{tag\/}}, \\ 
{\it{good-pointer1\/}}, \\ 
{\it{good-pointer2\/}})\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-preserves-lr-proper-heapp2 \\ \index{lr-compile-quote-preserves-lr-p!roper-heapp2}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-pair-formals-with-addresses \\ \index{plistp-pair-formals-with-addres!ses}
{\rm{plistp}}\,({\rm{pair-formals-with-addresses}}\,({\it{formals\/}}, {\it{table\/}})\index{pair-formals-with-addresses})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-pair-formals-with-addresses \\ \index{strip-cars-pair-formals-with-ad!dresses}
\=\+{\rm{strip-cars}}\,({\rm{pair-formals-with-addresses}}\,({\it{formals\/}}, {\it{table\/}})\index{pair-formals-with-addresses}) \\ 
$=$$\;\;\;\;${\rm{strip-cars}}\,({\it{formals\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  strip-cars-lr-make-initial-temps \\ \index{strip-cars-lr-make-initial-temp!s}
{\rm{strip-cars}}\,({\rm{lr-make-initial-temps}}\,({\it{temp-vars\/}})\index{lr-make-initial-temps}) $=$ {\rm{plist}}\,({\it{temp-vars\/}})\index{plist}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-implies-lr-good-pointerp-tablep \\ \index{lr-s-similar-const-table-implie!s-lr-good-pointerp-tablep}
\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-deposit-cons \\ \index{lr-s-similar-const-table-deposit!-cons}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\it{table\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{x0\/}}, {\it{x1\/}}, {\it{x2\/}}, {\it{x3\/}}), \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-a-list-cons-cons \\ \index{lr-valp-deposit-a-list-cons-con!s}
\=\+(\=\+{\rm{listp}}\,({\it{object\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\it{object\/}}), {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{cdr}}\,({\it{object\/}}), {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{addr\/}} $=$ {\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{object\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{object\/}}), {\it{table\/}})), \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{cdr}}\,({\it{object\/}}), {\it{table\/}})))\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-a-list-cons-numberp \\ \index{lr-valp-deposit-a-list-cons-num!berp}
\=\+(\=\+({\it{object\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{addr\/}} $=$ {\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{object\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-add1-tag}}\index{lr-add1-tag})\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{object\/}})\index{tag}, \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}))\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-preserves-lr-valp \\ \index{lr-compile-quote-preserves-lr-v!alp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, {\it{data-seg\/}})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-preserves-lr-proper-heapp \\ \index{lr-compile-quote-preserves-lr-p!roper-heapp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-deposit-a-list-cons-truep \\ \index{lr-valp-deposit-a-list-cons-truep}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{ref-count\/}})\index{untag} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{addr\/}} $=$ {\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\bf{t}}, \\ 
{\it{addr\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag}), \\ 
{\it{ref-count\/}}, \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}), \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}))\-, \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-compile-quote \\ \index{lr-s-similar-const-table-lr-compi!le-quote}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-objectp-cdr-assoc-car-lr-compile-quote \\ \index{p-objectp-cdr-assoc-car-lr-compi!le-quote}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{s-ws-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-s-init-heap-reqs \\ \index{lr-count-free-nodes-s-init-heap!-reqs}
\=\+{\bf let }\=\+{\it{ccar\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{s-heap-reqs}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\rm{car}}\,({\it{ccar\/}}), {\rm{cdr}}\,({\it{ccar\/}}))\index{s-init-heap-reqs})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\rm{car}}\,({\it{ccar\/}}))\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\it{ccar\/}}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\it{ccar\/}}))\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\rm{car}}\,({\it{ccar\/}}), {\rm{cdr}}\,({\it{ccar\/}}))\index{s-init-heap-reqs})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objects-lookup-strip-cdrs-lr-init-data-seg-table \\ \index{all-p-objects-lookup-strip-cdrs!-lr-init-data-seg-table}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{s-init-ws-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-ws-reqs}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objects-lookup}}\,(\=\+{\rm{strip-cdrs}}\,({\it{params\/}})\index{strip-cdrs}, \\ 
{\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{all-p-objects-lookup}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-lr-init-data-seg \\ \index{lr-minimum-heapp-lr-init-data-se!g}
({\it{heap-size\/}} $\not<$ {\tt{4}}) $\rightarrow$ {\rm{lr-minimum-heapp}}\,({\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{lr-minimum-heapp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-cons-heap-name-node-size-lr-init-data-seg \\ \index{adpp-cons-heap-name-node-size-l!r-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{adpp}}\,(\=\+{\rm{cons}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \=\+{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) \\ 
$*$$\;\;\;\;${\it{heap-size\/}}\-), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{adpp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-check-f-addrp-lr-undef-addr-lr-init-data-seg \\ \index{lr-check-f-addrp-lr-undef-addr-!lr-init-data-seg}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\rm{identity}}\,({\rm{offset}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr})\index{offset})) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-check-undef-addrp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-check-undef-addrp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-offset-lr-t-addr-ref-count-offset-compile-quote-t \\ \index{fetch-offset-lr-t-addr-ref-count!-offset-compile-quote-t}
\=\+(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $<$ {\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\bf{t}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\it{addr\/}})\index{offset} $=$ {\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} \\ 
{\bf then }{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}) \\ 
{\bf else }{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-cdr-lr-compile-quote-t \\ \index{definedp-cdr-lr-compile-quote-t}
\=\+{\rm{definedp}}\,({\it{x\/}}, {\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\bf{t}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{definedp} \\ 
$=$$\;\;\;\;$(({\it{x\/}} $=$ {\bf{t}}) $\vee$ {\rm{definedp}}\,({\it{x\/}}, {\it{table\/}})\index{definedp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-lr-fp-addr-compile-quote-t \\ \index{fetch-lr-fp-addr-compile-quote-t}
\=\+(\=\+($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{value}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{value})\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\bf{t}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{fetch} \\ 
$=$$\;\;\;\;${\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-lessp-4-not-3-not-2-not-1-must-be-0 \\ \index{numberp-lessp-4-not-3-not-2-not!-1-must-be-0}
\=\+(({\it{c\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{c\/}} $\not=$ {\tt{3}}) $\wedge$ ({\it{c\/}} $\not=$ {\tt{2}}) $\wedge$ ({\it{c\/}} $\not=$ {\tt{1}}) $\wedge$ ({\it{c\/}} $<$ {\tt{4}})) \\ 
$\rightarrow$$\;\;\;\;$({\it{c\/}} $=$ {\tt{0}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable fetch-offset-lr-t-addr-ref-count-offset-compile-quote-t.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lessp-minimum-heap-size-not-0-f-t-must-be-undef-alt-1-help \\ \index{lessp-minimum-heap-size-not-0-f!-t-must-be-undef-alt-1-help}
\=\+(\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\rm{offset}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\rm{offset}}\,({\sc{lr-t-addr}}\index{lr-t-addr})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\not=$ {\rm{offset}}\,({\sc{lr-0-addr}}\index{lr-0-addr})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$({\it{offset\/}} $\not<$ {\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-minimum-heap-size-not-0-f-t-must-be-undef-alt-1 \\ \index{lessp-minimum-heap-size-not-0-f!-t-must-be-undef-alt-1}
\=\+(\=\+({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\rm{offset}}\,({\sc{lr-0-addr}}\index{lr-0-addr})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\rm{offset}}\,({\sc{lr-t-addr}}\index{lr-t-addr})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\not=$ {\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\it{addr\/}}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-undefined-tag}}\index{lr-undefined-tag})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-lr-boundary-offsetp-3 \\ \index{lessp-lr-boundary-offsetp-3}
\=\+({\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} $\wedge$ ({\it{offset\/}} $\in\;${\bf{N}}${}$)) \\ 
$\rightarrow$$\;\;\;\;$(({\it{offset\/}} $<$ {\tt{3}}) $=$ ({\it{offset\/}} $=$ {\tt{0}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-lessp-2-not-1-must-be-0 \\ \index{numberp-lessp-2-not-1-must-be-0}
(({\it{c\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{c\/}} $\not=$ {\tt{1}}) $\wedge$ ({\it{c\/}} $<$ {\tt{2}})) $\rightarrow$ ({\it{c\/}} $=$ {\tt{0}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-difference-lr-boundary-offsetp-fact \\ \index{not-lessp-difference-lr-boundar!y-offsetp-fact}
\=\+(({\it{offset\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{offset\/}} $<$ ({\sc{lr-node-size}}\index{lr-node-size} $+$ {\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$=$$\;\;\;\;$(\=\+({\it{offset\/}} $=$ {\rm{identity}}\,({\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset})) \\ 
$\vee$$\;\;\;\;$({\it{offset\/}} $=$ {\rm{identity}}\,({\rm{offset}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr})\index{offset})))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-ref-count-lr-init-data-seg-free-list \\ \index{fetch-ref-count-lr-init-data-se!g-free-list}
\=\+(\=\+(({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}) $\not<$ ({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size})) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{2}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{fetch} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset} $<$ {\rm{offset}}\,({\it{addr\/}})\index{offset} \\ 
{\bf then }{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\index{add-addr} \\ 
{\bf else }{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag})$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-offset-lr-init-data-seg-adpp-untag-lessp-offset \\ \index{lessp-offset-lr-init-data-seg-a!dpp-untag-lessp-offset}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\rm{offset}}\,({\it{addr\/}})\index{offset})\index{lr-boundary-offsetp} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{2}}))\- \\ 
$\rightarrow$$\;\;\;\;$(({\it{offset\/}} $<$ ({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})) $=$ {\bf{t}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-all-nodes \\ \index{lr-count-free-nodes-lr-all-node!s}
\=\+(\=\+{\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset} $<$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{2}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{lr-all-nodes}}\,({\rm{offset}}\,({\it{addr\/}})\index{offset}, {\it{max-addr\/}})\index{lr-all-nodes}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;${\rm{length}}\,({\rm{lr-all-nodes}}\,({\rm{offset}}\,({\it{addr\/}})\index{offset}, {\it{max-addr\/}})\index{lr-all-nodes})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-init-data-seg-table-help-1 \\ \index{same-signature-car-lr-init-data!-seg-table-help-1}
\=\+{\bf let }\=\+{\it{comp-obj\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{same-signature}}\,(\=\+{\rm{car}}\,({\it{comp-obj\/}}), \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{comp-obj\/}}), \\ 
{\rm{cdr}}\,({\it{comp-obj\/}}))\-\index{lr-init-data-seg-table}))\-\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{comp-obj\/}}), \\ 
{\rm{cdr}}\,({\it{comp-obj\/}}))\-\index{lr-init-data-seg-table}))\-\index{same-signature}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-init-data-seg-table \\ \index{same-signature-car-lr-init-data!-seg-table}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\it{data-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-car-lr-init-data-seg-table \\ \index{lr-max-node-car-lr-init-data-se!g-table}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-heap-reqs-object-0 \\ \index{s-heap-reqs-object-0}
\=\+(({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{s-heap-reqs}}\,({\it{flag\/}}, {\tt{0}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} $=$ {\tt{1}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-0 \\ \index{lr-free-list-nodes-deposit-0}
\=\+(\=\+({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\tt{0}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}), \\ 
{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-deposit-t \\ \index{lr-free-list-nodes-deposit-t}
\=\+(\=\+({\rm{type}}\,({\it{max-addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{max-addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{max-addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{max-addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{max-addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{max-addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\bf{t}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{deposit}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}), \\ 
{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{deposit})\-\index{lr-free-list-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-lr-fp-addr-compile-quote-0 \\ \index{fetch-lr-fp-addr-compile-quote-!0}
\=\+(\=\+($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}, {\it{data-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\tt{0}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-add-addr-ref-count-f-addr-lr-init-data-seg \\ \index{fetch-add-addr-ref-count-f-addr!-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-tablep-f-lr-f-addr-lr-init-data-seg \\ \index{lr-good-pointerp-tablep-f-lr-f-!addr-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,(\=\+{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}))), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-lr-undef-addr-lr-init-data-seg \\ \index{lr-proper-heapp-nodep-lr-undef-!addr-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,(\=\+{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-2} \\  
\=\+{\rm{induct-hint-2}}\,({\it{offset\/}})\index{induct-hint-2} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{offset\/}} $<$ {\rm{offset}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr})\index{offset}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-2}}\,({\it{offset\/}} $-$ {\sc{lr-node-size}}\index{lr-node-size})\index{induct-hint-2}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-boundary-offsetp-difference-lr-node-size \\ \index{lr-boundary-offsetp-difference-!lr-node-size}
\=\+{\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-boundary-offsetp}}\,({\it{offset\/}} $-$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}))\index{lr-boundary-offsetp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-lr-f-addr-lr-init-data-seg \\ \index{fetch-lr-f-addr-lr-init-data-se!g}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}), {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-nodep-lr-init-data-seg-helper \\ \index{lr-proper-heapp-nodep-lr-init-d!ata-seg-helper}
\=\+(\=\+({\it{offset\/}} $\not<$ {\rm{offset}}\,({\sc{lr-f-addr}}\index{lr-f-addr})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{offset\/}}))\index{tag})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}) $\not<$ ({\it{offset\/}} $+$ {\sc{lr-node-size}}\index{lr-node-size})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp-nodep}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), {\it{offset\/}}))\index{tag}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-proper-heapp-nodep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp2-lr-init-data-seg-helper \\ \index{lr-proper-heapp2-lr-init-data-se!g-helper}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-))\index{length}) \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{offset\/}}))\index{tag})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{addr}}, {\rm{cons}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{offset\/}}))\index{tag}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp2-lr-init-data-seg \\ \index{lr-proper-heapp2-lr-init-data-se!g}
\=\+({\it{heap-size\/}} $\not<$ {\tt{2}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag}, \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-add-addr-ref-count-lr-t-addr-lr-init-data-seg \\ \index{fetch-add-addr-ref-count-lr-t-a!ddr-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-t-addr-compile-quote-list-init-data-seg \\ \index{fetch-t-addr-compile-quote-list!-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-t-addr}}\index{lr-t-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-ref-count-t-addr-compile-quote-list-init-data-seg \\ \index{fetch-ref-count-t-addr-compile-q!uote-list-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-t-addr}}\index{lr-t-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-add-addr-ref-count-lr-0-addr-lr-init-data-seg \\ \index{fetch-add-addr-ref-count-lr-0-a!ddr-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-0-addr-compile-quote-list-init-data-seg \\ \index{fetch-0-addr-compile-quote-list!-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-0-addr}}\index{lr-0-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-add1-tag}}\index{lr-add1-tag})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-ref-count-0-addr-compile-quote-list-init-data-seg \\ \index{fetch-ref-count-0-addr-compile-q!uote-list-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-unbox-nat-0-addr-compile-quote-list-init-data-seg \\ \index{fetch-unbox-nat-0-addr-compile-q!uote-list-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-unbox-nat-offset}}\index{lr-unbox-nat-offset})\index{add-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{0}})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-lr-compile-quote-ft-lr-init-data-seg \\ \index{lr-proper-heapp-lr-compile-quote!-ft-lr-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}))))\-\index{lr-compile-quote}))\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cdr-compile-quote-list-t0-lr-init-data-seg-cons-table \\ \index{cdr-compile-quote-list-t0-lr-init!-data-seg-cons-table}
\=\+(($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ({\it{heap-size\/}} $\not<$ {\tt{4}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}) \\ 
$=$$\;\;\;\;${\rm{cons}}\,(\=\+{\rm{cons}}\,({\tt{0}}, {\rm{identity}}\,({\sc{lr-0-addr}}\index{lr-0-addr})), \\ 
{\rm{cons}}\,({\rm{cons}}\,({\bf{t}}, {\rm{identity}}\,({\sc{lr-t-addr}}\index{lr-t-addr})), {\it{table\/}}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-f-addr-compile-quote-list-init-data-seg \\ \index{fetch-f-addr-compile-quote-list!-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fetch-ref-count-f-addr-compile-quote-list-init-data-seg \\ \index{fetch-ref-count-f-addr-compile-q!uote-list-init-data-seg}
\=\+(({\it{heap-size\/}} $\not<$ {\tt{4}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-f-addr}}\index{lr-f-addr}, {\sc{lr-ref-count-offset}}\index{lr-ref-count-offset})\index{add-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-compile-quote-t0-init-data-seg \\ \index{lr-s-similar-const-table-compile!-quote-t0-init-data-seg}
\=\+({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,(\=\+{\bf{f}}, \\ 
{\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}))\-))\-\index{lr-compile-quote}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,(\=\+{\bf{f}}, \\ 
{\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}))\-))\-\index{lr-compile-quote}))\-\index{lr-s-similar-const-table}\-
\end{tabbing}


\noindent{\sc Event}:   Disable cdr-compile-quote-list-t0-lr-init-data-seg-cons-table.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  fetch-fp-addr-compile-quote-list-t0-lr-init-data-seg-cons-table \\ \index{fetch-fp-addr-compile-quote-list!-t0-lr-init-data-seg-cons-table}
\=\+(($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ({\it{heap-size\/}} $\not<$ {\tt{4}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch} \\ 
$=$$\;\;\;\;${\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-free-list-nodes-lr-compile-quote-t0 \\ \index{lr-free-list-nodes-lr-compile-q!uote-t0}
\=\+(($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp}) $\wedge$ ({\it{heap-size\/}} $\not<$ {\tt{4}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-free-list-nodes}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-free-list-nodes} \\ 
$=$$\;\;\;\;${\rm{lr-all-nodes}}\,(\=\+{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size} $+$ {\rm{offset}}\,({\sc{lr-0-addr}}\index{lr-0-addr})\index{offset}), \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag})\-\index{lr-all-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-lr-all-nodes \\ \index{listp-lr-all-nodes}
\=\+{\rm{listp}}\,({\rm{lr-all-nodes}}\,({\it{min-offset\/}}, {\it{max-addr\/}})\index{lr-all-nodes}) \\ 
$=$$\;\;\;\;$(({\rm{offset}}\,({\it{max-addr\/}})\index{offset} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{min-offset\/}} $<$ {\rm{offset}}\,({\it{max-addr\/}})\index{offset}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-all-nodes \\ \index{length-lr-all-nodes}
\=\+({\rm{lr-boundary-offsetp}}\,({\it{offset\/}})\index{lr-boundary-offsetp} $\wedge$ ({\it{offset\/}} $\in\;${\bf{N}}${}$) $\wedge$ {\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{lr-all-nodes}}\,({\it{offset\/}}, {\it{addr\/}})\index{lr-all-nodes})\index{length} \\ 
$=$$\;\;\;\;$(({\rm{offset}}\,({\it{addr\/}})\index{offset} $-$ {\it{offset\/}}) $\div$ {\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-append-lr-all-nodes-fact \\ \index{lr-count-free-nodes-append-lr-a!ll-nodes-fact}
\=\+(\=\+(({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}) $\not<$ {\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\tt{0}}, {\it{table\/}})\index{definedp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{identity}}\,({\rm{add-addr}}\,({\sc{lr-0-addr}}\index{lr-0-addr}, {\sc{lr-node-size}}\index{lr-node-size})\index{add-addr}), \\ 
{\rm{lr-all-nodes}}\,(\=\+{\rm{identity}}\,({\sc{lr-minimum-heap-size}}\index{lr-minimum-heap-size}), \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
\=\+{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) \\ 
$*$$\;\;\;\;${\it{heap-size\/}}\-)\-)\-\index{tag})\-\index{lr-all-nodes}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;$({\it{heap-size\/}} $-$ {\sc{lr-node-size}}\index{lr-node-size}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-pair-formal-with-addresses \\ \index{proper-p-alistp-pair-formal-wit!h-addresses}
\=\+(\=\+{\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{params\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{s-total-ws-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-ws-reqs}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,(\=\+{\rm{pair-formals-with-addresses}}\,(\=\+{\it{params\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{pair-formals-with-addresses}, \\ 
{\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}), \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{s-$>$lr1})\index{lr-$>$p})\-\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-alistp-lr-make-initial-temps \\ \index{proper-p-alistp-lr-make-initial!-temps}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\it{temp-vars\/}})\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-alistp}}\,(\=\+{\rm{lr-make-initial-temps}}\,({\it{temp-vars\/}})\index{lr-make-initial-temps}, \\ 
{\rm{lr-$>$p}}\,({\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state}, \\ 
{\it{table\/}})\-\index{s-$>$lr1})\index{lr-$>$p})\-\index{proper-p-alistp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-minimum-heapp-lr-data-seg-table-body \\ \index{lr-minimum-heapp-lr-data-seg-ta!ble-body}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-minimum-heapp}}\,({\rm{car}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\index{lr-minimum-heapp} \\ 
$=$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-compile-quote-s-heap-reqs-flag-t \\ \index{lr-count-free-nodes-lr-compile-q!uote-s-heap-reqs-flag-t}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{s-heap-reqs}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\bf{t}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{lr-count-free-nodes})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-data-seg-table-body-s-heap-reqs \\ \index{lr-count-free-nodes-lr-data-seg!-table-body-s-heap-reqs}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-body-lr-good-pointerp-tablep-help1 \\ \index{lr-data-seg-table-body-lr-good-p!ointerp-tablep-help1}
\=\+{\bf let }\=\+{\it{data-seg-tab\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table-body}}\,({\bf{t}}, {\rm{car}}\,({\it{body\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{s-heap-reqs-body}}\,({\bf{t}}, {\rm{car}}\,({\it{body\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\rm{car}}\,({\it{data-seg-tab\/}}), \\ 
{\rm{cdr}}\,({\it{data-seg-tab\/}}))\-\index{s-heap-reqs-body})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\it{data-seg-tab\/}}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\it{data-seg-tab\/}}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\it{data-seg-tab\/}}))\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\rm{car}}\,({\it{data-seg-tab\/}}), \\ 
{\rm{cdr}}\,({\it{data-seg-tab\/}}))\-\index{s-heap-reqs-body})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-body-lr-good-pointerp-tablep \\ \index{lr-data-seg-table-body-lr-good-p!ointerp-tablep}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,(\=\+{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-list-lr-good-pointerp-tablep-helper-1 \\ \index{lr-data-seg-table-list-lr-good-p!ointerp-tablep-helper-1}
\=\+{\bf let }\=\+{\it{dst-body\/}}{\bf $\;$ be$\;\;$}{\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\it{progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{s-heap-reqs-body}}\,({\bf{t}}, {\rm{s-body}}\,({\rm{car}}\,({\it{progs\/}}))\index{s-body}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-list}}\,(\=\+{\rm{cdr}}\,({\it{progs\/}}), \\ 
{\rm{car}}\,({\it{dst-body\/}}), \\ 
{\rm{cdr}}\,({\it{dst-body\/}}))\-\index{s-heap-reqs-list})\-)\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\rm{car}}\,({\it{dst-body\/}}))\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\it{dst-body\/}}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\it{dst-body\/}}))\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,(\=\+{\rm{cdr}}\,({\it{progs\/}}), \\ 
{\rm{car}}\,({\it{dst-body\/}}), \\ 
{\rm{cdr}}\,({\it{dst-body\/}}))\-\index{s-heap-reqs-list})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-init-data-seg-table-lr-good-pointerp-tablep \\ \index{lr-init-data-seg-table-lr-good-p!ointerp-tablep}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,(\=\+{\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}), \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-car-lr-data-seg-table-body \\ \index{lr-proper-heapp-car-lr-data-seg!-table-body}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{car}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-car-lr-data-seg-table-list \\ \index{lr-proper-heapp-car-lr-data-seg!-table-list}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-car-lr-init-data-seg-table \\ \index{lr-proper-heapp-car-lr-init-dat!a-seg-table}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-init-data-seg-table-s-init-heap-reqs \\ \index{lr-count-free-nodes-lr-init-dat!a-seg-table-s-init-heap-reqs}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-car-lr-data-seg-table-helper-1 \\ \index{lr-proper-heapp-car-lr-data-seg!-table-helper-1}
\=\+{\bf let }\=\+{\it{data-seg-table\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}))))\-\index{lr-compile-quote}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{heap-size\/}} $\not<$ (\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\tt{2}} \\ 
$+$$\;\;\;\;${\rm{s-init-heap-reqs}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{data-seg-table\/}}), \\ 
{\rm{cdr}}\,({\it{data-seg-table\/}}))\-\index{s-init-heap-reqs} \\ 
$+$$\;\;\;\;${\it{x\/}})\-) \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\rm{car}}\,({\it{data-seg-table\/}}))\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{data-seg-table\/}}), \\ 
{\rm{cdr}}\,({\it{data-seg-table\/}}))\-\index{lr-init-data-seg-table}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{data-seg-table\/}}), \\ 
{\rm{cdr}}\,({\it{data-seg-table\/}}))\-\index{lr-init-data-seg-table}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\rm{car}}\,({\it{data-seg-table\/}}), \\ 
{\rm{cdr}}\,({\it{data-seg-table\/}}))\-\index{lr-init-data-seg-table}))\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\it{x\/}})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-heapp-car-lr-data-seg-table \\ \index{lr-proper-heapp-car-lr-data-seg!-table}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  litatom-car-gensym \\ \index{litatom-car-gensym}
{\rm{litatom}}\,({\rm{car}}\,({\rm{gensym}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{atom-list\/}})\index{gensym}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-litatoms-strip-cdrs-lr-make-temp-name-alist-1 \\ \index{all-litatoms-strip-cdrs-lr-make!-temp-name-alist-1}
{\rm{all-litatoms}}\,({\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist-1}}\,(\=\+{\it{initial\/}}, \\ 
{\it{num-list\/}}, \\ 
{\it{temp-list\/}}, \\ 
{\it{formals\/}})\-\index{lr-make-temp-name-alist-1})\index{strip-cdrs})\index{all-litatoms}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-litatoms-strip-cdrs-lr-make-temp-name-alist \\ \index{all-litatoms-strip-cdrs-lr-make!-temp-name-alist}
{\rm{all-litatoms}}\,({\rm{strip-cdrs}}\,({\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist})\index{strip-cdrs})\index{all-litatoms}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-p-areasp-car-lr-data-seg-table \\ \index{lr-proper-p-areasp-car-lr-data-!seg-table}
{\rm{lr-proper-p-areasp}}\,({\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\index{lr-proper-p-areasp}
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  lr-make-temp-name-alist-1-plist-arg-1 \\ \index{lr-make-temp-name-alist-1-plist!-arg-1}
\=\+{\rm{lr-make-temp-name-alist-1}}\,({\it{initial\/}}, {\it{num-list\/}}, {\rm{plist}}\,({\it{temp-list\/}})\index{plist}, {\it{formals\/}})\index{lr-make-temp-name-alist-1} \\ 
$=$$\;\;\;\;${\rm{lr-make-temp-name-alist-1}}\,({\it{initial\/}}, {\it{num-list\/}}, {\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist-1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-make-temp-name-alist-plist-arg-1 \\ \index{lr-make-temp-name-alist-plist-a!rg-1}
\=\+{\rm{lr-make-temp-name-alist}}\,({\rm{plist}}\,({\it{temp-list\/}})\index{plist}, {\it{formals\/}})\index{lr-make-temp-name-alist} \\ 
$=$$\;\;\;\;${\rm{lr-make-temp-name-alist}}\,({\it{temp-list\/}}, {\it{formals\/}})\index{lr-make-temp-name-alist}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-make-initial-temps \\ \index{length-lr-make-initial-temps}
{\rm{length}}\,({\rm{lr-make-initial-temps}}\,({\it{temp-vars\/}})\index{lr-make-initial-temps})\index{length} $=$ {\rm{length}}\,({\it{temp-vars\/}})\index{length}
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  length-pair-formals-with-addresses \\ \index{length-pair-formals-with-addres!ses}
{\rm{length}}\,({\rm{pair-formals-with-addresses}}\,({\it{formals\/}}, {\it{alist\/}})\index{pair-formals-with-addresses})\index{length} $=$ {\rm{length}}\,({\it{formals\/}})\index{length}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-good-statep-length-s-temp-list \\ \index{s-good-statep-length-s-temp-list}
\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\rightarrow$$\;\;\;\;$({\rm{length}}\,({\rm{s-temp-list}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-temp-list})\index{length} $=$ {\rm{length}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-comp-programs-1 \\ \index{plistp-comp-programs-1}
{\rm{plistp}}\,({\rm{comp-programs-1}}\,({\it{progs\/}})\index{comp-programs-1})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-ret \\ \index{proper-p-instructionp-ret}
{\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-eq \\ \index{proper-p-instructionp-eq}
{\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-fetch \\ \index{proper-p-instructionp-fetch}
{\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{fetch}}{\tt{)}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-deposit \\ \index{proper-p-instructionp-deposit}
{\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{deposit}}{\tt{)}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-add-addr \\ \index{proper-p-instructionp-add-addr}
{\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{add-addr}}{\tt{)}}, {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-pop-global-free-ptr \\ \index{proper-p-instructionp-pop-globa!l-free-ptr}
\=\+{\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{pop-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, {\it{name\/}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-push-global-free-ptr \\ \index{proper-p-instructionp-push-glob!al-free-ptr}
\=\+{\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{push-global}}{\tt{ }}{\tt{free-ptr}}{\tt{)}}, {\it{name\/}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-push-local-temp-car \\ \index{proper-p-instructionp-push-loca!l-temp-car}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{push-local}}{\tt{ }}{\tt{x}}{\tt{)}}, {\tt{'}}{\tt{car}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-push-local-temp-cdr \\ \index{proper-p-instructionp-push-loca!l-temp-cdr}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{push-local}}{\tt{ }}{\tt{x}}{\tt{)}}, {\tt{'}}{\tt{cdr}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-push-local-temp-cons \\ \index{proper-p-instructionp-push-loca!l-temp-cons}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{push-local}}{\tt{ }}{\tt{temp}}{\tt{)}}, {\tt{'}}{\tt{cons}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-set-local-temp-cons \\ \index{proper-p-instructionp-set-local!-temp-cons}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\tt{'}}{\tt{(}}{\tt{set-local}}{\tt{ }}{\tt{temp}}{\tt{)}}, {\tt{'}}{\tt{cons}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-append \\ \index{proper-labeled-p-instructionsp-!append}
\=\+{\rm{plistp}}\,({\it{instrs1\/}})\index{plistp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{proper-labeled-p-instructionsp}}\,({\rm{append}}\,({\it{instrs1\/}}, {\it{instrs2\/}}), {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{proper-labeled-p-instructionsp}}\,({\it{instrs1\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,({\it{instrs2\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-number-cons-cur-expr-dv-1-listp \\ \index{lessp-number-cons-cur-expr-dv-1!-listp}
\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{number-cons}}\,({\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{cur-expr})\index{number-cons} \\ 
$<$$\;\;\;\;${\rm{number-cons}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{number-cons})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-number-cons-cur-expr-dv-2-listp \\ \index{lessp-number-cons-cur-expr-dv-2!-listp}
\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{number-cons}}\,({\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{2}})\index{dv}, {\it{body\/}})\index{cur-expr})\index{number-cons} \\ 
$<$$\;\;\;\;${\rm{number-cons}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{number-cons})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-number-cons-cur-expr-dv-3-listp \\ \index{lessp-number-cons-cur-expr-dv-3!-listp}
\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{number-cons}}\,({\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{3}})\index{dv}, {\it{body\/}})\index{cur-expr})\index{number-cons} \\ 
$<$$\;\;\;\;${\rm{number-cons}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{number-cons})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-number-cons-restn-cdr \\ \index{lessp-number-cons-restn-cdr}
\=\+(\=\+{\rm{listp}}\,({\it{pos\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}) $<$ {\rm{length}}\,({\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{number-cons}}\,({\rm{restn}}\,({\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}), {\rm{cdr}}\,({\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr}))\index{restn})\index{number-cons} \\ 
$<$$\;\;\;\;${\rm{number-cons}}\,({\rm{restn}}\,({\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}), {\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr})\index{restn})\index{number-cons})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-test-bool-and-jump-label \\ \index{proper-p-instructionp-test-bool!-and-jump-label}
\=\+{\rm{proper-p-instructionp}}\,({\rm{list}}\,({\tt{'}}{\tt{test-bool-and-jump}}, {\it{x\/}}, {\it{lab\/}}), {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$=$$\;\;\;\;${\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{tabbing}{\sc Theorem}:  proper-p-instructionp-jump-label \\ \index{proper-p-instructionp-jump-labe!l}
\=\+{\rm{proper-p-instructionp}}\,({\rm{list}}\,({\tt{'}}{\tt{jump}}, {\it{lab\/}}), {\it{name\/}}, {\it{p\/}})\index{proper-p-instructionp} \\ 
$=$$\;\;\;\;${\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{tabbing}{\sc Theorem}:  plist-lr-convert-num-to-ascii \\ \index{plist-lr-convert-num-to-ascii}
{\rm{plistp}}\,({\rm{lr-convert-num-to-ascii}}\,({\it{number\/}}, {\it{list\/}})\index{lr-convert-num-to-ascii})\index{plistp} $=$ {\rm{plistp}}\,({\it{list\/}})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  zerop-lr-convert-num-to-ascii \\ \index{zerop-lr-convert-num-to-ascii}
\=\+({\it{number\/}} $\simeq {\tt{0}}$) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-convert-num-to-ascii}}\,({\it{number\/}}, {\it{list\/}})\index{lr-convert-num-to-ascii} $=$ {\rm{cons}}\,({\sc{ascii-0}}\index{ascii-0}, {\it{list\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-convert-digit-to-ascii-equal \\ \index{lr-convert-digit-to-ascii-equal}
\=\+({\rm{lr-convert-digit-to-ascii}}\,({\it{m\/}})\index{lr-convert-digit-to-ascii} $=$ {\rm{lr-convert-digit-to-ascii}}\,({\it{n\/}})\index{lr-convert-digit-to-ascii}) \\ 
$=$$\;\;\;\;$({\rm{fix}}\,({\it{m\/}}) $=$ {\rm{fix}}\,({\it{n\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  zerop-lr-convert-digit-to-ascii \\ \index{zerop-lr-convert-digit-to-ascii}
({\it{number\/}} $\simeq {\tt{0}}$) $\rightarrow$ ({\rm{lr-convert-digit-to-ascii}}\,({\it{number\/}})\index{lr-convert-digit-to-ascii} $=$ {\sc{ascii-0}}\index{ascii-0})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  equal-ascii-0-lr-convert-digit-to-ascii \\ \index{equal-ascii-0-lr-convert-digit-t!o-ascii}
({\rm{lr-convert-digit-to-ascii}}\,({\it{number\/}})\index{lr-convert-digit-to-ascii} $=$ {\rm{identity}}\,({\sc{ascii-0}}\index{ascii-0})) $=$ ({\it{number\/}} $\simeq {\tt{0}}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-lr-convert-num-to-ascii \\ \index{length-lr-convert-num-to-ascii}
{\rm{length}}\,({\rm{lr-convert-num-to-ascii}}\,({\it{number\/}}, {\it{list\/}})\index{lr-convert-num-to-ascii})\index{length} $\not<$ ($1\;+$ {\rm{length}}\,({\it{list\/}})\index{length})
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-22} \\  
\=\+{\rm{induct-hint-22}}\,({\it{n\/}}, {\it{m\/}}, {\it{list\/}})\index{induct-hint-22} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\tt{10}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{m\/}} $<$ {\tt{10}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-22}}\,(\=\+{\it{n\/}} $\div$ {\tt{10}}, \\ 
{\it{m\/}} $\div$ {\tt{10}}, \\ 
{\rm{cons}}\,(\=\+{\rm{lr-convert-digit-to-ascii}}\,({\it{n\/}} ${}${\bf{mod}}${}$ {\tt{10}})\index{lr-convert-digit-to-ascii}, \\ 
{\it{list\/}})\-)\-\index{induct-hint-22}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-convert-num-to-ascii-equal-arg1 \\ \index{lr-convert-num-to-ascii-equal-a!rg1}
\=\+({\rm{lr-convert-num-to-ascii}}\,({\it{x\/}}, {\it{list1\/}})\index{lr-convert-num-to-ascii} $=$ {\rm{lr-convert-num-to-ascii}}\,({\it{x\/}}, {\it{list2\/}})\index{lr-convert-num-to-ascii}) \\ 
$=$$\;\;\;\;$({\it{list1\/}} $=$ {\it{list2\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-23} \\  
\=\+{\rm{induct-hint-23}}\,({\it{n\/}}, {\it{m\/}}, {\it{list1\/}}, {\it{list2\/}})\index{induct-hint-23} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\tt{10}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{m\/}} $<$ {\tt{10}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-23}}\,(\=\+{\it{n\/}} $\div$ {\tt{10}}, \\ 
{\it{m\/}} $\div$ {\tt{10}}, \\ 
{\rm{cons}}\,(\=\+{\rm{lr-convert-digit-to-ascii}}\,({\it{n\/}} ${}${\bf{mod}}${}$ {\tt{10}})\index{lr-convert-digit-to-ascii}, \\ 
{\it{list1\/}})\-, \\ 
{\rm{cons}}\,(\=\+{\rm{lr-convert-digit-to-ascii}}\,({\it{m\/}} ${}${\bf{mod}}${}$ {\tt{10}})\index{lr-convert-digit-to-ascii}, \\ 
{\it{list2\/}})\-)\-\index{induct-hint-23}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-convert-num-to-ascii-equal-arg2-lengths-helper-1 \\ \index{lr-convert-num-to-ascii-equal-a!rg2-lengths-helper-1}
\=\+({\rm{length}}\,({\it{list1\/}})\index{length} $=$ {\rm{length}}\,({\it{list2\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-convert-num-to-ascii}}\,({\it{number\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{list1\/}}))\index{lr-convert-num-to-ascii} $\not=$ {\rm{cons}}\,({\it{y\/}}, {\it{list2\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-convert-num-to-ascii-equal-arg2-lengths \\ \index{lr-convert-num-to-ascii-equal-a!rg2-lengths}
\=\+(({\rm{length}}\,({\it{list1\/}})\index{length} $=$ {\rm{length}}\,({\it{list2\/}})\index{length}) $\wedge$ ({\it{list1\/}} $\not=$ {\it{list2\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-convert-num-to-ascii}}\,({\it{x\/}}, {\it{list1\/}})\index{lr-convert-num-to-ascii} \\ 
$\not=$$\;\;\;\;${\rm{lr-convert-num-to-ascii}}\,({\it{y\/}}, {\it{list2\/}})\index{lr-convert-num-to-ascii})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-convert-num-to-ascii-equal-arg2-helper-1 \\ \index{lr-convert-num-to-ascii-equal-a!rg2-helper-1}
\=\+({\it{x\/}} $\not=$ {\it{y\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-convert-num-to-ascii}}\,({\it{w\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{list\/}}))\index{lr-convert-num-to-ascii} \\ 
$\not=$$\;\;\;\;${\rm{lr-convert-num-to-ascii}}\,({\it{z\/}}, {\rm{cons}}\,({\it{y\/}}, {\it{list\/}}))\index{lr-convert-num-to-ascii})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-convert-num-to-ascii-equal-arg2 \\ \index{lr-convert-num-to-ascii-equal-a!rg2}
\=\+({\rm{lr-convert-num-to-ascii}}\,({\it{m\/}}, {\it{list\/}})\index{lr-convert-num-to-ascii} $=$ {\rm{lr-convert-num-to-ascii}}\,({\it{n\/}}, {\it{list\/}})\index{lr-convert-num-to-ascii}) \\ 
$=$$\;\;\;\;$({\rm{fix}}\,({\it{m\/}}) $=$ {\rm{fix}}\,({\it{n\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-make-label-equal \\ \index{lr-make-label-equal}
({\rm{lr-make-label}}\,({\it{m\/}})\index{lr-make-label} $=$ {\rm{lr-make-label}}\,({\it{n\/}})\index{lr-make-label}) $=$ ({\rm{fix}}\,({\it{m\/}}) $=$ {\rm{fix}}\,({\it{n\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-labelp-lr-make-label-label-instrs \\ \index{find-labelp-lr-make-label-label!-instrs}
\=\+{\rm{find-labelp}}\,({\rm{lr-make-label}}\,({\it{m\/}})\index{lr-make-label}, {\rm{label-instrs}}\,({\it{instrs\/}}, {\it{n\/}})\index{label-instrs})\index{find-labelp} \\ 
$=$$\;\;\;\;$(({\it{m\/}} $\not<$ {\it{n\/}}) $\wedge$ ({\it{m\/}} $<$ ({\it{n\/}} $+$ {\rm{length}}\,({\it{instrs\/}})\index{length})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-labelp-lr-make-label-comp-body \\ \index{find-labelp-lr-make-label-comp-!body}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\rm{comp-body}}\,({\it{body\/}})\index{comp-body})\index{length}) \\ 
$\rightarrow$$\;\;\;\;${\rm{find-labelp}}\,({\rm{lr-make-label}}\,({\it{n\/}})\index{lr-make-label}, {\rm{comp-body}}\,({\it{body\/}})\index{comp-body})\index{find-labelp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  label-instrs-append \\ \index{label-instrs-append}
\=\+({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{label-instrs}}\,({\rm{append}}\,({\it{instrs1\/}}, {\it{instrs2\/}}), {\it{n\/}})\index{label-instrs} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{label-instrs}}\,({\it{instrs1\/}}, {\it{n\/}})\index{label-instrs}, \\ 
{\rm{label-instrs}}\,({\it{instrs2\/}}, {\it{n\/}} $+$ {\rm{length}}\,({\it{instrs1\/}})\index{length})\index{label-instrs})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-temp-var-dclsp-all-litatoms-all-undef-addrs \\ \index{proper-p-temp-var-dclsp-all-lit!atoms-all-undef-addrs}
\=\+(\=\+{\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{temp-var-dcls\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{all-undef-addrs}}\,({\rm{strip-cadrs}}\,({\it{temp-var-dcls\/}})\index{strip-cadrs})\index{all-undef-addrs} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,({\it{temp-var-dcls\/}}, {\it{p\/}})\index{proper-p-temp-var-dclsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-label-instrs \\ \index{plistp-label-instrs}
{\rm{plistp}}\,({\rm{label-instrs}}\,({\it{instrs\/}}, {\it{n\/}})\index{label-instrs})\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{not-labelledp-instrs} \\  
\=\+{\rm{not-labelledp-instrs}}\,({\it{instrs\/}})\index{not-labelledp-instrs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{instrs\/}}) \\ 
{\bf then }\=\+($\neg$ {\rm{labelledp}}\,({\rm{car}}\,({\it{instrs\/}}))\index{labelledp}) \\ 
$\wedge$$\;\;\;\;${\rm{not-labelledp-instrs}}\,({\rm{cdr}}\,({\it{instrs\/}}))\index{not-labelledp-instrs}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  label-instrs-proper-labeled-p-instructionsp \\ \index{label-instrs-proper-labeled-p-i!nstructionsp}
\=\+(\=\+{\rm{proper-labeled-p-instructionsp}}\,({\it{instrs\/}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{not-labelledp-instrs}}\,({\it{instrs\/}})\index{not-labelledp-instrs})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,({\rm{label-instrs}}\,({\it{instrs\/}}, {\it{n\/}})\index{label-instrs}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-labelledp-instrs-append \\ \index{not-labelledp-instrs-append}
\=\+{\rm{not-labelledp-instrs}}\,({\rm{append}}\,({\it{instrs1\/}}, {\it{instrs2\/}}))\index{not-labelledp-instrs} \\ 
$=$$\;\;\;\;$({\rm{not-labelledp-instrs}}\,({\it{instrs1\/}})\index{not-labelledp-instrs} $\wedge$ {\rm{not-labelledp-instrs}}\,({\it{instrs2\/}})\index{not-labelledp-instrs})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-labelledp-instrs-comp-body-1 \\ \index{not-labelledp-instrs-comp-body-!1}
{\rm{not-labelledp-instrs}}\,({\rm{comp-body-1}}\,({\it{flag\/}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1})\index{not-labelledp-instrs}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  comp-body-1-list-not-listp \\ \index{comp-body-1-list-not-listp}
($\neg$ {\rm{listp}}\,({\it{body\/}})) $\rightarrow$ ({\rm{comp-body-1}}\,({\tt{'}}{\tt{list}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1} $=$ {\bf{nil}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-nil \\ \index{proper-labeled-p-instructionsp-!nil}
{\rm{proper-labeled-p-instructionsp}}\,({\bf{nil}}, {\it{name\/}}, {\it{p\/}})\index{proper-labeled-p-instructionsp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-1 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-1}
\=\+(\=\+{\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\it{test-body\/}}, {\it{n1\/}})\index{comp-body-1}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\it{then-body\/}}, {\it{n2\/}})\index{comp-body-1}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\it{else-instrs\/}}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+((\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\it{test-body\/}})\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\it{then-body\/}})\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{else-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}})\- $-\;1$) \\ 
$<$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{program-body})\index{lr-p-c-size})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-if}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\it{test-body\/}}, {\it{n1\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\it{then-body\/}}, {\it{n2\/}})\index{comp-body-1}, \\ 
{\it{else-instrs\/}}, \\ 
{\it{n\/}})\-\index{comp-if}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-2 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-2}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) $\vee$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{program-names\/}}, \\ 
{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{body\/}}))), \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-3 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-3}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$(({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{program-names\/}}, \\ 
{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\it{body\/}}))), \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-4 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-4}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}), {\it{n\/}} $+$ {\tt{4}})\index{comp-body-1}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{program-names\/}}, \\ 
{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{program-body})\index{lr-p-c-size} \\ 
$\not<$$\;\;\;\;$({\it{n\/}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}))\index{lr-p-c-size} $+$ {\tt{7}}))\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-temp-test}}\,(\=\+{\it{body\/}}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\it{body\/}}), \\ 
{\it{n\/}} $+$ {\tt{4}})\-\index{comp-body-1}, \\ 
{\it{n\/}})\-\index{comp-temp-test}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{assoc-cdr} \\  
\=\+{\rm{assoc-cdr}}\,({\it{x\/}}, {\it{l\/}})\index{assoc-cdr} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{l\/}}) \\ 
{\bf then }\=\+{\bf if }{\it{x\/}} $=$ {\rm{cdar}}\,({\it{l\/}})$\;\;${\bf then }{\rm{car}}\,({\it{l\/}}) \\ 
{\bf else }{\rm{assoc-cdr}}\,({\it{x\/}}, {\rm{cdr}}\,({\it{l\/}}))\index{assoc-cdr}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{f}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-valp-member-strip-cdrs \\ \index{lr-s-similar-const-table-lr-valp!-member-strip-cdrs}
\=\+(({\it{addr\/}} $\in$ {\rm{strip-cdrs}}\,({\it{table\/}})\index{strip-cdrs}) $\wedge$ {\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\rm{car}}\,({\rm{assoc-cdr}}\,({\it{addr\/}}, {\it{table\/}})\index{assoc-cdr}), {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-type-addr-member-strip-cdrs \\ \index{lr-s-similar-const-table-type-a!ddr-member-strip-cdrs}
\=\+(({\it{addr\/}} $\in$ {\rm{strip-cdrs}}\,({\it{table\/}})\index{strip-cdrs}) $\wedge$ {\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name})) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{fetch}}\,(\=\+{\rm{add-addr}}\,({\it{addr\/}}, {\rm{identity}}\,({\sc{lr-ref-count-offset}}\index{lr-ref-count-offset}))\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch})\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{nat}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-5 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-5}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{push-constant}}, \\ 
{\rm{cadr}}\,({\it{body\/}}))\-), \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-s-similar-const-table-type-addr-member-strip-cdrs.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-list-cdr-funcall \\ \index{lr-proper-exprp-flag-list-cdr-f!uncall}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{body\/}}), {\it{program-names\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-6-1 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-6-1}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{car}}\,({\it{body\/}}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{call}}, {\rm{car}}\,({\it{body\/}}))), \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-6-2 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-6-2}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{definedp}}\,({\rm{car}}\,({\it{body\/}}), {\sc{p-runtime-support-programs}}\index{p-runtime-support-programs})\index{definedp}) \\ 
$\wedge$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{cdr}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}})))\index{all-user-fnamesp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{call}}, \\ 
{\rm{user-fname}}\,({\rm{car}}\,({\it{body\/}}))\index{user-fname})\-), \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1-helper-7 \\ \index{proper-labeled-p-instructionsp-!comp-body-1-helper-7}
\=\+(\=\+($\neg$ {\rm{listp}}\,({\it{body\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{program-names\/}}, \\ 
{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\it{body\/}})), \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-definedp-not-listp \\ \index{not-definedp-not-listp}
($\neg$ {\rm{listp}}\,({\it{alist\/}})) $\rightarrow$ ($\neg$ {\rm{definedp}}\,({\it{name\/}}, {\it{alist\/}})\index{definedp})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-comp-body-1 \\ \index{proper-labeled-p-instructionsp-!comp-body-1}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{cdr}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}})))\index{all-user-fnamesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}}$\;\;${\bf then }{\tt{'}}{\tt{list}} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-, \\ 
{\it{body\/}}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\rm{formal-vars}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\rm{strip-cars}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{temp-var-dcls}), \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;$(\=\+({\it{n\/}} $+$ {\rm{lr-p-c-size}}\,(\=\+\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}}$\;\;${\bf then }{\tt{'}}{\tt{list}} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-, \\ 
{\it{body\/}})\-\index{lr-p-c-size}) \\ 
$<$$\;\;\;\;$($1\;+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{prog-seg\/}}))\index{program-body})\index{lr-p-c-size}))\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{prog-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-body-1}}\,({\it{flag\/}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1}, \\ 
{\it{name\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-undef-addrs-strip-cadrs-lr-make-temp-var-dcls \\ \index{all-undef-addrs-strip-cadrs-lr-!make-temp-var-dcls}
{\rm{all-undef-addrs}}\,({\rm{strip-cadrs}}\,({\rm{lr-make-temp-var-dcls}}\,({\it{temp-alist\/}})\index{lr-make-temp-var-dcls})\index{strip-cadrs})\index{all-undef-addrs}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-car-code \\ \index{proper-p-programp-p-car-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-car-code}}\index{p-car-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-cdr-code \\ \index{proper-p-programp-p-cdr-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-cdr-code}}\index{p-cdr-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-cons-code \\ \index{proper-p-programp-p-cons-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-cons-code}}\index{p-cons-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-false-code \\ \index{proper-p-programp-p-false-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\rm{log}}\,({\tt{2}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{log}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-false-code}}\index{p-false-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-falsep-code \\ \index{proper-p-programp-p-falsep-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\rm{log}}\,({\tt{2}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{log}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-falsep-code}}\index{p-falsep-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-listp-code \\ \index{proper-p-programp-p-listp-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-listp-code}}\index{p-listp-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-nlistp-code \\ \index{proper-p-programp-p-nlistp-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-nlistp-code}}\index{p-nlistp-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-true-code \\ \index{proper-p-programp-p-true-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\rm{log}}\,({\tt{2}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{log}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-true-code}}\index{p-true-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-p-truep-code \\ \index{proper-p-programp-p-truep-code}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\rm{log}}\,({\tt{2}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{log}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,({\sc{p-truep-code}}\index{p-truep-code}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-data-seg-table-body \\ \index{lr-s-similar-const-table-lr-dat!a-seg-table-body}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-data-seg-table-list \\ \index{lr-s-similar-const-table-lr-dat!a-seg-table-list}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\rm{cdr}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-lr-init-data-seg-table \\ \index{lr-s-similar-const-table-lr-init!-data-seg-table}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}), \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-cdr-car-lr-data-seg-table \\ \index{lr-s-similar-const-table-cdr-ca!r-lr-data-seg-table}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,(\=\+{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{lr-s-similar-const-table}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-3} \\  
\=\+{\rm{induct-hint-3}}\,({\it{flag\/}}, {\it{pos\/}}, {\it{prog\/}})\index{induct-hint-3} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\it{pos\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{listp}}\,({\rm{restn}}\,(\=\+{\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}), \\ 
{\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr})\-\index{restn}) \\ 
{\bf then }\=\+{\rm{induct-hint-3}}\,({\bf{t}}, {\it{pos\/}}, {\it{prog\/}})\index{induct-hint-3} \\ 
$\wedge$$\;\;\;\;${\rm{induct-hint-3}}\,({\tt{'}}{\tt{list}}, {\rm{nx}}\,({\it{pos\/}})\index{nx}, {\it{prog\/}})\index{induct-hint-3}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\rm{induct-hint-3}}\,({\bf{t}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{prog\/}})\index{induct-hint-3} \\ 
$\wedge$$\;\;\;\;${\rm{induct-hint-3}}\,({\bf{t}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{2}})\index{dv}, {\it{prog\/}})\index{induct-hint-3} \\ 
$\wedge$$\;\;\;\;${\rm{induct-hint-3}}\,({\bf{t}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{3}})\index{dv}, {\it{prog\/}})\index{induct-hint-3}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }\=\+({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test})\- \\ 
{\bf then }{\rm{induct-hint-3}}\,({\bf{t}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{prog\/}})\index{induct-hint-3} \\ 
{\bf elseif }{\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{induct-hint-3}}\,({\tt{'}}{\tt{list}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{prog\/}})\index{induct-hint-3}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-p-lr-compile-programs-helper-1 \\ \index{lr-proper-exprp-p-lr-compile-pr!ograms-helper-1}
\=\+{\rm{listp}}\,({\it{pos\/}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{get}}\,({\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}), {\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr})\index{get}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}, {\it{temp-alist\/}}, {\it{table\/}})\index{lr-compile-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-cons-lessp-4-if-s-proper-exprp \\ \index{good-posp1-cons-lessp-4-if-s-pr!oper-exprp}
\=\+(\=\+({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temp-list\/}})\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{2}})\index{dv}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{3}})\index{dv}, {\it{body\/}})\index{good-posp1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-list-cons \\ \index{lr-proper-exprp-flag-list-cons}
\=\+{\rm{lr-proper-exprp}}\,({\tt{'}}{\tt{list}}, {\rm{cons}}\,({\it{car\/}}, {\it{cdr\/}}), {\it{program-names\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-proper-exprp}}\,({\tt{'}}{\tt{list}}, {\it{cdr\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{car\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-list-nil \\ \index{lr-proper-exprp-flag-list-nil}
{\rm{lr-proper-exprp}}\,({\tt{'}}{\tt{list}}, {\bf{nil}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-3-cdr-cddr-not-nil \\ \index{length-3-cdr-cddr-not-nil}
\=\+(({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\tt{3}}) $\wedge$ {\rm{plistp}}\,({\it{x\/}})\index{plistp}) \\ 
$\rightarrow$$\;\;\;\;$(({\rm{cdddr}}\,({\it{x\/}}) $=$ {\bf{nil}}) $\wedge$ ({\rm{cddr}}\,({\it{x\/}}) $\not=$ {\bf{nil}}) $\wedge$ ({\rm{cdr}}\,({\it{x\/}}) $\not=$ {\bf{nil}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-cons-if-helper \\ \index{lr-proper-exprp-flag-not-list-c!ons-if-helper}
\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{list}}\,({\tt{'}}{\tt{if}}, {\it{test\/}}, {\it{then\/}}, {\it{else\/}}), \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$=$$\;\;\;\;$(\=\+({\tt{'}}{\tt{if}} $\not\in$ {\it{program-names\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{test\/}}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{then\/}}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\it{else\/}}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-cons-if \\ \index{lr-proper-exprp-flag-not-list-c!ons-if}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{3}})\index{dv}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{2}})\index{dv}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\rm{strip-cars}}\,({\it{temp-alist\/}}))\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{if}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body})\-, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-cons-temp-fetch \\ \index{lr-proper-exprp-flag-not-list-c!ons-temp-fetch}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\rm{strip-cars}}\,({\it{temp-alist\/}}))\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{identity}}\,({\sc{s-temp-fetch}}\index{s-temp-fetch}), \\ 
{\it{x\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), {\it{temp-alist\/}})))\-, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp1-dv-1-temp-eval-test \\ \index{good-posp1-dv-1-temp-eval-test}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp1}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{good-posp1}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-last-fact \\ \index{length-last-fact}
({\rm{length}}\,({\it{x\/}})\index{length} $=$ {\tt{1}}) $\rightarrow$ ({\rm{last}}\,({\it{x\/}})\index{last} $=$ {\it{x\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-cons-temp-eval \\ \index{lr-proper-exprp-flag-not-list-c!ons-temp-eval}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\rm{strip-cars}}\,({\it{temp-alist\/}}))\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{identity}}\,({\sc{s-temp-eval}}\index{s-temp-eval}), \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), {\it{temp-alist\/}})))\-, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-cons-temp-test \\ \index{lr-proper-exprp-flag-not-list-c!ons-temp-test}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cur-expr}}\,({\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\rm{strip-cars}}\,({\it{temp-alist\/}}))\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{identity}}\,({\sc{s-temp-test}}\index{s-temp-test}), \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), {\it{temp-alist\/}})))\-, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-data-seg-table-body-n} \\  
\=\+{\rm{lr-data-seg-table-body-n}}\,({\it{n\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body-n} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\rm{cons}}\,({\it{data-seg\/}}, {\it{table\/}}) \\ 
{\bf else }{\rm{lr-data-seg-table-body-n}}\,(\=\+{\it{n\/}} $-\;1$, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{body\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{car}}\,({\it{body\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-data-seg-table-body-n}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{induct-hint-20} \\  
\=\+{\rm{induct-hint-20}}\,({\it{pos\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{induct-hint-20} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{pos\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{body\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }{\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\bf{f}} \\ 
{\bf elseif }({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) $\vee$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
{\bf then }{\rm{induct-hint-20}}\,({\rm{cdr}}\,({\it{pos\/}}), {\rm{cadr}}\,({\it{body\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{induct-hint-20} \\ 
{\bf elseif }{\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\bf{f}} \\ 
{\bf else }{\rm{induct-hint-20}}\,(\=\+{\rm{cdr}}\,({\it{pos\/}}), \\ 
{\rm{get}}\,({\rm{car}}\,({\it{pos\/}}), {\it{body\/}})\index{get}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body-n}}\,(\=\+{\rm{car}}\,({\it{pos\/}}) $-\;1$, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body-n}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body-n}}\,(\=\+{\rm{car}}\,({\it{pos\/}}) $-\;1$, \\ 
{\rm{cdr}}\,({\it{body\/}}), \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body-n}))\-\index{induct-hint-20}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-body-list-n \\ \index{lr-data-seg-body-list-n}
\=\+{\rm{lr-data-seg-table-body}}\,({\tt{'}}{\tt{list}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body} \\ 
$=$$\;\;\;\;${\rm{lr-data-seg-table-body-n}}\,({\rm{length}}\,({\it{body\/}})\index{length}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body-n}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-table-definedp-cdr-lr-data-seg-table-body-n \\ \index{definedp-table-definedp-cdr-lr-!data-seg-table-body-n}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-body-n}}\,({\it{n\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body-n}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-lr-data-seg-body-list-n-not-lessp \\ \index{definedp-lr-data-seg-body-list-!n-not-lessp}
\=\+(\=\+{\rm{definedp}}\,({\it{x\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-body-n}}\,({\it{n\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body-n}))\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\it{x\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-body-n}}\,({\it{m\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body-n}))\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-body-add1-opener \\ \index{lr-data-seg-table-body-add1-ope!ner}
\=\+({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-data-seg-table-body-n}}\,($1\;+$ {\it{n\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body-n} \\ 
$=$$\;\;\;\;${\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body-n}}\,(\=\+{\it{n\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body-n}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body-n}}\,(\=\+{\it{n\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body-n}))\-\index{lr-data-seg-table-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-body-flag-t-flag-t \\ \index{lr-data-seg-table-body-flag-t-f!lag-t}
\=\+(\=\+{\rm{definedp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body-n}}\,(\=\+{\it{n\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body-n}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body-n}}\,(\=\+{\it{n\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body-n}))\-\index{lr-data-seg-table-body}))\-\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,({\tt{'}}{\tt{list}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\-\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-cadr-cur-expr-quote-lr-data-seg-table-body \\ \index{definedp-cadr-cur-expr-quote-lr!-data-seg-table-body}
\=\+(\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,(\=\+{\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,({\bf{t}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\-\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-cadr-cur-expr-quote-lr-data-seg-table-list \\ \index{definedp-cadr-cur-expr-quote-lr!-data-seg-table-list}
\=\+(\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $\in$ {\it{progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,(\=\+{\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\-\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-cadr-cur-expr-quote-lr-data-seg-table \\ \index{definedp-cadr-cur-expr-quote-lr!-data-seg-table}
\=\+(\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $\in$ {\it{progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,(\=\+{\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-p-lr-compile-programs-helper-2 \\ \index{lr-proper-exprp-p-lr-compile-pr!ograms-helper-2}
\=\+(\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $\in$ {\it{progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{type}}\,({\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{cadr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}), \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-))\index{type} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{addr}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-posp-dv-1-funcall-opened \\ \index{good-posp-dv-1-funcall-opened}
\=\+(\=\+{\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-restrict-subrps-list-lr-proper-get-t \\ \index{s-restrict-subrps-list-lr-prope!r-get-t}
\=\+(\=\+{\rm{s-restrict-subrps}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{s-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{expr\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{expr\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{expr\/}})\index{get})\index{s-restrict-subrps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-restrict-subrps-t-lr-proper-get-t \\ \index{s-restrict-subrps-t-lr-proper-get!-t}
\=\+(\=\+({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temp-list\/}})\index{s-proper-exprp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{body\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\bf{t}}, {\it{body\/}})\index{s-restrict-subrps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get})\index{s-restrict-subrps}\-
\end{tabbing}


\noindent{\sc Event}:   Disable s-restrict-subrps-list-lr-proper-get-t.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  s-restrict-subrps-s-restrict-subrps-cur-expr \\ \index{s-restrict-subrps-s-restrict-su!brps-cur-expr}
\=\+(\=\+{\rm{s-restrict-subrps}}\,({\bf{t}}, {\it{body\/}})\index{s-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temp-list\/}})\index{s-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})\index{s-restrict-subrps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-cons-funcall \\ \index{lr-proper-exprp-flag-not-list-c!ons-funcall}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{s-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temp-list\/}})\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{cons}}\,(\=\+{\rm{car}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}), \\ 
{\rm{lr-compile-body}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{cdr}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}), \\ 
{\it{temp-alist\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-body})\-, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-flag-not-list-not-listp \\ \index{lr-proper-exprp-flag-not-list-n!ot-listp}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{listp}}\,({\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{program-names\/}}, {\it{formals\/}}, {\it{temp-list\/}})\index{s-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{cur-expr}}\,({\it{pos\/}}, {\it{body\/}})\index{cur-expr}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\it{temps\/}}, \\ 
{\it{table\/}})\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-p-lr-compile-programs \\ \index{lr-proper-exprp-p-lr-compile-pr!ograms}
\=\+(\=\+{\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{s-restrict-subrps} \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $\in$ {\it{progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{subsetp}}\,({\it{progs\/}}, {\it{all-progs\/}})\index{subsetp} \\ 
$\wedge$$\;\;\;\;${\rm{s-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\it{prog\/}})\index{s-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cars}}\,({\it{temp-alist\/}}))\-\index{s-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{all-progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{all-progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\it{flag\/}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\it{flag\/}}, \\ 
\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\rm{restn}}\,(\=\+{\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last}), \\ 
{\rm{cur-expr}}\,(\=\+{\rm{butlast}}\,({\it{pos\/}})\index{butlast}, \\ 
{\rm{s-body}}\,({\it{prog\/}})\index{s-body})\-\index{cur-expr})\-\index{restn} \\ 
{\bf else }{\rm{cur-expr}}\,({\it{pos\/}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{cur-expr}$\;${\bf  endif}\-, \\ 
{\it{temp-alist\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{all-progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\it{formals\/}}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,({\it{all-progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{lr-proper-exprp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-exprp-p-lr-compile-programs-helper-1.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  all-litatoms-s-formals-member-s-programs-properp \\ \index{all-litatoms-s-formals-member-s!-programs-properp}
\=\+(({\it{prog\/}} $\in$ {\it{progs\/}}) $\wedge$ {\rm{s-programs-properp}}\,({\it{progs\/}}, {\it{program-names\/}})\index{s-programs-properp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{s-formals}}\,({\it{prog\/}})\index{s-formals})\index{all-litatoms}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-restrict-subrps-s-body-member-s-restrict-subrps-progs \\ \index{s-restrict-subrps-s-body-member!-s-restrict-subrps-progs}
\=\+({\rm{s-restrict-subrps-progs}}\,({\it{progs\/}})\index{s-restrict-subrps-progs} $\wedge$ ({\it{prog\/}} $\in$ {\it{progs\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\bf{t}}, {\rm{s-body}}\,({\it{prog\/}})\index{s-body})\index{s-restrict-subrps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-p-lr-compile-programs-flag-t \\ \index{lr-proper-exprp-p-lr-compile-pr!ograms-flag-t}
\=\+(\=\+{\rm{s-restrict-subrps-progs}}\,({\it{all-progs\/}})\index{s-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $\in$ {\it{all-progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{s-programs-properp}}\,({\it{all-progs\/}}, {\it{program-names\/}})\index{s-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{all-progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{all-progs\/}}, {\it{params\/}})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{temp-alist\/}} $=$ {\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\it{prog\/}})\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\it{prog\/}})\index{s-formals})\-\index{lr-make-temp-name-alist}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-exprp}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\it{prog\/}})\index{s-body}, \\ 
{\it{temp-alist\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{all-progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-compile-body}, \\ 
{\it{program-names\/}}, \\ 
{\rm{s-formals}}\,({\it{prog\/}})\index{s-formals}, \\ 
{\rm{strip-cdrs}}\,({\it{temp-alist\/}})\index{strip-cdrs}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,({\it{all-progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{lr-proper-exprp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-1-lr-compile-programs \\ \index{lr-programs-properp-1-lr-compile!-programs}
\=\+(\=\+{\rm{s-programs-properp}}\,({\it{all-progs\/}}, {\it{program-names\/}})\index{s-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{s-programs-okp}}\,({\it{progs\/}})\index{s-programs-okp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\it{all-progs\/}})\index{s-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;${\rm{subsetp}}\,({\it{progs\/}}, {\it{all-progs\/}})\index{subsetp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{all-progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{all-progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-programs-properp-1}}\,(\=\+{\rm{lr-compile-programs}}\,(\=\+{\it{progs\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{all-progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-compile-programs}, \\ 
{\it{program-names\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{all-progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-programs-properp-1}\-
\end{tabbing}


\noindent{\sc Event}:   Disable all-litatoms-s-formals-member-s-programs-properp.

\addvspace{18pt}

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

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-s-$>$lr-opened \\ \index{lr-programs-properp-s-$>$lr-ope!ned}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-programs-properp}}\,(\=\+{\rm{s-$>$lr1}}\,(\=\+{\it{s\/}}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{anything\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\bf{nil}})\-\index{p-state}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{s-$>$lr1}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  fall-off-proofp-append-cons-ret \\ \index{fall-off-proofp-append-cons-ret}
{\rm{fall-off-proofp}}\,({\rm{append}}\,({\it{instrs\/}}, {\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{dl}}, {\it{label\/}}, {\it{comment\/}}, {\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}))))\index{fall-off-proofp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-labeled-p-instructionsp-label-ret \\ \index{proper-labeled-p-instructionsp-!label-ret}
\=\+{\rm{litatom}}\,({\it{label\/}}) \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{dl}}, {\it{label\/}}, {\it{comment\/}}, {\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})), \\ 
{\it{name\/}}, \\ 
{\it{p\/}})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-definedp-car \\ \index{member-definedp-car}
({\it{x\/}} $\in$ {\it{y\/}}) $\rightarrow$ {\rm{definedp}}\,({\rm{car}}\,({\it{x\/}}), {\it{y\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-litatoms-s-formals-member-lr-programs-properp \\ \index{all-litatoms-s-formals-member-l!r-programs-properp}
\=\+(({\it{prog\/}} $\in$ {\it{prog-seg\/}}) $\wedge$ ($\neg$ {\rm{all-litatoms}}\,({\rm{formal-vars}}\,({\it{prog\/}})\index{formal-vars})\index{all-litatoms})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp-1}}\,({\it{prog-seg\/}}, {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  properp-p-temp-var-dclps-member-lr-programs-properp \\ \index{properp-p-temp-var-dclps-member!-lr-programs-properp}
\=\+(\=\+({\it{prog\/}} $\in$ {\it{progs\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp-1}}\,({\it{progs\/}}, {\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, {\it{table\/}})\index{lr-programs-properp-1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-temp-var-dclsp}}\,(\=\+{\rm{temp-var-dcls}}\,({\it{prog\/}})\index{temp-var-dcls}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-p-temp-var-dclsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-f-definedp-0 \\ \index{member-f-definedp-0}
({\bf{f}} $\in$ {\it{alist\/}}) $\rightarrow$ {\rm{definedp}}\,({\tt{0}}, {\it{alist\/}})\index{definedp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-no-duplicatesp-assoc-equal \\ \index{member-no-duplicatesp-assoc-equ!al}
\=\+(({\it{x\/}} $\in$ {\it{alist\/}}) $\wedge$ {\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{no-duplicatesp} $\wedge$ {\rm{good-alistp}}\,({\it{alist\/}})\index{good-alistp}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\rm{car}}\,({\it{x\/}}), {\it{alist\/}}) $=$ {\it{x\/}})\-
\end{tabbing}


\noindent{\sc Event}:   Disable member-f-definedp-0.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-proper-exprp-program-body-not-listp \\ \index{lr-proper-exprp-program-body-not!-listp}
\=\+($\neg$ {\rm{listp}}\,({\it{prog\/}})) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-proper-exprp}}\,({\bf{t}}, {\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  good-alistp-lr-programs-properp \\ \index{good-alistp-lr-programs-properp}
\=\+($\neg$ {\rm{good-alistp}}\,({\it{prog-seg\/}})\index{good-alistp}) \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp-1}}\,({\it{prog-seg\/}}, {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1})\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-proper-exprp-program-body-not-listp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-comp-programs-1-helper \\ \index{proper-p-prog-segmentp-comp-pro!grams-1-helper}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp-1}}\,(\=\+{\it{prog-seg\/}}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\it{table\/}})\-\index{lr-programs-properp-1} \\ 
$\wedge$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{cdr}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}})))\index{all-user-fnamesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $\in$ {\it{prog-seg\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}}))\index{no-duplicatesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-labeled-p-instructionsp}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\tt{0}})\index{comp-body-1}, \\ 
{\rm{car}}\,({\it{prog\/}}), \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-labeled-p-instructionsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-comp-programs-1 \\ \index{proper-p-prog-segmentp-comp-pro!grams-1}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp-1}}\,(\=\+{\it{prog-seg\/}}, \\ 
{\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, \\ 
{\it{table\/}})\-\index{lr-programs-properp-1} \\ 
$\wedge$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{cdr}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}})))\index{all-user-fnamesp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;${\rm{subsetp}}\,({\it{progs\/}}, {\it{prog-seg\/}})\index{subsetp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{progs\/}}))\index{all-litatoms})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,(\=\+{\rm{comp-programs-1}}\,({\it{progs\/}})\index{comp-programs-1}, \\ 
{\rm{p-state}}\,(\=\+{\it{pc\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\-\index{proper-p-prog-segmentp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable all-litatoms-s-formals-member-lr-programs-properp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-instructionp-set-global \\ \index{proper-p-instructionp-set-globa!l}
\=\+{\rm{adpp}}\,({\rm{cons}}\,({\it{name\/}}, {\tt{0}}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-instructionp}}\,({\rm{list}}\,({\tt{'}}{\tt{set-global}}, {\it{name\/}}), {\it{x\/}}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-instructionp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-programp-append-car-prog-segment \\ \index{proper-p-programp-append-car-pr!og-segment}
\=\+(\=\+{\rm{lr-programs-properp-1}}\,({\it{prog-seg\/}}, {\rm{strip-logic-fnames}}\,({\rm{cdr}}\,({\it{prog-seg\/}}))\index{strip-logic-fnames}, {\it{table\/}})\index{lr-programs-properp-1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\it{prog-seg\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{prog-seg\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{strip-cars}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\index{all-user-fnamesp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-programp}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{name}}\,({\rm{car}}\,({\it{prog-seg\/}}))\index{name}, \\ 
{\rm{cons}}\,(\=\+{\rm{formal-vars}}\,({\rm{car}}\,({\it{prog-seg\/}}))\index{formal-vars}, \\ 
{\rm{cons}}\,(\=\+{\rm{temp-var-dcls}}\,({\rm{car}}\,({\it{prog-seg\/}}))\index{temp-var-dcls}, \\ 
{\rm{append}}\,(\=\+{\rm{label-instrs}}\,(\=\+{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{car}}\,({\it{prog-seg\/}}))\index{program-body}, \\ 
{\tt{0}})\-\index{comp-body-1}, \\ 
{\tt{0}})\-\index{label-instrs}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\it{n1\/}})\index{lr-make-label}, \\ 
{\it{coment1\/}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{set-global}}, \\ 
{\rm{identity}}\,({\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name}))\-)\-, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\it{n2\/}})\index{lr-make-label}, \\ 
{\it{comment2\/}}, \\ 
{\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-)\-)\-)\-)\-)\-, \\ 
{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\-\index{proper-p-programp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-litatoms-all-user-fnamesp-plistp \\ \index{all-litatoms-all-user-fnamesp-p!listp}
({\rm{all-user-fnamesp}}\,({\it{list\/}})\index{all-user-fnamesp} $\wedge$ {\rm{plistp}}\,({\it{list\/}})\index{plistp}) $\rightarrow$ {\rm{all-litatoms}}\,({\it{list\/}})\index{all-litatoms}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  plistp-strip-cars \\ \index{plistp-strip-cars}
{\rm{plistp}}\,({\rm{strip-cars}}\,({\it{x\/}}))\index{plistp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-all-user-fnamesp-strip-cars-cdr \\ \index{lr-programs-properp-all-user-fn!amesp-strip-cars-cdr}
\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\rightarrow$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{strip-cars}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\index{all-user-fnamesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-caar-main \\ \index{lr-programs-properp-caar-main}
{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} $\rightarrow$ ({\rm{caar}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) $=$ {\tt{'}}{\tt{main}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-p-runtime-support-programs \\ \index{proper-p-prog-segmentp-p-runtime!-support-programs}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\sc{p-runtime-support-programs}}\index{p-runtime-support-programs}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-prog-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-prog-segmentp-comp-programs \\ \index{proper-p-prog-segmentp-comp-pro!grams}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{l\/}})\index{p-word-size} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-prog-segmentp}}\,({\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs}, {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-prog-segmentp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-programs-properp-caar-main.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-remove-duplicates \\ \index{no-duplicatesp-remove-duplicate!s}
{\rm{no-duplicatesp}}\,({\rm{remove-duplicates}}\,({\it{x\/}})\index{remove-duplicates})\index{no-duplicatesp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-put \\ \index{all-p-objectps-put}
\=\+({\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps} $\wedge$ {\rm{p-objectp}}\,({\it{value\/}}, {\it{p\/}})\index{p-objectp} $\wedge$ ({\it{offset\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{put}}\,({\it{value\/}}, {\it{offset\/}}, {\it{lst\/}})\index{put}, {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-deposit-helper \\ \index{proper-p-data-segmentp-deposit-!helper}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{value\/}}, {\it{p\/}})\index{p-objectp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{deposit}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit}, {\it{p\/}})\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-deposit \\ \index{proper-p-data-segmentp-deposit}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{value\/}}, {\it{p\/}})\index{p-objectp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{deposit}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{deposit}, {\it{p\/}})\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-get \\ \index{all-p-objectps-get}
\=\+(\=\+{\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps} \\ 
$\wedge$$\;\;\;\;$({\it{offset\/}} $<$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{all-p-objectps}}\,({\it{lst\/}}, {\it{p\/}})\index{all-p-objectps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{get}}\,({\it{offset\/}}, {\it{lst\/}})\index{get}, {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-fetch \\ \index{proper-p-data-segmentp-fetch}
\=\+(\=\+{\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\rm{area-name}}\,({\it{addr\/}})\index{area-name}, {\it{data-seg\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,({\rm{fetch}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{fetch}, {\it{p\/}})\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-const-table-p-objectp-definedp \\ \index{lr-s-similar-const-table-p-obje!ctp-definedp}
\=\+(\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object2\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{object1\/}}, {\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object2\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object2\/}})\index{s-restricted-objectp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{p-objectp}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{object1\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object2\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-), \\ 
{\it{p\/}})\-\index{p-objectp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-x-sub1-facts \\ \index{lessp-x-sub1-facts}
({\it{x\/}} $<$ (({\it{y\/}} $-\;1$) $-\;1$)) $\rightarrow$ (({\it{x\/}} $<$ {\it{y\/}}) $\wedge$ ({\it{x\/}} $<$ ({\it{y\/}} $-\;1$)))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-deposit-a-list-cons \\ \index{proper-p-data-segmentp-deposit-!a-list-cons}
\=\+(\=\+({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;$(({\rm{offset}}\,({\it{addr\/}})\index{offset} $+$ {\tt{3}}) $<$ {\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{a\/}}, {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{b\/}}, {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{c\/}}, {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{p-objectp}}\,({\it{d\/}}, {\it{p\/}})\index{p-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{deposit-a-list}}\,({\rm{list}}\,({\it{a\/}}, {\it{b\/}}, {\it{c\/}}, {\it{d\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list}, {\it{p\/}})\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-deposit-a-list-cons-cons \\ \index{proper-p-data-segmentp-deposit-!a-list-cons-cons}
\=\+{\bf let }\=\+{\it{ds-tab\/}}{\bf $\;$ be$\;\;$}{\rm{lr-compile-quote}}\,({\tt{'}}{\tt{list}}, {\rm{list}}\,({\it{x\/}}, {\it{y\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}, \\ 
{\it{count-nodes\/}}{\bf $\;$ be$\;\;$}{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\it{count-nodes\/}} $-\;1$) \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\tt{'}}{\tt{list}}, {\rm{list}}\,({\it{x\/}}, {\it{y\/}}), {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;$({\it{count-nodes\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{car}}\,({\it{ds-tab\/}}), {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$(\=\+{\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\rm{car}}\,({\it{ds-tab\/}}))\index{fetch})\index{offset} \\ 
$+$$\;\;\;\;${\sc{lr-node-size}}\index{lr-node-size})\-)\- \\ 
$\wedge$$\;\;\;\;$({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\tt{'}}{\tt{list}}, {\rm{list}}\,({\it{x\/}}, {\it{y\/}}))\index{s-restricted-objectp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-cons-tag}}\index{lr-cons-tag})\-\index{tag}), \\ 
{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\tt{1}})\-\index{tag}), \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{x\/}}, \\ 
{\rm{cdr}}\,({\it{ds-tab\/}}))\-), \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{y\/}}, \\ 
{\rm{cdr}}\,({\it{ds-tab\/}}))\-))\-, \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\it{ds-tab\/}}))\-\index{fetch}, \\ 
{\rm{car}}\,({\it{ds-tab\/}}))\-\index{deposit-a-list}, \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-deposit-a-list-cons-numberp \\ \index{proper-p-data-segmentp-deposit-!a-list-cons-numberp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $\not<$ {\rm{log}}\,({\tt{2}}, {\it{number\/}})\index{log}) \\ 
$\wedge$$\;\;\;\;$({\it{number\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\wedge$$\;\;\;\;$({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-add1-tag}}\index{lr-add1-tag})\-\index{tag}), \\ 
{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}), \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\it{number\/}})\index{tag}, \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}))\-, \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list}, \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-deposit-a-list-cons-truep \\ \index{proper-p-data-segmentp-deposit-!a-list-cons-truep}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})))\index{length} $-\;1$) \\ 
$\not<$$\;\;\;\;$({\rm{offset}}\,({\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch})\index{offset} $+$ {\sc{lr-node-size}}\index{lr-node-size}))\- \\ 
$\wedge$$\;\;\;\;$({\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<$ {\rm{log}}\,({\tt{2}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{log}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-true-tag}}\index{lr-true-tag})\-\index{tag}), \\ 
{\rm{identity}}\,({\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}), \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}), \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}))\-, \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list}, \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}


\noindent{\sc Event}:   Disable proper-p-data-segmentp-deposit-a-list-cons.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  s-ws-reqs-flag-not-list-t \\ \index{s-ws-reqs-flag-not-list-t}
\=\+(({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) $\wedge$ ($\neg$ {\rm{definedp}}\,({\bf{t}}, {\it{table\/}})\index{definedp})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{s-ws-reqs}}\,({\it{flag\/}}, {\bf{t}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs} $=$ {\rm{identity}}\,({\rm{log}}\,({\tt{2}}, {\sc{lr-true-tag}}\index{lr-true-tag})\index{log}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-compile-quote-preserves-proper-p-data-segmentp \\ \index{lr-compile-quote-preserves-prope!r-p-data-segmentp}
\=\+(\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\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<$ {\rm{s-ws-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}), \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-body-preserves-proper-p-data-segmentp \\ \index{lr-data-seg-table-body-preserve!s-proper-p-data-segmentp}
\=\+(\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\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<$ {\rm{s-ws-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-body}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\it{flag\/}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}), \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-list-preserves-proper-p-data-segmentp \\ \index{lr-data-seg-table-list-preserve!s-proper-p-data-segmentp}
\=\+(\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\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<$ {\rm{s-ws-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-ws-reqs-list}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}), \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-init-data-seg-table-preserves-proper-p-data-segmentp \\ \index{lr-init-data-seg-table-preserve!s-proper-p-data-segmentp}
\=\+(\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\it{data-seg\/}}, {\it{p\/}})\index{proper-p-data-segmentp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$({\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<$ {\rm{s-init-ws-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-ws-reqs}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\it{data-seg\/}})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}), \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-lr-init-heap-contents-helper-helper \\ \index{all-p-objectps-lr-init-heap-conte!nts-helper-helper}
\=\+({\it{heap-size\/}} $\not\simeq {\tt{0}}$) \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) \\ 
$+$$\;\;\;\;${\it{x\/}} \\ 
$+$$\;\;\;\;$({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ ({\it{heap-size\/}} $-\;1$)))\- \\ 
$=$$\;\;\;\;$({\it{x\/}} $+$ ({\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-lr-init-heap-contents-helper \\ \index{all-p-objectps-lr-init-heap-conte!nts-helper}
\=\+(\=\+({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\it{addr\/}})\index{offset} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\sc{lr-heap-name}}\index{lr-heap-name}) \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+(({\sc{lr-node-size}}\index{lr-node-size} $*$ {\it{heap-size\/}}) $+$ {\rm{offset}}\,({\it{addr\/}})\index{offset}) \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{cdr}}\,({\rm{assoc}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})))\index{length})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,({\rm{lr-init-heap-contents}}\,({\it{addr\/}}, {\it{heap-size\/}})\index{lr-init-heap-contents}, {\it{p\/}})\index{all-p-objectps}\-
\end{tabbing}


\noindent{\sc Event}:   Disable all-p-objectps-lr-init-heap-contents-helper-helper.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  all-p-objectps-lr-init-heap-contents \\ \index{all-p-objectps-lr-init-heap-conte!nts}
\=\+(\=\+({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-p-objectps}}\,(\=\+{\rm{lr-init-heap-contents}}\,(\=\+{\rm{identity}}\,({\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\tt{0}})\-)\-\index{tag}), \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents}, \\ 
{\it{p\/}})\-\index{all-p-objectps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-lr-init-data-seg-helper \\ \index{proper-p-data-segmentp-lr-init-!data-seg-helper}
\=\+(\=\+({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-false-tag}}\index{lr-false-tag})\index{tag}, \\ 
{\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\tt{1}})\index{tag}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr})\-, \\ 
{\sc{lr-f-addr}}\index{lr-f-addr}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\sc{lr-undefined-tag}}\index{lr-undefined-tag})\-\index{tag}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\tt{1}})\-\index{tag}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr})\-, \\ 
{\sc{lr-undef-addr}}\index{lr-undef-addr}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,(\=\+{\rm{area-name}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr})\index{area-name}, \\ 
{\rm{add-addr}}\,(\=\+{\sc{lr-f-addr}}\index{lr-f-addr}, \\ 
{\sc{lr-node-size}}\index{lr-node-size})\-\index{add-addr})\-, \\ 
{\rm{list}}\,(\=\+{\rm{area-name}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{area-name}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{nat}}, \\ 
{\tt{0}})\-\index{tag})\-, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\rm{lr-init-heap-contents}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\sc{lr-heap-name}}\index{lr-heap-name}, \\ 
{\tt{0}})\-)\-\index{tag}, \\ 
{\it{heap-size\/}})\-\index{lr-init-heap-contents})\-)\-)\-\index{deposit-a-list})\-\index{deposit-a-list}, \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-lr-init-data-seg \\ \index{proper-p-data-segmentp-lr-init-!data-seg}
\=\+(\=\+({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,({\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, {\it{p\/}})\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-lr-init-data-seg-compile-t0 \\ \index{proper-p-data-segmentp-lr-init-!data-seg-compile-t0}
\=\+(\=\+({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, {\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg})\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{car}}\,({\rm{lr-compile-quote}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{list}}\,({\bf{t}}, {\tt{0}}), \\ 
{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{list}}\,({\rm{cons}}\,({\bf{f}}, {\it{addr\/}})))\-\index{lr-compile-quote}), \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-data-seg-table-list-reducer \\ \index{same-signature-car-lr-data-seg-t!able-list-reducer}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg2\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg2\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg2\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\it{data-seg1\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg2\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\-\index{same-signature} \\ 
$\leftrightarrow$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature})\-\-
\end{tabbing}
						
\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-init-data-seg-table-reducer \\ \index{same-signature-car-lr-init-data!-seg-table-reducer}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg2\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg2\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg2\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\it{data-seg1\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg2\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\-\index{same-signature} \\ 
$\leftrightarrow$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-compile-quote-reducer \\ \index{same-signature-car-lr-compile-q!uote-reducer}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg2\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg2\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg2\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg2\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{same-signature}}\,(\=\+{\it{data-seg1\/}}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg2\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{same-signature} \\ 
$\leftrightarrow$$\;\;\;\;${\rm{same-signature}}\,({\it{data-seg1\/}}, {\it{data-seg2\/}})\index{same-signature})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-data-segmentp-lr-data-seg-table \\ \index{proper-p-data-segmentp-lr-data-!seg-table}
\=\+(\=\+({\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<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $\not<$ {\rm{s-total-ws-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-ws-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{same-signature})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-data-segmentp}}\,(\=\+{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}), \\ 
{\it{p\/}})\-\index{proper-p-data-segmentp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-answer-addr-car-lr-data-seg-table \\ \index{adpp-untag-answer-addr-car-lr-d!ata-seg-table}
{\rm{adpp}}\,(\=\+{\rm{identity}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  program-body-assoc-cdr-lr-compile-programs \\ \index{program-body-assoc-cdr-lr-compi!le-programs}
\=\+({\it{name\/}} $\not=$ {\rm{caar}}\,({\it{progs\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{cdr}}\,({\rm{lr-compile-programs}}\,({\it{progs\/}}, {\it{table\/}})\index{lr-compile-programs})))\index{program-body} \\ 
$=$$\;\;\;\;${\rm{lr-compile-body}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{cdr}}\,({\it{progs\/}})))\index{s-body}, \\ 
{\rm{lr-make-temp-name-alist}}\,(\=\+{\rm{s-temp-list}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{cdr}}\,({\it{progs\/}}))\-)\index{s-temp-list}, \\ 
{\rm{s-formals}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{cdr}}\,({\it{progs\/}}))\-)\index{s-formals})\-\index{lr-make-temp-name-alist}, \\ 
{\it{table\/}})\-\index{lr-compile-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-total-ws-reqs-not-lessp-s-max-subr-reqs \\ \index{s-total-ws-reqs-not-lessp-s-max!-subr-reqs}
\=\+({\it{word-size\/}} $\not<$ {\rm{s-total-ws-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-ws-reqs}) \\ 
$\rightarrow$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-s-$>$lr \\ \index{proper-p-statep-lr-$>$p-s-$>$lr}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\not<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{length} $+$ {\rm{length}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{length})) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}) \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}) $=$ {\rm{s-formals}}\,({\rm{s-prog}}\,({\it{s\/}})\index{s-prog})\index{s-formals}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{s-total-ws-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\it{heap-size\/}})\index{s-total-ws-reqs}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-s-$>$lr \\ \index{lr-programs-properp-s-$>$lr}
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-programs-properp}}\,(\=\+{\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-total-heap-reqs} \\  
\=\+{\rm{lr-total-heap-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}}, {\it{heap-size\/}}, {\it{c\/}})\index{lr-total-heap-reqs} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s})\index{s-progs}, \\ 
{\it{alist\/}}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\bf{t}}, {\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-eval-heap-r})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-max-ctrl-reqs} \\  
\=\+{\rm{lr-max-ctrl-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}}, {\it{c\/}})\index{lr-max-ctrl-reqs} \\ 
$=$$\;\;\;\;$(\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-params}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s})\index{s-params})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-temps}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s})\index{s-temps})\index{length} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,({\bf{t}}, {\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-eval-ctrl-r})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-max-temp-reqs} \\  
\=\+{\rm{lr-max-temp-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}}, {\it{c\/}})\index{lr-max-temp-reqs} \\ 
$=$$\;\;\;\;${\rm{s-eval-temp-r}}\,({\bf{t}}, {\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-eval-temp-r}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-max-word-size-reqs} \\  
\=\+{\rm{lr-max-word-size-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}}, {\it{heap-size\/}}, {\it{c\/}})\index{lr-max-word-size-reqs} \\ 
$=$$\;\;\;\;${\rm{max}}\,(\=\+{\rm{s-total-ws-reqs}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s})\index{s-progs}, \\ 
{\rm{s-params}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{s-total-ws-reqs}, \\ 
{\rm{s-eval-ws-r}}\,({\bf{t}}, {\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-eval-ws-r})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-equivalence-s-$>$lr \\ \index{lr-eval-s-eval-equivalence-s-$>$!lr}
\=\+{\bf let }\=\+{\it{s-lr\/}}{\bf $\;$ be$\;\;$}{\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{s-lr\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,(\=\+{\it{s-lr\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\it{s-lr\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{s-lr\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pname}}\,({\it{s\/}})\index{s-pname} $=$ {\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pos}}\,({\it{s\/}})\index{s-pos} $=$ {\bf{nil}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{s-ans}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-ans}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{s-lr\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}), \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{s-lr\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{lr-valp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  same-signature-car-lr-data-seg-table \\ \index{same-signature-car-lr-data-seg-t!able}
\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\rightarrow$$\;\;\;\;${\rm{same-signature}}\,(\=\+{\rm{lr-init-data-seg}}\,({\it{heap-size\/}})\index{lr-init-data-seg}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{same-signature}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-car-lr-data-seg-table \\ \index{lr-max-node-car-lr-data-seg-tab!le}
\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{addr}}, \\ 
{\rm{cons}}\,(\=\+{\rm{identity}}\,({\sc{lr-heap-name}}\index{lr-heap-name}), \\ 
{\rm{identity}}\,({\sc{lr-node-size}}\index{lr-node-size}) $*$ {\it{heap-size\/}})\-)\-\index{tag})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-data-seg-table-list-s-heap-reqs-help \\ \index{lr-count-free-nodes-lr-data-seg!-table-list-s-heap-reqs-help}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\bf{t}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{s-heap-reqs-body}}\,({\bf{t}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body} \\ 
$+$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,(\=\+{\bf{t}}, \\ 
{\it{body\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-body}))\-\index{lr-count-free-nodes})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-data-seg-table-list-s-heap-reqs \\ \index{lr-count-free-nodes-lr-data-seg!-table-list-s-heap-reqs}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-minimum-heapp}}\,({\it{data-seg\/}})\index{lr-minimum-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\sc{lr-fp-addr}}\index{lr-fp-addr}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\-\index{lr-count-free-nodes} \\ 
$+$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\- \\ 
$=$$\;\;\;\;${\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-max-node-car-lr-data-seg-table-list \\ \index{lr-max-node-car-lr-data-seg-tab!le-list}
\=\+(\=\+{\rm{lr-proper-free-listp}}\,({\it{data-seg\/}})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\sc{lr-heap-name}}\index{lr-heap-name}, {\it{data-seg\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\index{lr-boundary-nodep})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\index{lr-max-node} \\ 
$=$$\;\;\;\;${\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-data-seg-table-list-s-heap-reqs-1 \\ \index{lr-count-free-nodes-lr-data-seg!-table-list-s-heap-reqs-1}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\- \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$-$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-count-free-nodes-lr-init-data-seg-table-s-heap-reqs-1 \\ \index{lr-count-free-nodes-lr-init-dat!a-seg-table-s-heap-reqs-1}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;$({\it{max-addr\/}} $=$ {\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\index{lr-max-node}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\it{max-addr\/}}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\-\index{lr-count-free-nodes} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$-$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-lr-count-free-nodes-lr-data-seg-table-heap-r \\ \index{not-lessp-lr-count-free-nodes-l!r-data-seg-table-heap-r}
\=\+(\=\+({\it{heap-size\/}} $\not<$ ({\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs} $+$ {\it{x\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\rm{car}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\index{lr-max-node}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-free-list-nodes}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\it{x\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-s-eval-flag-run-s-$>$lr \\ \index{lr-eval-s-eval-flag-run-s-$>$lr}
\=\+{\bf let }\=\+{\it{s-lr\/}}{\bf $\;$ be$\;\;$}{\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{s-lr\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,(\=\+{\it{s-lr\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\it{s-lr\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-s-similar-statesp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-body}, \\ 
{\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\-\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp} \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ (\=\+{\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r})\-) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\not<$ (\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\it{s-lr\/}})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r})\-) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\not<$ {\rm{s-eval-temp-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{s-eval-ws-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ws-r}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\sc{s-max-subr-reqs}}\index{s-max-subr-reqs}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pname}}\,({\it{s\/}})\index{s-pname} $=$ {\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pos}}\,({\it{s\/}})\index{s-pos} $=$ {\bf{nil}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{s-lr\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}})\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-undef-addr-strip-cdrs-lr-make-initial-temps \\ \index{all-undef-addr-strip-cdrs-lr-ma!ke-initial-temps}
{\rm{all-undef-addrs}}\,({\rm{strip-cdrs}}\,({\rm{lr-make-initial-temps}}\,({\it{x\/}})\index{lr-make-initial-temps})\index{strip-cdrs})\index{all-undef-addrs}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-temps-make-temps-entries-initial-temps \\ \index{lr-s-similar-temps-make-temps-e!ntries-initial-temps}
\=\+(\=\+{\rm{all-undef-addrs}}\,({\rm{strip-cdrs}}\,({\it{lr-temps\/}})\index{strip-cdrs})\index{all-undef-addrs} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{s-temps\/}})\index{length} $=$ {\rm{length}}\,({\it{lr-temps\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-temps}}\,({\rm{make-temps-entries}}\,({\it{s-temps\/}})\index{make-temps-entries}, {\it{lr-temps\/}}, {\it{data-seg\/}})\index{lr-s-similar-temps}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{object-addrs} \\  
\=\+{\rm{object-addrs}}\,({\it{object-list\/}}, {\it{table\/}})\index{object-addrs} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{object-list\/}}) \\ 
{\bf then }{\rm{cons}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{object-list\/}}), {\it{table\/}})), \\ 
{\rm{object-addrs}}\,({\rm{cdr}}\,({\it{object-list\/}}), {\it{table\/}})\index{object-addrs})\- \\ 
{\bf else }{\bf{nil}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-lr-compile-quote \\ \index{lr-valp-lr-compile-quote}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\it{flag\/}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\rm{lr-check-result1}}\,(\=\+{\it{object\/}}, \\ 
{\rm{object-addrs}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-\index{object-addrs}, \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-check-result1} \\ 
{\bf else }{\rm{lr-valp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,(\=\+{\it{flag\/}}, \\ 
{\it{object\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-compile-quote}))\-), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\it{flag\/}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-valp}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-init-data-seg-table-preserves-lr-valp \\ \index{lr-init-data-seg-table-preserve!s-lr-valp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-valp-lr-compile-quote-flag-t \\ \index{lr-valp-lr-compile-quote-flag-t}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-restricted-objectp}}\,({\bf{t}}, {\it{object\/}})\index{s-restricted-objectp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\it{object\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-), \\ 
{\rm{car}}\,({\rm{lr-compile-quote}}\,({\bf{t}}, {\it{object\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-compile-quote}))\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-pair-formals-lr-init-data-seg \\ \index{lr-s-similar-params-pair-formal!s-lr-init-data-seg}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\it{params\/}}, \\ 
{\rm{pair-formals-with-addresses}}\,(\=\+{\it{params\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,(\=\+{\it{params\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-init-data-seg-table}))\-\index{pair-formals-with-addresses}, \\ 
{\rm{car}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\-\index{lr-s-similar-params}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-body-preserves-lr-valp \\ \index{lr-data-seg-table-body-preserve!s-lr-valp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{s-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-body})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{body\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body}))\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-list-preserves-lr-valp \\ \index{lr-data-seg-table-list-preserve!s-lr-valp}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-data-seg-table-list-preserves-lr-s-similar-params \\ \index{lr-data-seg-table-list-preserve!s-lr-s-similar-params}
\=\+(\=\+{\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\it{progs\/}})\index{s-data-seg-list-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-heap-reqs-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-heap-reqs-list})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\it{data-seg\/}})\index{lr-s-similar-params})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\it{s-params\/}}, \\ 
{\it{lr-params\/}}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list}))\-\index{lr-s-similar-params}\-
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  assoc-definedp-table-lr-data-seg-table-body \\ \index{assoc-definedp-table-lr-data-se!g-table-body}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-body}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-body})) \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\it{object\/}}, {\it{table\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  assoc-definedp-table-lr-data-seg-table-list \\ \index{assoc-definedp-table-lr-data-se!g-table-list}
\=\+{\rm{definedp}}\,({\it{object\/}}, {\it{table\/}})\index{definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{assoc}}\,({\it{object\/}}, {\rm{cdr}}\,({\rm{lr-data-seg-table-list}}\,({\it{progs\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-data-seg-table-list})) \\ 
$=$$\;\;\;\;${\rm{assoc}}\,({\it{object\/}}, {\it{table\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  pair-formals-with-addresses-lr-data-seg-table-list \\ \index{pair-formals-with-addresses-lr-!data-seg-table-list}
\=\+{\rm{all-definedp}}\,({\rm{strip-cdrs}}\,({\it{params\/}})\index{strip-cdrs}, {\it{table\/}})\index{all-definedp} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{pair-formals-with-addresses}}\,(\=\+{\it{params\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table-list}}\,(\=\+{\it{progs\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-data-seg-table-list}))\-\index{pair-formals-with-addresses} \\ 
$=$$\;\;\;\;${\rm{pair-formals-with-addresses}}\,({\it{params\/}}, {\it{table\/}})\index{pair-formals-with-addresses})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-definedp-strip-cdrs-lr-init-data-seg-table \\ \index{all-definedp-strip-cdrs-lr-init!-data-seg-table}
\=\+(\=\+{\rm{lr-s-similar-const-table}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-s-similar-const-table} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\bf{f}}, {\it{table\/}})\index{definedp} \\ 
$\wedge$$\;\;\;\;${\rm{s-init-data-seg-restrictedp}}\,({\it{params\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{lr-count-free-nodes}}\,(\=\+{\rm{fetch}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}, {\it{data-seg\/}})\index{fetch}, \\ 
{\rm{lr-free-list-nodes}}\,(\=\+{\rm{lr-max-node}}\,({\it{data-seg\/}})\index{lr-max-node}, \\ 
{\it{data-seg\/}})\-\index{lr-free-list-nodes}, \\ 
{\it{data-seg\/}})\-\index{lr-count-free-nodes} \\ 
$\not<$$\;\;\;\;${\rm{s-init-heap-reqs}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{s-init-heap-reqs})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-definedp}}\,(\=\+{\rm{strip-cdrs}}\,({\it{params\/}})\index{strip-cdrs}, \\ 
{\rm{cdr}}\,({\rm{lr-init-data-seg-table}}\,({\it{params\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-init-data-seg-table}))\-\index{all-definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-pair-formals-with-addresses \\ \index{lr-s-similar-params-pair-formal!s-with-addresses}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\it{progs\/}}, {\it{params\/}})\index{s-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-params}}\,(\=\+{\it{params\/}}, \\ 
{\rm{pair-formals-with-addresses}}\,(\=\+{\it{params\/}}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\it{progs\/}}, \\ 
{\it{params\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{pair-formals-with-addresses}, \\ 
{\rm{car}}\,({\rm{lr-data-seg-table}}\,({\it{progs\/}}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{lr-s-similar-params}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-s-$>$lr-lr-data-seg-table \\ \index{lr-s-similar-statesp-s-$>$lr-lr!-data-seg-table}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}) $=$ {\rm{s-formals}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-formals}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pname}}\,({\it{s\/}})\index{s-pname} $=$ {\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-temps}}\,({\it{s\/}})\index{s-temps} $=$ {\rm{make-temps-entries}}\,({\rm{s-temp-list}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-temp-list})\index{make-temps-entries}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\rm{s-temps}}\,({\it{s\/}})\index{s-temps}, \\ 
{\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-ctrl-stk-size-p-ctrl-stk-s-$>$lr \\ \index{p-ctrl-stk-size-p-ctrl-stk-s-$>$!lr}
\=\+{\rm{p-ctrl-stk-size}}\,({\rm{p-ctrl-stk}}\,({\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr})\index{p-ctrl-stk})\index{p-ctrl-stk-size} \\ 
$=$$\;\;\;\;$({\tt{2}} $+$ {\rm{length}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{length} $+$ {\rm{length}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-$>$lr-ok \\ \index{s-$>$lr-ok}
\=\+{\bf let }\=\+{\it{s-lr\/}}{\bf $\;$ be$\;\;$}{\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{s-good-statep}}\,({\it{s\/}}, {\it{c\/}})\index{s-good-statep} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-temps-setp}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-body}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-body}, \\ 
{\rm{temp-alist-to-set}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{temp-alist-to-set})\-\index{s-all-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-all-progs-temps-setp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{s-temps}}\,({\it{s\/}})\index{s-temps} \\ 
$=$$\;\;\;\;${\rm{make-temps-entries}}\,({\rm{s-temp-list}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-temp-list})\index{make-temps-entries})\- \\ 
$\wedge$$\;\;\;\;${\rm{s-check-temps-setp}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{s-check-temps-setp} \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ (\=\+{\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-heap-r})\-) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs})\index{s-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\not<$ (\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{s-temps}}\,({\it{s\/}})\index{s-temps})\index{length} \\ 
$+$$\;\;\;\;${\rm{s-eval-ctrl-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ctrl-r})\-) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\not<$ {\rm{s-eval-temp-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-temp-r}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{max}}\,(\=\+{\rm{s-total-ws-reqs}}\,(\=\+{\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, \\ 
{\rm{s-params}}\,({\it{s\/}})\index{s-params}, \\ 
{\it{heap-size\/}})\-\index{s-total-ws-reqs}, \\ 
{\rm{s-eval-ws-r}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval-ws-r})\-) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pname}}\,({\it{s\/}})\index{s-pname} $=$ {\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-pos}}\,({\it{s\/}})\index{s-pos} $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{no-duplicatesp} \\ 
$\wedge$$\;\;\;\;$({\rm{strip-cars}}\,({\rm{s-params}}\,({\it{s\/}})\index{s-params}) $=$ {\rm{s-formals}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{s-formals}) \\ 
$\wedge$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{s-ans}}\,({\rm{s-eval}}\,({\bf{t}}, {\it{s\/}}, {\it{c\/}})\index{s-eval})\index{s-ans}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{s-lr\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}), \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{s-lr\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{lr-valp}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-good-state-logic-$>$s \\ \index{s-good-state-logic-$>$s}
\=\+(\=\+{\rm{l-proper-programsp}}\,({\it{prog-names\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{prog-names\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-good-statep}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{prog-names\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-good-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-body-car-s-progs-logic-$>$s \\ \index{s-body-car-s-progs-logic-$>$s}
{\rm{s-body}}\,({\rm{car}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}))\index{s-body} $=$ {\it{expr\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-proper-programsp-s-progs-logic-$>$s \\ \index{l-proper-programsp-s-progs-logi!c-$>$s}
\=\+({\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} $\wedge$ {\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\it{formals\/}})\index{l-proper-exprp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{s-all-progs-temps-setp}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs})\index{s-all-progs-temps-setp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-temps-logic-$>$s \\ \index{s-temps-logic-$>$s}
{\rm{s-temps}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-temps} $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-temp-list-car-s-progs-logic-$>$s \\ \index{s-temp-list-car-s-progs-logic-$>$!s}
{\rm{s-temp-list}}\,({\rm{car}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}))\index{s-temp-list} $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-params-logic-$>$s \\ \index{s-params-logic-$>$s}
{\rm{s-params}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-params} $=$ {\it{alist\/}}
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{l-data-seg-body-restrictedp} \\  
\=\+{\rm{l-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\rm{car}}\,({\it{expr\/}}))\index{l-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-body-restrictedp}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{l-data-seg-body-restrictedp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{listp}}\,({\it{expr\/}}) \\ 
{\bf then }\=\+{\bf if }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{quote}} \\ 
{\bf then }{\rm{s-restricted-objectp}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{s-restricted-objectp} \\ 
{\bf else }{\rm{l-data-seg-body-restrictedp}}\,({\tt{'}}{\tt{list}}, {\rm{cdr}}\,({\it{expr\/}}))\index{l-data-seg-body-restrictedp}$\;${\bf  endif}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{l-data-seg-list-restrictedp} \\  
\=\+{\rm{l-data-seg-list-restrictedp}}\,({\it{fun-names\/}})\index{l-data-seg-list-restrictedp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{fun-names\/}}) \\ 
{\bf then }\=\+{\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\rm{body}}\,({\rm{car}}\,({\it{fun-names\/}})))\index{l-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-list-restrictedp}}\,({\rm{cdr}}\,({\it{fun-names\/}}))\index{l-data-seg-list-restrictedp}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{l-restrictedp} \\  
\=\+{\rm{l-restrictedp}}\,({\it{fun-names\/}}, {\it{alist\/}})\index{l-restrictedp} \\ 
$=$$\;\;\;\;$(\=\+{\rm{s-init-data-seg-restrictedp}}\,({\it{alist\/}})\index{s-init-data-seg-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-list-restrictedp}}\,({\it{fun-names\/}})\index{l-data-seg-list-restrictedp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-data-seg-body-restrictedp-s-data-seg-body-restrictedp \\ \index{l-data-seg-body-restrictedp-s-d!ata-seg-body-restrictedp}
\=\+{\rm{l-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{l-data-seg-body-restrictedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{s-data-seg-body-restrictedp}}\,({\it{flag\/}}, {\it{body\/}})\index{s-data-seg-body-restrictedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-data-seg-body-restrictedp-delete-all \\ \index{l-data-seg-body-restrictedp-delete!-all}
\=\+{\rm{l-data-seg-list-restrictedp}}\,({\it{pnames\/}})\index{l-data-seg-list-restrictedp} \\ 
$\rightarrow$$\;\;\;\;${\rm{l-data-seg-list-restrictedp}}\,({\rm{delete-all}}\,({\it{name\/}}, {\it{pnames\/}})\index{delete-all})\index{l-data-seg-list-restrictedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-data-seg-list-restrictedp-s-data-seg-list-restrictedp \\ \index{l-data-seg-list-restrictedp-s-d!ata-seg-list-restrictedp}
\=\+({\rm{l-data-seg-list-restrictedp}}\,({\it{pnames\/}})\index{l-data-seg-list-restrictedp} $\wedge$ {\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{s-data-seg-list-restrictedp}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs})\index{s-data-seg-list-restrictedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-restrict-subrps-s-restrict-subrps \\ \index{l-restrict-subrps-s-restrict-su!brps}
\=\+(\=\+{\rm{l-restrict-subrps}}\,({\it{flag\/}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-exprp}}\,({\it{flag\/}}, {\it{expr\/}}, {\it{program-names\/}}, {\it{formals\/}})\index{l-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps}}\,({\it{flag\/}}, {\it{expr\/}})\index{s-restrict-subrps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-restrict-subrps-progs-delete-all \\ \index{l-restrict-subrps-progs-delete-!all}
\=\+{\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\rightarrow$$\;\;\;\;${\rm{l-restrict-subrps-progs}}\,({\rm{delete-all}}\,({\it{name\/}}, {\it{pnames\/}})\index{delete-all})\index{l-restrict-subrps-progs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-restrict-subrps-progs-s-restrict-subrps-progs \\ \index{l-restrict-subrps-progs-s-restri!ct-subrps-progs}
\=\+(\=\+{\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp-1}}\,({\it{pnames\/}}, {\it{program-names\/}})\index{l-proper-programsp-1})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{s-construct-programs}}\,({\rm{remove-duplicates}}\,({\it{pnames\/}})\index{remove-duplicates})\index{s-construct-programs})\index{s-restrict-subrps-progs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  l-restrict-subrps-progs-s-restrict-subrps-progs-logic-$>$s \\ \index{l-restrict-subrps-progs-s-restri!ct-subrps-progs-logic-$>$s}
\=\+(\=\+{\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\bf{t}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{program-names\/}}, {\it{formals\/}})\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{s-restrict-subrps-progs}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs})\index{s-restrict-subrps-progs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  name-car-s-progs-logic-$>$s \\ \index{name-car-s-progs-logic-$>$s}
{\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}))\index{name} $=$ {\tt{'}}{\tt{main}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-pname-logic-$>$s \\ \index{s-pname-logic-$>$s}
{\rm{s-pname}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-pname} $=$ {\tt{'}}{\tt{main}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-pos-logic-$>$s \\ \index{s-pos-logic-$>$s}
{\rm{s-pos}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-pos} $=$ {\bf{nil}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  definedp-user-fname-s-construct-programs \\ \index{definedp-user-fname-s-construct!-programs}
\=\+({\rm{litatom}}\,({\it{name\/}}) $\wedge$ {\rm{all-litatoms-not-plist}}\,({\it{pnames\/}})\index{all-litatoms-not-plist}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{definedp}}\,({\rm{user-fname}}\,({\it{name\/}})\index{user-fname}, {\rm{s-construct-programs}}\,({\it{pnames\/}})\index{s-construct-programs})\index{definedp} \\ 
$=$$\;\;\;\;$({\it{name\/}} $\in$ {\it{pnames\/}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-strip-cars-s-construct-programs \\ \index{no-duplicatesp-strip-cars-s-con!struct-programs}
\=\+{\rm{all-litatoms-not-plist}}\,({\it{pnames\/}})\index{all-litatoms-not-plist} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\rm{s-construct-programs}}\,({\it{pnames\/}})\index{s-construct-programs}))\index{no-duplicatesp} \\ 
$=$$\;\;\;\;${\rm{no-duplicatesp}}\,({\it{pnames\/}})\index{no-duplicatesp})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-user-fnamesp-strip-cars-s-construct-programs \\ \index{all-user-fnamesp-strip-cars-s-c!onstruct-programs}
\=\+{\rm{all-litatoms-not-plist}}\,({\it{pnames\/}})\index{all-litatoms-not-plist} \\ 
$\rightarrow$$\;\;\;\;${\rm{all-user-fnamesp}}\,({\rm{strip-cars}}\,({\rm{s-construct-programs}}\,({\it{pnames\/}})\index{s-construct-programs}))\index{all-user-fnamesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-duplicatesp-strip-cars-s-progs-logic-$>$s \\ \index{no-duplicatesp-strip-cars-s-pro!gs-logic-$>$s}
\=\+{\rm{all-litatoms-not-plist}}\,({\it{pnames\/}})\index{all-litatoms-not-plist} \\ 
$\rightarrow$$\;\;\;\;${\rm{no-duplicatesp}}\,({\rm{strip-cars}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}))\index{no-duplicatesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-formals-car-s-progs-logic-$>$s \\ \index{s-formals-car-s-progs-logic-$>$!s}
{\rm{s-formals}}\,({\rm{car}}\,({\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}))\index{s-formals} $=$ {\rm{strip-cars}}\,({\it{alist\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-expr-logic-$>$s \\ \index{s-expr-logic-$>$s}
{\rm{s-expr}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-expr} $=$ {\it{expr\/}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-litatoms-not-plist-lr-proper-programsp \\ \index{all-litatoms-not-plist-lr-prope!r-programsp}
{\rm{l-proper-programsp}}\,({\it{prog-names\/}})\index{l-proper-programsp} $\rightarrow$ {\rm{all-litatoms-not-plist}}\,({\it{prog-names\/}})\index{all-litatoms-not-plist}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  logic-$>$lr-ok-really \\ \index{logic-$>$lr-ok-really}
\=\+(\=\+{\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrictedp}}\,({\it{pnames\/}}, {\it{alist\/}})\index{l-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $<$ {\it{c\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\bf{t}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{lr-total-heap-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{heap-size\/}}, {\it{c\/}})\index{lr-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\not<$ {\rm{lr-max-ctrl-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{c\/}})\index{lr-max-ctrl-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\not<$ {\rm{lr-max-temp-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{c\/}})\index{lr-max-temp-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{lr-max-word-size-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{heap-size\/}}, {\it{c\/}})\index{lr-max-word-size-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{car}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})), \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk}), \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}

\begin{verbatim}; ------------------------------------------------------------
; was p1.events
; ------------------------------------------------------------

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{logic-$>$p} \\  
\=\+{\rm{logic-$>$p}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{logic-$>$p} \\ 
$=$$\;\;\;\;${\rm{lr-$>$p}}\,({\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr})\index{lr-$>$p}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-run-subr-clock} \\  
\=\+{\rm{p-run-subr-clock}}\,({\it{l\/}}, {\it{new-l\/}})\index{p-run-subr-clock} \\ 
$=$$\;\;\;\;$\=\+{\bf case on }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}): \\ 
{\bf case = }{\it{car\/}} \\ 
{\bf then }{\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-car-clock} \\ 
{\bf case = }{\it{cdr\/}} \\ 
{\bf $\;\;$then }{\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-cdr-clock} \\ 
{\bf case = }{\it{cons\/}} \\ 
{\bf $\;\;$then }{\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-cons-clock} \\ 
{\bf case = }{\it{false\/}} \\ 
{\bf $\;\;$then }{\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-false-clock} \\ 
{\bf case = }{\it{falsep\/}} \\ 
{\bf $\;\;$then }{\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-falsep-clock} \\ 
{\bf case = }{\it{listp\/}} \\ 
{\bf $\;\;$then }{\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-listp-clock} \\ 
{\bf case = }{\it{nlistp\/}} \\ 
{\bf $\;\;$then }{\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-nlistp-clock} \\ 
{\bf case = }{\it{true\/}} \\ 
{\bf $\;\;$then }{\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-true-clock} \\ 
{\bf case = }{\it{truep\/}} \\ 
{\bf $\;\;$then }{\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\index{p-truep-clock} \\ 
{\bf otherwise }{\tt{0}}$\;${\bf  endcase}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-run-subr-clock.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{p-clock1} \\  
\=\+{\rm{p-clock1}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}}$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }\=\+{\bf if }{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}) \\ 
{\bf then }\=\+{\rm{p-clock1}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{l\/}}, \\ 
{\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{nx})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{p-clock1}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\- \\ 
{\bf elseif }{\it{c\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})$\;\;${\bf then }{\tt{1}} \\ 
{\bf elseif }{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\tt{0}} \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-if-ok}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-if-ok}\- \\ 
{\bf in} \\ 
\=\+{\bf if }{\rm{p-psw}}\,({\it{test\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}} \\ 
{\bf then }\=\+{\bf if }{\rm{top}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk})\index{top} $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr} \\ 
{\bf then }\=\+{\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\tt{2}})\-\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{1}}\- \\ 
{\bf else }\=\+{\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\tt{3}})\-\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{p-clock1}\-$\;${\bf  endif}\- \\ 
{\bf else }{\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{p-clock1}$\;${\bf  endif}\-$\;${\bf  endlet}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval} \\ 
{\bf then }{\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} $+$ {\tt{1}} \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test} \\ 
{\bf then }\=\+{\bf if }{\rm{lr-eval-temp-setp}}\,({\it{l\/}})\index{lr-eval-temp-setp}$\;\;${\bf then }{\tt{5}} \\ 
{\bf else }\=\+{\tt{4}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{2}}\-$\;${\bf  endif}\- \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}$\;\;${\bf then }{\tt{1}} \\ 
{\bf elseif }{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}$\;\;${\bf then }{\tt{1}} \\ 
{\bf elseif }\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{run}}\- \\ 
{\bf then }{\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
{\bf elseif }{\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
{\bf then }\=\+{\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\rm{p-run-subr-clock}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{p-run-subr-clock}\- \\ 
{\bf elseif }{\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
{\bf then }\=\+{\bf let }\=\+{\it{fs\/}}{\bf $\;$ be$\;\;$}{\rm{lr-funcall}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-funcall}\- \\ 
{\bf in} \\ 
\=\+{\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{1}}\-$\;${\bf  endlet}\- \\ 
{\bf else }{\tt{0}}$\;${\bf  endif}\-\-
\end{tabbing}
\begin{tabbing}{\sc Definition}:\index{lr-good-pointerps} \\  
\=\+{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}}) \\ 
{\bf then }\=\+{\rm{lr-good-pointerp}}\,({\rm{car}}\,({\it{list\/}}), {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{cdr}}\,({\it{list\/}}), {\it{data-seg\/}})\index{lr-good-pointerps}\- \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-proper-ctrl-stkp} \\  
\=\+{\rm{lr-proper-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{data-seg\/}})\index{lr-proper-ctrl-stkp} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{ctrl-stk\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\it{ctrl-stk\/}} $=$ {\bf{nil}} \\ 
{\bf else }\=\+{\rm{lr-good-pointerps}}\,(\=\+{\rm{strip-cdrs}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\index{strip-cdrs}, \\ 
{\it{data-seg\/}})\-\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-ctrl-stkp}}\,({\rm{pop}}\,({\it{ctrl-stk\/}})\index{pop}, {\it{data-seg\/}})\index{lr-proper-ctrl-stkp}\-$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{lr-p-proper-statep} \\  
\=\+{\rm{lr-p-proper-statep}}\,({\it{temp-stk\/}}, {\it{ctrl-stk\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-proper-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{data-seg\/}})\index{lr-proper-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-p-proper-statep.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  definedp-cdr-assoc-lr-good-pointerps \\ \index{definedp-cdr-assoc-lr-good-pointe!rps}
\=\+(({\it{addr\/}} $\in$ {\it{list\/}}) $\wedge$ {\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-lr-push-tstk-cdr-assoc-lr-expr \\ \index{lr-p-proper-statep-lr-push-tstk!-cdr-assoc-lr-expr}
\=\+(\=\+{\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-push-tstk}}\,(\=\+{\it{l\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-))\-\index{lr-push-tstk})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,(\=\+{\it{l\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-))\-\index{lr-push-tstk})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-cdr-temp-stk \\ \index{lr-p-proper-statep-cdr-temp-stk}
\=\+{\rm{lr-p-proper-statep}}\,({\it{temp-stk\/}}, {\it{ctrl-stk\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,({\rm{cdr}}\,({\it{temp-stk\/}}), {\it{ctrl-stk\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-put-assoc \\ \index{lr-good-pointerps-put-assoc}
\=\+(\=\+{\rm{lr-good-pointerp}}\,({\it{addr\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{strip-cdrs}}\,({\it{bindings\/}})\index{strip-cdrs}, {\it{data-seg\/}})\index{lr-good-pointerps})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{strip-cdrs}}\,({\rm{put-assoc}}\,({\it{addr\/}}, {\it{expr\/}}, {\it{bindings\/}})\index{put-assoc})\index{strip-cdrs}, {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-cons-p-frame-put-assoc \\ \index{lr-p-proper-statep-cons-p-frame!-put-assoc}
\=\+(\=\+{\rm{lr-p-proper-statep}}\,({\it{temp-stk\/}}, {\it{ctrl-stk\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{cdr-ctrl-stk\/}} $=$ {\rm{cdr}}\,({\it{ctrl-stk\/}})))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\it{temp-stk\/}}, \\ 
{\rm{cons}}\,(\=\+{\rm{p-frame}}\,(\=\+{\rm{put-assoc}}\,(\=\+{\rm{car}}\,({\it{temp-stk\/}}), \\ 
{\it{expr\/}}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\it{ctrl-stk\/}}))\index{bindings})\-\index{put-assoc}, \\ 
{\it{ret-pc\/}})\-\index{p-frame}, \\ 
{\it{cdr-ctrl-stk\/}})\-, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-leaves-listp-p-ctrl-stk-lr-$>$p-lr-set-pos \\ \index{lr-eval-leaves-listp-p-ctrl-stk!-lr-$>$p-lr-set-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{listp}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-cdr-assoc-caddr-lr-expr-bindings \\ \index{lr-p-proper-statep-cdr-assoc-ca!ddr-lr-expr-bindings}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,({\it{temp-stk\/}}, {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}))\-)\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-), \\ 
{\it{temp-stk\/}})\-, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-strip-cdrs-lr-good-pointerp-tablep \\ \index{member-strip-cdrs-lr-good-pointe!rp-tablep}
\=\+(({\it{object\/}} $\in$ {\rm{strip-cdrs}}\,({\it{table\/}})\index{strip-cdrs}) $\wedge$ {\rm{lr-good-pointerp-tablep}}\,({\it{table\/}}, {\it{data-seg\/}})\index{lr-good-pointerp-tablep}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,({\it{object\/}}, {\it{data-seg\/}})\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-p-temps-stk-lr-push-tstk-quote \\ \index{lr-p-proper-statep-p-temps-stk-!lr-push-tstk-quote}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-push-tstk})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, {\it{ctrl-stk\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-push-tstk}}\,({\it{l\/}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-push-tstk})\index{p-temp-stk}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-good-pointerp-tablep \\ \index{p-run-subr-preserves-lr-good-poi!nterp-tablep}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,({\it{table2\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-good-pointerp-tablep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table1\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table1\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp-tablep}}\,(\=\+{\it{table2\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-good-pointerp-tablep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-deposit-free-ptr \\ \index{lr-good-pointerps-deposit-free-pt!r}
\=\+{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-good-pointerps} \\ 
$=$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}
\begin{tabbing}{\sc Theorem}:  lr-proper-ctrl-stkp-deposit-free-ptr \\ \index{lr-proper-ctrl-stkp-deposit-free!-ptr}
\=\+{\rm{lr-proper-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{deposit})\index{lr-proper-ctrl-stkp} \\ 
$=$$\;\;\;\;${\rm{lr-proper-ctrl-stkp}}\,({\it{ctrl-stk\/}}, {\it{data-seg\/}})\index{lr-proper-ctrl-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerp-deposit-a-list-node \\ \index{lr-good-pointerp-deposit-a-list!-node}
\=\+(\=\+{\rm{lr-good-pointerp}}\,({\it{addr1\/}}, {\it{data-seg\/}})\index{lr-good-pointerp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr2\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr2\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr2\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr2\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr2\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr2\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerp}}\,(\=\+{\it{addr1\/}}, \\ 
{\rm{deposit-a-list}}\,({\rm{list}}\,({\it{x\/}}, {\it{ref-count\/}}, {\it{y\/}}, {\it{z\/}}), {\it{addr2\/}}, {\it{data-seg\/}})\index{deposit-a-list})\-\index{lr-good-pointerp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-deposit-a-list-node \\ \index{lr-good-pointerps-deposit-a-list!-node}
\=\+(\=\+{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,(\=\+{\it{list\/}}, \\ 
{\rm{deposit-a-list}}\,({\rm{list}}\,({\it{x\/}}, {\it{ref-count\/}}, {\it{y\/}}, {\it{z\/}}), {\it{addr\/}}, {\it{data-seg\/}})\index{deposit-a-list})\-\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-ctrl-stkp-deposit-a-list-node \\ \index{lr-proper-ctrl-stkp-deposit-a-li!st-node}
\=\+(\=\+{\rm{lr-proper-ctrl-stkp}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-proper-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cddr}}\,({\it{addr\/}}) $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{addr\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\it{addr\/}})\index{untag}, {\it{data-seg\/}})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\it{addr\/}})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\it{addr\/}})\index{area-name} $=$ {\tt{'}}{\tt{heap}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-ctrl-stkp}}\,(\=\+{\it{list\/}}, \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{x\/}}, {\it{ref-count\/}}, {\it{y\/}}, {\it{z\/}}), \\ 
{\it{addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-proper-ctrl-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-proper-ctrl-stkp \\ \index{p-run-subr-preserves-lr-proper-!ctrl-stkp}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-ctrl-stkp}}\,(\=\+{\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-data-segment})\-\index{lr-proper-ctrl-stkp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-ctrl-stkp}}\,(\=\+{\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-proper-ctrl-stkp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cons-lr-f-addr-lr-proper-heapp \\ \index{lr-good-pointerps-cons-lr-f-add!r-lr-proper-heapp}
\=\+(\=\+{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{cons}}\,({\rm{identity}}\,({\sc{lr-f-addr}}\index{lr-f-addr}), {\it{list\/}}), {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cons-lr-t-addr-lr-proper-heapp \\ \index{lr-good-pointerps-cons-lr-t-add!r-lr-proper-heapp}
\=\+(\=\+{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{cons}}\,({\rm{identity}}\,({\sc{lr-t-addr}}\index{lr-t-addr}), {\it{list\/}}), {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cons-lr-0-addr-lr-proper-heapp \\ \index{lr-good-pointerps-cons-lr-0-add!r-lr-proper-heapp}
\=\+(\=\+{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{cons}}\,({\rm{identity}}\,({\sc{lr-0-addr}}\index{lr-0-addr}), {\it{list\/}}), {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cdr \\ \index{lr-good-pointerps-cdr}
{\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} $\rightarrow$ {\rm{lr-good-pointerps}}\,({\rm{cdr}}\,({\it{list\/}}), {\it{data-seg\/}})\index{lr-good-pointerps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cons-fetch-car-temp-stk-cdr-car \\ \index{lr-good-pointerps-cons-fetch-ca!r-temp-stk-cdr-car}
\=\+(\=\+{\rm{lr-good-pointerps}}\,({\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $\not<$ {\tt{1}}) \\ 
$\wedge$$\;\;\;\;$({\rm{fetch}}\,({\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{fetch} $=$ {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{car}}\,({\it{temp-stk\/}}), \\ 
{\rm{identity}}\,({\sc{lr-car-offset}}\index{lr-car-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{cdr}}\,({\it{temp-stk\/}}))\-, \\ 
{\it{data-seg\/}})\-\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cons-fetch-car-temp-stk-cdr-cdr \\ \index{lr-good-pointerps-cons-fetch-ca!r-temp-stk-cdr-cdr}
\=\+(\=\+{\rm{lr-good-pointerps}}\,({\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{temp-stk\/}})\index{length} $\not<$ {\tt{1}}) \\ 
$\wedge$$\;\;\;\;$({\rm{fetch}}\,({\rm{car}}\,({\it{temp-stk\/}}), {\it{data-seg\/}})\index{fetch} $=$ {\rm{tag}}\,({\tt{'}}{\tt{nat}}, {\sc{lr-cons-tag}}\index{lr-cons-tag})\index{tag}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,(\=\+{\rm{cons}}\,(\=\+{\rm{fetch}}\,(\=\+{\rm{add-addr}}\,(\=\+{\rm{car}}\,({\it{temp-stk\/}}), \\ 
{\rm{identity}}\,({\sc{lr-cdr-offset}}\index{lr-cdr-offset}))\-\index{add-addr}, \\ 
{\it{data-seg\/}})\-\index{fetch}, \\ 
{\rm{cdr}}\,({\it{temp-stk\/}}))\-, \\ 
{\it{data-seg\/}})\-\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-cons-fetch-fp-addr-deposit-a-list-cons \\ \index{lr-good-pointerps-cons-fetch-fp!-addr-deposit-a-list-cons}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\it{temp-stk\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;$({\it{fp-addr\/}} $=$ {\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{ref-count\/}})\index{type} $=$ {\tt{'}}{\tt{nat}}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,(\=\+{\rm{cons}}\,({\rm{fetch}}\,({\rm{identity}}\,({\sc{lr-fp-addr}}\index{lr-fp-addr}), {\it{data-seg\/}})\index{fetch}, {\it{temp-stk\/}}), \\ 
{\rm{deposit-a-list}}\,(\=\+{\rm{list}}\,({\it{x\/}}, {\it{ref-count\/}}, {\it{y\/}}, {\it{z\/}}), \\ 
{\it{fp-addr\/}}, \\ 
{\it{data-seg\/}})\-\index{deposit-a-list})\-\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-good-pointerps \\ \index{p-run-subr-preserves-lr-good-poi!nterps}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}, {\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{lr-eval\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{lr-eval\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-temp-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{lr-eval\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-good-pointerps}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-proper-heapp2-alt \\ \index{p-run-subr-preserves-lr-proper-!heapp2-alt}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-free-listp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-free-listp} \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{untag}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-boundary-nodep}}\,({\rm{lr-max-node}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-max-node})\index{lr-boundary-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp2}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp2} \\ 
$\wedge$$\;\;\;\;${\rm{lr-nodep}}\,({\it{addr\/}}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-nodep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp2}}\,(\=\+{\it{addr\/}}, \\ 
{\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\-\index{lr-proper-heapp2}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-preserves-lr-proper-heapp \\ \index{p-run-subr-preserves-lr-proper-!heapp}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{new-l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, {\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{new-l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, {\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment})\index{lr-good-pointerps} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-heapp}}\,({\rm{p-data-segment}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-data-segment})\index{lr-proper-heapp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-apply-subr-preserves-lr-p-proper-statep \\ \index{lr-apply-subr-preserves-lr-p-pr!oper-statep}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{lr-eval\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{lr-eval\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{lr-eval\/}})\index{lr-apply-subr})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{lr-eval\/}})\index{lr-apply-subr})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{lr-eval\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\it{lr-eval\/}})\index{lr-apply-subr})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-$\;${\bf  endlet}\-
\end{tabbing}

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

\begin{tabbing}{\sc Theorem}:  strip-cdrs-pairlist \\ \index{strip-cdrs-pairlist}
\=\+({\rm{length}}\,({\it{x\/}})\index{length} $\not<$ {\rm{length}}\,({\it{y\/}})\index{length}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{strip-cdrs}}\,({\rm{pairlist}}\,({\it{x\/}}, {\it{y\/}}))\index{strip-cdrs} $=$ {\rm{first-n}}\,({\rm{length}}\,({\it{x\/}})\index{length}, {\it{y\/}})\index{first-n})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-append \\ \index{lr-good-pointerps-append}
\=\+{\rm{lr-good-pointerps}}\,({\rm{append}}\,({\it{x\/}}, {\it{y\/}}), {\it{data-seg\/}})\index{lr-good-pointerps} \\ 
$=$$\;\;\;\;$({\rm{lr-good-pointerps}}\,({\it{x\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} $\wedge$ {\rm{lr-good-pointerps}}\,({\it{y\/}}, {\it{data-seg\/}})\index{lr-good-pointerps})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-reverse \\ \index{lr-good-pointerps-reverse}
{\rm{lr-good-pointerps}}\,({\rm{reverse}}\,({\it{x\/}})\index{reverse}, {\it{data-seg\/}})\index{lr-good-pointerps} $=$ {\rm{lr-good-pointerps}}\,({\it{x\/}}, {\it{data-seg\/}})\index{lr-good-pointerps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-first-n \\ \index{lr-good-pointerps-first-n}
\=\+({\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} $\wedge$ ({\rm{length}}\,({\it{list\/}})\index{length} $\not<$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{first-n}}\,({\it{n\/}}, {\it{list\/}})\index{first-n}, {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{all-numberps} \\  
\=\+{\rm{all-numberps}}\,({\it{list\/}})\index{all-numberps} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{listp}}\,({\it{list\/}})$\;\;${\bf then }({\rm{car}}\,({\it{list\/}}) $\in\;${\bf{N}}${}$) $\wedge$ {\rm{all-numberps}}\,({\rm{cdr}}\,({\it{list\/}}))\index{all-numberps} \\ 
{\bf else }{\bf{t}}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-numberps-strip-cadrs-numberp-cdr-assoc \\ \index{all-numberps-strip-cadrs-numberp!-cdr-assoc}
{\rm{all-numberps}}\,({\rm{strip-cadrs}}\,({\it{list\/}})\index{strip-cadrs})\index{all-numberps} $\rightarrow$ ({\rm{cadr}}\,({\rm{assoc}}\,({\it{x\/}}, {\it{list\/}})) $\in\;${\bf{N}}${}$)
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-numberps-strip-cadrs-subr-arity-alist \\ \index{all-numberps-strip-cadrs-subr-a!rity-alist}
{\rm{all-numberps}}\,({\rm{strip-cadrs}}\,({\sc{subr-arity-alist}}\index{subr-arity-alist})\index{strip-cadrs})\index{all-numberps}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  numberp-arity \\ \index{numberp-arity}
{\rm{arity}}\,({\it{x\/}})\index{arity} $\in\;${\bf{N}}${}$
\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{temp-var-dcls\/}})\index{pair-temps-with-initial-values})\index{strip-cdrs} \\ 
$=$$\;\;\;\;${\rm{strip-cadrs}}\,({\it{temp-var-dcls\/}})\index{strip-cadrs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-all-undef-addrs \\ \index{lr-good-pointerps-all-undef-add!rs}
\=\+(\=\+{\rm{lr-proper-heapp}}\,({\it{data-seg\/}})\index{lr-proper-heapp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-p-areasp}}\,({\it{data-seg\/}})\index{lr-proper-p-areasp} \\ 
$\wedge$$\;\;\;\;${\rm{all-undef-addrs}}\,({\it{list\/}})\index{all-undef-addrs})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-undef-addrs-strip-cadrs-temp-vars-programs-properp-1 \\ \index{all-undef-addrs-strip-cadrs-temp!-vars-programs-properp-1}
\=\+(\=\+{\rm{lr-programs-properp-1}}\,({\it{programs\/}}, {\it{program-names\/}}, {\it{table\/}})\index{lr-programs-properp-1} \\ 
$\wedge$$\;\;\;\;${\rm{definedp}}\,({\it{name\/}}, {\it{programs\/}})\index{definedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{all-undef-addrs}}\,({\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,({\it{name\/}}, {\it{programs\/}}))\index{temp-var-dcls})\index{strip-cadrs})\index{all-undef-addrs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  all-undef-addrs-strip-cadrs-temp-vars-programs-properp \\ \index{all-undef-addrs-strip-cadrs-temp!-vars-programs-properp}
\=\+({\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} $\wedge$ {\rm{definedp}}\,({\it{name\/}}, {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{definedp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{all-undef-addrs}}\,({\rm{strip-cadrs}}\,({\rm{temp-var-dcls}}\,({\rm{assoc}}\,(\=\+{\it{name\/}}, \\ 
{\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\-)\index{temp-var-dcls})\index{strip-cadrs})\index{all-undef-addrs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-good-pointerps-popn \\ \index{lr-good-pointerps-popn}
\=\+({\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps} $\wedge$ ({\rm{length}}\,({\it{list\/}})\index{length} $\not<$ {\it{n\/}})) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{popn}}\,({\it{n\/}}, {\it{list\/}})\index{popn}, {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-lr-funcall \\ \index{lr-p-proper-statep-lr-funcall}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{new-l\/}})\index{p-temp-stk})\index{length} $\not<$ {\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{new-l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval-flag-list-alt \\ \index{length-p-temp-stk-lr-eval-flag-!list-alt}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-cdr-lr-ctrl-stk \\ \index{lr-p-proper-statep-cdr-lr-ctrl-!stk}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\it{temp-stk\/}}, \\ 
{\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-ctrl-stk}, \\ 
{\it{data-segment\/}}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\it{temp-stk\/}}, \\ 
{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\it{pos\/}})\-\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\-\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{p-ctrl-stk}), \\ 
{\it{data-segment\/}}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-lr-p-proper-statep \\ \index{lr-eval-preserves-lr-p-proper-st!atep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-plus \\ \index{p-plus}
{\rm{p}}\,({\it{p\/}}, {\it{c1\/}} $+$ {\it{c2\/}})\index{p} $=$ {\rm{p}}\,({\rm{p}}\,({\it{p\/}}, {\it{c1\/}})\index{p}, {\it{c2\/}})\index{p}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-set-pc-lr-$>$p-lr-set-expr \\ \index{p-set-pc-lr-$>$p-lr-set-expr}
\=\+({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-$>$p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l1\/}})\index{lr-$>$p}, {\rm{lr-p-pc}}\,({\rm{lr-set-expr}}\,({\it{l1\/}}, {\it{l2\/}}, {\it{pos\/}})\index{lr-set-expr})\index{lr-p-pc})\index{p-set-pc})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-set-pc-lr-$>$p-lr-set-expr.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  member-assoc-area-name-cdr-lr-programs-properp \\ \index{member-assoc-area-name-cdr-lr-p!rograms-properp}
\=\+(\=\+({\rm{assoc}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})) $\not\in$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $\not=$ {\rm{caar}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable member-assoc-area-name-cdr-lr-programs-properp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  not-listp-prog-segment-not-lr-programs-properp \\ \index{not-listp-prog-segment-not-lr-p!rograms-properp}
($\neg$ {\rm{listp}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})) $\rightarrow$ ($\neg$ {\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})
\end{tabbing}


\noindent{\sc Event}:   Disable not-listp-prog-segment-not-lr-programs-properp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  unlabel-get-lr-p-pc-program-body-assoc-comp-programs \\ \index{unlabel-get-lr-p-pc-program-bod!y-assoc-comp-programs}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\rm{offset}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc})\index{offset})\index{lr-make-label}, \\ 
{\bf{nil}}, \\ 
{\rm{car}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, {\rm{offset}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc})\index{offset})\index{comp-body-1}))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-comp-body-1-litatom \\ \index{car-comp-body-1-litatom}
\=\+{\rm{litatom}}\,({\it{body\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{car}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\it{body\/}}, {\it{n\/}})\index{comp-body-1}) $=$ {\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\it{body\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-append-helper-1 \\ \index{lr-p-pc-1-append-helper-1}
\=\+({\rm{listp}}\,({\it{body\/}}) $\wedge$ ({\rm{car}}\,({\it{body\/}}) $=$ {\tt{'}}{\tt{if}}) $\wedge$ ({\it{n\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{cons}}\,({\it{n\/}}, {\it{pos\/}}))\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $=$ {\tt{1}}$\;\;${\bf then }{\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} \\ 
{\bf elseif }{\it{n\/}} $=$ {\tt{2}} \\ 
{\bf then }\=\+{\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{caddr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1}\- \\ 
{\bf else }\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{body\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{cadddr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\tt{4}}\-$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-append-helper-2 \\ \index{lr-p-pc-1-append-helper-2}
\=\+({\rm{listp}}\,({\it{body\/}}) $\wedge$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{cons}}\,({\tt{1}}, {\it{pos\/}}))\index{lr-p-pc-1} $=$ {\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-append-helper-3 \\ \index{lr-p-pc-1-append-helper-3}
\=\+({\rm{listp}}\,({\it{body\/}}) $\wedge$ ({\rm{car}}\,({\it{body\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{cons}}\,({\tt{1}}, {\it{pos\/}}))\index{lr-p-pc-1} $=$ ({\rm{lr-p-pc-1}}\,({\rm{cadr}}\,({\it{body\/}}), {\it{pos\/}})\index{lr-p-pc-1} $+$ {\tt{4}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-append-helper-4 \\ \index{lr-p-pc-1-append-helper-4}
\=\+(\=\+{\rm{listp}}\,({\it{body\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{body\/}}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{cons}}\,({\it{n\/}}, {\it{pos\/}}))\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$({\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{body\/}})\index{lr-p-c-size-list} $+$ {\rm{lr-p-pc-1}}\,({\rm{get}}\,({\it{n\/}}, {\it{body\/}})\index{get}, {\it{pos\/}})\index{lr-p-pc-1}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-append \\ \index{lr-p-pc-1-append}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos1\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{append}}\,({\it{pos1\/}}, {\it{pos2\/}}))\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos1\/}})\index{lr-p-pc-1} $+$ {\rm{lr-p-pc-1}}\,({\rm{cur-expr}}\,({\it{pos1\/}}, {\it{body\/}})\index{cur-expr}, {\it{pos2\/}})\index{lr-p-pc-1}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  append-butlast-list-car-last \\ \index{append-butlast-list-car-last}
{\rm{listp}}\,({\it{x\/}}) $\rightarrow$ ({\rm{append}}\,({\rm{butlast}}\,({\it{x\/}})\index{butlast}, {\rm{list}}\,({\rm{car}}\,({\rm{last}}\,({\it{x\/}})\index{last}))) $=$ {\rm{plist}}\,({\it{x\/}})\index{plist})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  listp-plist-car \\ \index{listp-plist-car}
{\rm{listp}}\,({\it{x\/}}) $\rightarrow$ ({\rm{car}}\,({\rm{plist}}\,({\it{x\/}})\index{plist}) $=$ {\rm{car}}\,({\it{x\/}}))
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-plist \\ \index{lr-p-pc-1-plist}
{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{plist}}\,({\it{pos\/}})\index{plist})\index{lr-p-pc-1} $=$ {\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-listp-offset \\ \index{lr-p-pc-1-listp-offset}
\=\+(\=\+{\rm{listp}}\,({\it{pos\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-exprp}}\,({\bf{t}}, {\it{body\/}}, {\it{pnames\/}}, {\it{formals\/}}, {\it{temps\/}}, {\it{table\/}})\index{lr-proper-exprp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{butlast}}\,({\it{pos\/}})\index{butlast})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\rm{cur-expr}}\,({\rm{butlast}}\,({\it{pos\/}})\index{butlast}, {\it{body\/}})\index{cur-expr}, \\ 
{\rm{list}}\,({\rm{car}}\,({\rm{last}}\,({\it{pos\/}})\index{last})))\-\index{lr-p-pc-1})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-nil \\ \index{lr-p-pc-1-nil}
{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\bf{nil}})\index{lr-p-pc-1} $=$ {\tt{0}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-nx-helper \\ \index{lr-p-pc-1-nx-helper}
\=\+(\=\+{\rm{listp}}\,({\it{expr\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{expr\/}}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\rm{length}}\,({\it{expr\/}})\index{length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{expr\/}}, {\rm{list}}\,({\it{n\/}}))\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}} \\ 
{\bf then }\=\+{\bf case on }{\it{n\/}}: \\ 
{\bf case = }{\tt{1}} \\ 
{\bf then }{\tt{0}} \\ 
{\bf case = }{\tt{2}} \\ 
{\bf $\;\;$then }{\tt{3}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
{\bf otherwise }\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{4}}\-$\;${\bf  endcase}\- \\ 
{\bf else }{\rm{lr-p-c-size-list}}\,({\it{n\/}} $-\;1$, {\it{expr\/}})\index{lr-p-c-size-list}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-nx \\ \index{lr-p-pc-1-nx}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\tt{'}}{\tt{list}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{cur-expr}}\,(\=\+{\rm{butlast}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{butlast}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{cur-expr}) \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{if}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{nx})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\index{lr-p-c-size})\-)\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-p-pc-1-listp-offset.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-dv-1-car-lr-expr-if \\ \index{lr-p-pc-1-dv-1-car-lr-expr-if}
\=\+(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-dv-2-car-lr-expr-if \\ \index{lr-p-pc-1-dv-2-car-lr-expr-if}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$(\=\+{\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-dv-3-car-lr-expr-if \\ \index{lr-p-pc-1-dv-3-car-lr-expr-if}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{3}})\index{dv})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-not-1-car-if \\ \index{lr-p-c-size-not-1-car-if}
({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}})) $\rightarrow$ ({\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size} $\not=$ {\tt{1}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-ge-plus-2-size-cadr-car-if \\ \index{lr-p-c-size-ge-plus-2-size-cadr!-car-if}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}})) \\ 
$\rightarrow$$\;\;\;\;$(($1\;+$ ($1\;+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size})) $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-comp-if-helper-helper \\ \index{get-comp-if-helper-helper}
\=\+(({\it{n\/}} $\not<$ ({\it{x\/}} $+$ {\it{y\/}} $+$ {\tt{3}})) $\wedge$ ({\it{n\/}} $\not=$ ({\it{x\/}} $+$ {\it{y\/}} $+$ {\tt{3}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{n\/}} $-$ ({\it{x\/}} $+$ {\tt{3}} $+$ {\it{y\/}}), {\rm{cons}}\,({\it{w\/}}, {\it{l3\/}}))\index{get} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\it{n\/}} $-$ ({\it{x\/}} $+$ {\it{y\/}} $+$ {\tt{4}}), {\it{l3\/}})\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-comp-if-helper \\ \index{get-comp-if-helper}
\=\+{\rm{get}}\,({\it{n\/}}, {\rm{append}}\,({\it{l1\/}}, {\rm{append}}\,({\rm{list}}\,({\it{x\/}}, {\it{y\/}}, {\it{z\/}}), {\rm{append}}\,({\it{l2\/}}, {\rm{cons}}\,({\it{w\/}}, {\it{l3\/}})))))\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\rm{length}}\,({\it{l1\/}})\index{length}$\;\;${\bf then }{\rm{get}}\,({\it{n\/}}, {\it{l1\/}})\index{get} \\ 
{\bf elseif }{\it{n\/}} $<$ ({\rm{length}}\,({\it{l1\/}})\index{length} $+$ {\tt{3}}) \\ 
{\bf then }{\rm{get}}\,({\it{n\/}} $-$ {\rm{length}}\,({\it{l1\/}})\index{length}, {\rm{list}}\,({\it{x\/}}, {\it{y\/}}, {\it{z\/}}))\index{get} \\ 
{\bf elseif }{\it{n\/}} $<$ ({\rm{length}}\,({\it{l1\/}})\index{length} $+$ {\rm{length}}\,({\it{l2\/}})\index{length} $+$ {\tt{3}}) \\ 
{\bf then }{\rm{get}}\,({\it{n\/}} $-$ ({\rm{length}}\,({\it{l1\/}})\index{length} $+$ {\tt{3}}), {\it{l2\/}})\index{get} \\ 
{\bf elseif }{\it{n\/}} $=$ ({\rm{length}}\,({\it{l1\/}})\index{length} $+$ {\rm{length}}\,({\it{l2\/}})\index{length} $+$ {\tt{3}})$\;\;${\bf then }{\it{w\/}} \\ 
{\bf else }{\rm{get}}\,({\it{n\/}} $-$ ({\rm{length}}\,({\it{l1\/}})\index{length} $+$ {\rm{length}}\,({\it{l2\/}})\index{length} $+$ {\tt{4}}), {\it{l3\/}})\index{get}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-comp-if \\ \index{get-comp-if}
\=\+{\rm{get}}\,({\it{n\/}}, {\rm{comp-if}}\,({\it{test-instrs\/}}, {\it{then-instrs\/}}, {\it{else-instrs\/}}, {\it{m\/}})\index{comp-if})\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{n\/}} $<$ {\rm{length}}\,({\it{test-instrs\/}})\index{length}$\;\;${\bf then }{\rm{get}}\,({\it{n\/}}, {\it{test-instrs\/}})\index{get} \\ 
{\bf elseif }{\it{n\/}} $<$ ({\rm{length}}\,({\it{test-instrs\/}})\index{length} $+$ {\tt{3}}) \\ 
{\bf then }{\rm{get}}\,(\=\+{\it{n\/}} $-$ {\rm{length}}\,({\it{test-instrs\/}})\index{length}, \\ 
{\rm{list}}\,(\=\+{\rm{identity}}\,({\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr})), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{test-bool-and-jump}}, \\ 
{\tt{'}}{\tt{t}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\it{m\/}} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{test-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{then-instrs\/}})\index{length}\-)\index{lr-make-label})\-)\-)\-\index{get} \\ 
{\bf elseif }{\it{n\/}} $<$ ({\rm{length}}\,({\it{test-instrs\/}})\index{length} $+$ {\rm{length}}\,({\it{then-instrs\/}})\index{length} $+$ {\tt{3}}) \\ 
{\bf then }{\rm{get}}\,({\it{n\/}} $-$ ({\rm{length}}\,({\it{test-instrs\/}})\index{length} $+$ {\tt{3}}), {\it{then-instrs\/}})\index{get} \\ 
{\bf elseif }{\it{n\/}} $=$ ({\rm{length}}\,({\it{test-instrs\/}})\index{length} $+$ {\rm{length}}\,({\it{then-instrs\/}})\index{length} $+$ {\tt{3}}) \\ 
{\bf then }{\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\it{m\/}} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{test-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{then-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{else-instrs\/}})\index{length}\-)\index{lr-make-label})\- \\ 
{\bf else }{\rm{get}}\,(\=\+{\it{n\/}} $-$ (\=\+{\rm{length}}\,({\it{test-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{then-instrs\/}})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}})\-, \\ 
{\it{else-instrs\/}})\-\index{get}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{p-final-pc} \\  
\=\+{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\it{n\/}})\index{p-final-pc} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{flag\/}} $=$ {\tt{'}}{\tt{list}} \\ 
{\bf then }{\rm{add-addr}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, {\it{n\/}} $+$ {\rm{lr-p-c-size}}\,({\tt{'}}{\tt{list}}, {\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list})\index{lr-p-c-size})\index{add-addr} \\ 
{\bf else }{\rm{add-addr}}\,({\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, {\it{n\/}} $+$ {\rm{lr-p-c-size}}\,({\it{flag\/}}, {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\index{lr-p-c-size})\index{add-addr}$\;${\bf  endif}\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-final-pc.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-p-set-pc \\ \index{proper-p-statep-p-set-pc}
\=\+({\rm{proper-p-statep}}\,({\it{p\/}})\index{proper-p-statep} $\wedge$ ({\rm{area-name}}\,({\rm{p-pc}}\,({\it{p\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\it{pc\/}})\index{area-name})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{proper-p-statep}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc\/}})\index{p-set-pc})\index{proper-p-statep} $=$ {\rm{p-objectp-type}}\,({\tt{'}}{\tt{pc}}, {\it{pc\/}}, {\it{p\/}})\index{p-objectp-type})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-p-set-pc-equal-p-set-pc \\ \index{proper-p-statep-p-set-pc-equal-p!-set-pc}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
\=\+{\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\index{lr-p-c-size}\-)\-)\-\index{tag})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1})\index{p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-1 \\ \index{lr-eval-p-pc-equivalence-helper!-1}
\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l1\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\it{flag1\/}}, {\it{l2\/}}, {\it{c1\/}})\index{p-clock1} $+$ {\rm{p-clock1}}\,({\it{flag2\/}}, {\it{l3\/}}, {\it{c2\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l1\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\it{flag1\/}}, {\it{l2\/}}, {\it{c1\/}})\index{p-clock1})\index{p}, {\rm{p-clock1}}\,({\it{flag2\/}}, {\it{l3\/}}, {\it{c2\/}})\index{p-clock1})\index{p}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-1-5 \\ \index{lr-eval-p-pc-equivalence-helper!-1-5}
\=\+({\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) $\wedge$ {\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-final-pc}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-expr}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval}, {\it{l\/}}, {\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{nx})\index{lr-set-expr}, \\ 
{\tt{0}})\-\index{p-final-pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
\=\+{\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{nx}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{nx})\-\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size-list}}\,(\=\+{\rm{length}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list})\index{length} $-\;1$, \\ 
{\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list})\-\index{lr-p-c-size-list}\-)\-)\-\index{tag})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-2 \\ \index{lr-eval-p-pc-equivalence-helper!-2}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{listp}}\,({\rm{lr-expr-list}}\,({\it{l\/}})\index{lr-expr-list})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1})\-)\-\index{tag})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{0}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-3 \\ \index{lr-eval-p-pc-equivalence-helper!-3}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-tstk}}\,(\=\+{\it{l\/}}, \\ 
{\rm{cons}}\,(\=\+{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}, \\ 
{\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\-), \\ 
{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\-)\-\index{lr-set-tstk})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{1}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-$>$p-lr-set-pos-dv-1-car-lr-expr-if \\ \index{lr-$>$p-lr-set-pos-dv-1-car-lr-e!xpr-if}
\=\+(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-$>$p}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos})\index{lr-$>$p} $=$ {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-listp-p-temp-stk-type-car-addr \\ \index{lr-p-proper-statep-listp-p-temp!-stk-type-car-addr}
\=\+({\rm{lr-p-proper-statep}}\,({\it{temp-stk\/}}, {\it{ctrl-stk\/}}, {\it{data-seg\/}}, {\it{table\/}})\index{lr-p-proper-statep} $\wedge$ {\rm{listp}}\,({\it{temp-stk\/}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{type}}\,({\rm{car}}\,({\it{temp-stk\/}}))\index{type} $=$ {\tt{'}}{\tt{addr}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lessp-length-p-temp-stk-max-temp-stk-size \\ \index{proper-p-statep-lessp-length-p-te!mp-stk-max-temp-stk-size}
\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  length-p-temp-stk-lr-eval-lr-set-pos \\ \index{length-p-temp-stk-lr-eval-lr-set!-pos}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{length}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk})\index{length} \\ 
$=$$\;\;\;\;$({\tt{1}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  not-lessp-length-proper-p-statep-lr-eval-lr-set-pos \\ \index{not-lessp-length-proper-p-statep!-lr-eval-lr-set-pos}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $\not<$ ({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $-\;1$)) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-if-ok})\index{p-psw} $\not=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}
  
\begin{tabbing}{\sc Theorem}:  lr-pop-tstk-lr-if-ok \\ \index{lr-pop-tstk-lr-if-ok}
\=\+({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-pop-tstk}}\,({\rm{lr-if-ok}}\,({\it{l\/}})\index{lr-if-ok})\index{lr-pop-tstk} $=$ {\rm{lr-pop-tstk}}\,({\it{l\/}})\index{lr-pop-tstk})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  add-addr-p-final-pc \\ \index{add-addr-p-final-pc}
\=\+(\=\+{\rm{add-addr}}\,({\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\it{n\/}})\index{p-final-pc}, $1\;+$ {\it{m\/}})\index{add-addr} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, $1\;+$ {\it{n\/}})\index{p-final-pc}, {\it{m\/}})\index{add-addr})\- \\ 
$\wedge$$\;\;\;\;$({\rm{add-addr}}\,({\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\it{n\/}})\index{p-final-pc}, {\tt{0}})\index{add-addr} $=$ {\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\it{n\/}})\index{p-final-pc})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-3-lr-p-c-size-car-if \\ \index{lessp-3-lr-p-c-size-car-if}
({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}})) $\rightarrow$ ({\tt{3}} $<$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  comp-body-1-car-expr-if \\ \index{comp-body-1-car-expr-if}
\=\+(({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}}) $\wedge$ {\rm{listp}}\,({\it{expr\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1} \\ 
$=$$\;\;\;\;${\rm{comp-if}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\it{expr\/}}), \\ 
{\it{n\/}} $+$ {\tt{3}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size})\-\index{comp-body-1}, \\ 
{\rm{comp-body-1}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadddr}}\,({\it{expr\/}}), \\ 
\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size}\-)\-\index{comp-body-1}, \\ 
{\it{n\/}})\-\index{comp-if})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-lr-p-c-size-lessp-restn-lr-p-pc-1-comp-body-1 \\ \index{get-lr-p-c-size-lessp-restn-lr-p!-pc-1-comp-body-1}
\=\+(\=\+{\rm{good-posp1}}\,({\it{pos\/}}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{m\/}} $<$ {\tt{3}}) \\ 
$\wedge$$\;\;\;\;$({\it{name\/}} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{p-final-pc}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\it{pos\/}}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{m\/}})\index{p-final-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,({\it{name\/}}, {\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs}))\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\rm{get}}\,(\=\+{\it{m\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-f-addr}}\index{lr-f-addr}), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{test-bool-and-jump}}, \\ 
{\tt{'}}{\tt{t}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\it{pos\/}})\-\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\tt{4}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-p-c-size}\-)\index{lr-make-label})\-)\-)\-\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  area-name-p-final-pc \\ \index{area-name-p-final-pc}
{\rm{area-name}}\,({\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\it{n\/}})\index{p-final-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-4-helper-1 \\ \index{lr-eval-p-pc-equivalence-helper!-4-helper-1}
\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{test\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk}) $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv})\-\index{lr-set-expr}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{test\/}})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\tt{0}})\-\index{p-final-pc})\-\index{p-set-pc}, \\ 
{\tt{3}})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
\=\+{\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1}\-)\-)\-\index{tag})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-plus-lr-p-c-size-cadr-caddr-3-car-if \\ \index{lessp-plus-lr-p-c-size-cadr-cad!dr-3-car-if}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size}) \\ 
$<$$\;\;\;\;$((({\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size} $-\;1$) $-\;1$) $-\;1$))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-plus-lr-p-c-size-cadr-caddr-4-comp-body-cur-expr \\ \index{get-plus-lr-p-c-size-cadr-caddr!-4-comp-body-cur-expr}
\=\+(({\it{size1\/}} $=$ {\rm{length}}\,({\it{test\/}})\index{length}) $\wedge$ ({\it{size2\/}} $=$ {\rm{length}}\,({\it{then\/}})\index{length})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\tt{3}} $+$ {\it{size1\/}} $+$ {\it{size2\/}}, {\rm{comp-if}}\,({\it{test\/}}, {\it{then\/}}, {\it{else\/}}, {\it{n\/}})\index{comp-if})\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\tt{4}} \\ 
$+$$\;\;\;\;${\it{n\/}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{test\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{then\/}})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{else\/}})\index{length}\-)\index{lr-make-label})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  cur-expr-add1-opener \\ \index{cur-expr-add1-opener}
{\rm{cur-expr}}\,({\rm{cons}}\,($1\;+$ {\it{n\/}}, {\it{pos\/}}), {\it{body\/}})\index{cur-expr} $=$ {\rm{cur-expr}}\,({\it{pos\/}}, {\rm{get}}\,({\it{n\/}}, {\rm{cdr}}\,({\it{body\/}}))\index{get})\index{cur-expr}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-car-expr-if-2 \\ \index{lr-p-pc-1-car-expr-if-2}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\tt{'}}{\tt{if}})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\it{expr\/}}, {\tt{'}}{\tt{(}}{\tt{2}}{\tt{)}})\index{lr-p-pc-1} $=$ ({\tt{3}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-plus-lr-p-pc-1-lr-pc-size-cadr-assoc-comp-body-if-4 \\ \index{get-plus-lr-p-pc-1-lr-pc-size-c!adr-assoc-comp-body-if-4}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l1\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l1\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv}) \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l2\/}})\index{p-pc})\index{area-name} $=$ {\rm{area-name}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{area-name}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l2\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{offset}}\,({\rm{p-final-pc}}\,({\bf{t}}, {\rm{lr-set-expr}}\,({\it{l2\/}}, {\it{l1\/}}, {\it{pos\/}})\index{lr-set-expr}, {\tt{0}})\index{p-final-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l1\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\rm{lr-make-label}}\,({\rm{offset}}\,({\rm{p-final-pc}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-expr}}\,({\it{l2\/}}, {\it{l1\/}}, {\it{pos\/}})\index{lr-set-expr}, \\ 
{\tt{0}})\-\index{p-final-pc})\index{offset})\index{lr-make-label}, \\ 
{\bf{nil}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\tt{4}} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l1\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l1\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadddr}}\,({\rm{lr-expr}}\,({\it{l1\/}})\index{lr-expr}))\-\index{lr-p-c-size}\-)\index{lr-make-label})\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-lr-make-label-label-instrs \\ \index{find-label-lr-make-label-label-i!nstrs}
\=\+(({\it{m\/}} $\not<$ {\it{n\/}}) $\wedge$ ({\it{m\/}} $\in\;${\bf{N}}${}$) $\wedge$ ({\it{m\/}} $<$ ({\it{n\/}} $+$ {\rm{length}}\,({\it{instrs\/}})\index{length}))) \\ 
$\rightarrow$$\;\;\;\;$({\rm{find-label}}\,({\rm{lr-make-label}}\,({\it{m\/}})\index{lr-make-label}, {\rm{label-instrs}}\,({\it{instrs\/}}, {\it{n\/}})\index{label-instrs})\index{find-label} $=$ ({\it{m\/}} $-$ {\it{n\/}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-past-else-lr-expr-car-if \\ \index{find-label-past-else-lr-expr-ca!r-if}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{expr\/}} $=$ {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,(\=\+{\rm{lr-make-label}}\,($1\;+$ ($1\;+$ ($1\;+$ ($1\;+$ (\=\+{\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\it{expr\/}}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\it{expr\/}}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadddr}}\,({\it{expr\/}}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\it{body\/}}, \\ 
{\it{pos\/}})\-\index{lr-p-pc-1})\-))))\index{lr-make-label}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\-\index{find-label} \\ 
$=$$\;\;\;\;$($1\;+$ ($1\;+$ ($1\;+$ ($1\;+$ (\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1})\-)))))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-4-helper-2 \\ \index{lr-eval-p-pc-equivalence-helper!-4-helper-2}
\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{then\/}}{\bf $\;$ be$\;\;$}{\rm{lr-set-expr}}\,({\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, {\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv})\index{lr-set-expr}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{test\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk}) $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\it{then\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc}, \\ 
{\tt{1}})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-4 \\ \index{lr-eval-p-pc-equivalence-helper!-4}
\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{cadr-size\/}}{\bf $\;$ be$\;\;$}{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size}, \\ 
{\it{lr-p-pc-1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1}, \\ 
{\it{then\/}}{\bf $\;$ be$\;\;$}{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{2}})\index{dv})\-\index{lr-set-expr}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{test\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk}) $\not=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\tt{3}} $+$ {\it{cadr-size\/}} $+$ {\it{lr-p-pc-1\/}})\-)\-\index{tag})\-\index{p-set-pc}, \\ 
{\rm{p-clock1}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{p-clock1})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\it{then\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
\=\+{\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{1}}\-)\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{then\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lessp-plus-lr-p-pc-1-lr-p-c-size-3-1-lr-expr-car-if \\ \index{lessp-plus-lr-p-pc-1-lr-p-c-size!-3-1-lr-expr-car-if}
\=\+(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1})\- \\ 
$<$$\;\;\;\;${\rm{length}}\,({\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\index{length})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-else-start-lr-expr-car-if \\ \index{find-label-else-start-lr-expr-c!ar-if}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\it{expr\/}} $=$ {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,(\=\+{\rm{lr-make-label}}\,($1\;+$ ($1\;+$ ($1\;+$ ($1\;+$ (\=\+{\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\it{expr\/}}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\it{expr\/}}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\it{body\/}}, \\ 
{\it{pos\/}})\-\index{lr-p-pc-1})\-))))\index{lr-make-label}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\-\index{find-label} \\ 
$=$$\;\;\;\;$($1\;+$ ($1\;+$ ($1\;+$ ($1\;+$ (\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\it{expr\/}}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1})\-)))))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-5-helper-1 \\ \index{lr-eval-p-pc-equivalence-helper!-5-helper-1}
\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{test\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk}) $=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{test\/}})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\tt{0}})\-\index{p-final-pc})\-\index{p-set-pc}, \\ 
{\tt{3}})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
\=\+{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-p-c-size} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1}\-)\-)\-\index{tag})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-5-helper-2 \\ \index{lr-eval-p-pc-equivalence-helper!-5-helper-2}
\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+{\bf let }\=\+{\it{else\/}}{\bf $\;$ be$\;\;$}{\rm{lr-set-expr}}\,({\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk}, {\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{3}})\index{dv})\index{lr-set-expr}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,(\=\+{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc} $=$ {\rm{p-final-pc}}\,({\bf{t}}, {\it{else\/}}, {\tt{0}})\index{p-final-pc})\-$\;${\bf  endlet}\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-5 \\ \index{lr-eval-p-pc-equivalence-helper!-5}
\=\+{\bf let }\=\+{\it{test\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}, \\ 
{\it{cadr-size\/}}{\bf $\;$ be$\;\;$}{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size}, \\ 
{\it{caddr-size\/}}{\bf $\;$ be$\;\;$}{\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size}, \\ 
{\it{lr-p-pc-1\/}}{\bf $\;$ be$\;\;$}{\rm{lr-p-pc-1}}\,(\=\+{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, \\ 
{\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\-\index{lr-p-pc-1}, \\ 
{\it{else\/}}{\bf $\;$ be$\;\;$}{\rm{lr-set-expr}}\,(\=\+{\rm{lr-pop-tstk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-pop-tstk}, \\ 
{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{3}})\index{dv})\-\index{lr-set-expr}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-if-ok}}\,({\it{test\/}})\index{lr-if-ok})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{p-temp-stk}}\,({\it{test\/}})\index{p-temp-stk}) $=$ {\sc{lr-f-addr}}\index{lr-f-addr}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-pop-tstk}}\,({\it{test\/}})\index{lr-pop-tstk})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
\=\+{\it{cadr-size\/}} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\it{caddr-size\/}} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\it{lr-p-pc-1\/}}\-)\-)\-\index{tag})\-\index{p-set-pc}, \\ 
{\rm{p-clock1}}\,({\bf{t}}, {\it{else\/}}, {\it{c\/}})\index{p-clock1})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{else\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\it{else\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{test\/}})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{else\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
\=\+{\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{3}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,({\bf{t}}, {\it{else\/}}, {\it{c\/}})\index{p-clock1}\-)\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{else\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-1-dv-1-car-lr-expr-temp-eval \\ \index{lr-p-pc-1-dv-1-car-lr-expr-temp!-eval}
\=\+(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;${\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  comp-body-1-car-expr-temp-eval \\ \index{comp-body-1-car-expr-temp-eval}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}})\index{comp-body-1}, \\ 
{\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\it{expr\/}}))))\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-5-get-lr-p-c-size \\ \index{lr-eval-p-pc-equivalence-helper!-5-get-lr-p-c-size}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}) \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size}\-, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-$>$p-lr-set-pos-dv-1-car-lr-expr-temp-eval \\ \index{lr-$>$p-lr-set-pos-dv-1-car-lr-e!xpr-temp-eval}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-$>$p}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos})\index{lr-$>$p} $=$ {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-6-helper \\ \index{lr-eval-p-pc-equivalence-helper!-6-helper}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{lr-eval\/}})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, \\ 
{\tt{0}})\-\index{p-final-pc})\-\index{p-set-pc}, \\ 
{\tt{1}})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-temp}}\,(\=\+{\it{lr-eval\/}}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}), \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-set-temp})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-6 \\ \index{lr-eval-p-pc-equivalence-helper!-6}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-temp}}\,(\=\+{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk}), \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-set-temp})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} $+$ {\tt{1}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-comp-temp-test \\ \index{get-comp-temp-test}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,({\it{m\/}}, {\rm{comp-body-1}}\,({\bf{t}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1})\index{get} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{m\/}} $<$ {\tt{4}} \\ 
{\bf then }{\rm{get}}\,(\=\+{\it{m\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}})), \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{push-constant}}, \\ 
{\rm{identity}}\,({\sc{lr-undef-addr}}\index{lr-undef-addr}))\-, \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{test-bool-and-jump}}, \\ 
{\tt{'}}{\tt{f}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\tt{6}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\it{expr\/}}))\-\index{lr-p-c-size}\-)\index{lr-make-label})\-)\-)\-\index{get} \\ 
{\bf elseif }{\it{m\/}} $<$ ({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\tt{4}}) \\ 
{\bf then }{\rm{get}}\,({\it{m\/}} $-$ {\tt{4}}, {\rm{comp-body-1}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}), {\it{n\/}} $+$ {\tt{4}})\index{comp-body-1})\index{get} \\ 
{\bf else }{\rm{get}}\,(\=\+{\it{m\/}} $-$ ({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\tt{4}}), \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\it{expr\/}})), \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\it{n\/}} \\ 
$+$$\;\;\;\;${\tt{7}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\it{expr\/}}))\-\index{lr-p-c-size}\-)\index{lr-make-label})\-, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}})))\-)\-\index{get}$\;${\bf  endif}\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-c-size-temp-test-opener \\ \index{lr-p-c-size-temp-test-opener}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size} $=$ ({\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size} $+$ {\tt{7}}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-+-lr-p-pc-1-lessp-3-temp-test-assoc-comp-programs \\ \index{get-+-lr-p-pc-1-lessp-3-temp-te!st-assoc-comp-programs}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} $+$ {\it{n\/}}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\rm{get}}\,(\=\+{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})), \\ 
{\rm{identity}}\,({\rm{list}}\,({\tt{'}}{\tt{push-constant}}, {\sc{lr-undef-addr}}\index{lr-undef-addr})), \\ 
{\tt{'}}{\tt{(}}{\tt{eq}}{\tt{)}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{test-bool-and-jump}}, \\ 
{\tt{'}}{\tt{f}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\tt{6}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-p-c-size}\-)\index{lr-make-label})\-)\-)\-\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  car-comp-body-lr-expr-3-temp-test \\ \index{car-comp-body-lr-expr-3-temp-te!st}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-test}}\index{s-temp-test})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{car}}\,({\rm{comp-body-1}}\,({\bf{t}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1}) $=$ {\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}})))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-+-lr-p-pc-1-n-2-size-temp-test-assoc-comp-programs \\ \index{get-+-lr-p-pc-1-n-2-size-temp-te!st-assoc-comp-programs}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $\not<$ {\tt{4}}) \\ 
$\wedge$$\;\;\;\;$({\tt{6}} $\not<$ {\it{n\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{progs\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}) \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\it{n\/}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{lr-p-c-size}\-, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\it{progs\/}})\index{comp-programs})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\rm{get}}\,(\=\+{\it{n\/}} $-$ {\tt{4}}, \\ 
{\rm{list}}\,(\=\+{\rm{list}}\,({\tt{'}}{\tt{set-local}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})), \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{jump}}, \\ 
{\rm{lr-make-label}}\,(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\tt{7}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-p-c-size}\-)\index{lr-make-label})\-, \\ 
{\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})))\-)\-\index{get})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable get-comp-temp-test.

\addvspace{18pt}

\noindent{\sc Event}:   Disable lr-p-c-size-temp-test-opener.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  definedp-caddr-lr-expr-bindings-ctrl-stk-rewrite \\ \index{definedp-caddr-lr-expr-bindings!-ctrl-stk-rewrite}
\=\+(\=\+{\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\vee$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}))\- \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{definedp}}\,({\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), {\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\index{definedp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  member-lr-good-pointerps-type-addr-untag-whole \\ \index{member-lr-good-pointerps-type-a!ddr-untag-whole}
\=\+(\=\+({\it{addr\/}} $\in$ {\it{list\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{type}}\,({\it{addr\/}})\index{type} $=$ {\tt{'}}{\tt{addr}}) \\ 
$\wedge$$\;\;\;\;$({\rm{untag}}\,({\it{addr\/}})\index{untag} $=$ {\it{rest\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{addr\/}} $\not=$ {\rm{list}}\,({\tt{'}}{\tt{addr}}, {\it{rest\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{lr-good-pointerps}}\,({\it{list\/}}, {\it{data-seg\/}})\index{lr-good-pointerps})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-label-temp-test-end-lr-expr-car-temp-test \\ \index{find-label-temp-test-end-lr-exp!r-car-temp-test}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\it{body\/}} $=$ {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}) \\ 
$\wedge$$\;\;\;\;$({\it{expr\/}} $=$ {\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\it{pos\/}}, {\it{body\/}})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;$({\tt{7}} $\not<$ {\it{n\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,(\=\+{\rm{lr-make-label}}\,(\=\+{\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\it{n\/}} \\ 
$+$$\;\;\;\;${\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size}\-)\index{lr-make-label}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, \\ 
{\rm{comp-programs}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\index{comp-programs})\-)\index{program-body})\-\index{find-label} \\ 
$=$$\;\;\;\;$({\rm{lr-p-pc-1}}\,({\it{body\/}}, {\it{pos\/}})\index{lr-p-pc-1} $+$ {\it{n\/}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\rm{cadr}}\,({\it{expr\/}}))\index{lr-p-c-size}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-lr-good-pointerps-strip-cdrs-binding \\ \index{lr-p-proper-statep-lr-good-pointe!rps-strip-cdrs-binding}
\=\+(\=\+{\rm{lr-p-proper-statep}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, {\it{table\/}})\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,(\=\+{\rm{strip-cdrs}}\,({\rm{bindings}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{bindings})\index{strip-cdrs}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\-\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-7 \\ \index{lr-eval-p-pc-equivalence-helper!-7}
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{lr-$>$p}, {\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{5}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-dv-1-s-temp-test \\ \index{lr-p-pc-dv-1-s-temp-test}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-p-pc-1} \\ 
$=$$\;\;\;\;$(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1} \\ 
$+$$\;\;\;\;${\tt{4}})\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-8-helper-1 \\ \index{lr-eval-p-pc-equivalence-helper!-8-helper-1}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})) \\ 
$\wedge$$\;\;\;\;$({\rm{local-var-value}}\,({\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), {\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk})\index{local-var-value} $=$ {\sc{lr-undef-addr}}\index{lr-undef-addr}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-$>$p}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos})\index{lr-$>$p} $=$ {\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{4}})\index{p})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-8-helper-2-helper \\ \index{lr-eval-p-pc-equivalence-helper!-8-helper-2-helper}
({\tt{4}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size} $+$ {\tt{1}}) $=$ ({\tt{5}} $+$ {\rm{lr-p-c-size}}\,({\bf{t}}, {\it{expr\/}})\index{lr-p-c-size})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-8-helper-2 \\ \index{lr-eval-p-pc-equivalence-helper!-8-helper-2}
\=\+{\bf let }\=\+{\it{lr-eval\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not=$ {\tt{1}}) \\ 
$\wedge$$\;\;\;\;$((({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $-\;1$) $-\;1$) $\not<$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{lr-eval\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-temp}}\,(\=\+{\it{lr-eval\/}}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\it{lr-eval\/}})\index{p-temp-stk}), \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-set-temp})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{lr-eval\/}})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,(\=\+{\it{l\/}}, \\ 
{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\-\index{lr-set-pos}, \\ 
{\tt{0}})\-\index{p-final-pc})\-\index{p-set-pc}, \\ 
{\tt{2}})\-\index{p})\-\-$\;${\bf  endlet}\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-eval-p-pc-equivalence-helper-8-helper-2-helper.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-8 \\ \index{lr-eval-p-pc-equivalence-helper!-8}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size} $\not<$ ({\tt{2}} $+$ {\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{lr-eval-temp-setp}}\,({\it{l\/}})\index{lr-eval-temp-setp}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-temp}}\,(\=\+{\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{p-temp-stk}), \\ 
{\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\-\index{lr-set-temp})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{4}} $+$ {\rm{p-clock1}}\,({\bf{t}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} $+$ {\tt{2}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  comp-body-1-car-expr-temp-fetch \\ \index{comp-body-1-car-expr-temp-fetch}
\=\+({\rm{listp}}\,({\it{expr\/}}) $\wedge$ ({\rm{car}}\,({\it{expr\/}}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch})) \\ 
$\rightarrow$$\;\;\;\;$({\rm{comp-body-1}}\,({\bf{t}}, {\it{expr\/}}, {\it{n\/}})\index{comp-body-1} $=$ {\rm{list}}\,({\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\it{expr\/}}))))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-lr-p-pc-1-comp-body-1-temp-fetch \\ \index{get-lr-p-pc-1-comp-body-1-temp-!fetch}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{prog\/}} $=$ {\rm{assoc}}\,({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name}, {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+{\rm{lr-p-pc-1}}\,({\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{lr-p-pc-1}, \\ 
{\rm{comp-body-1}}\,({\bf{t}}, {\rm{program-body}}\,({\it{prog\/}})\index{program-body}, {\tt{0}})\index{comp-body-1})\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{push-local}}, {\rm{caddr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-9 \\ \index{lr-eval-p-pc-equivalence-helper!-9}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\rm{lr-do-temp-fetch}}\,({\it{l\/}})\index{lr-do-temp-fetch})\index{lr-$>$p}, {\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{1}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-10 \\ \index{lr-eval-p-pc-equivalence-helper!-10}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk})\index{length} $<$ {\rm{p-max-temp-stk-size}}\,({\it{l\/}})\index{p-max-temp-stk-size}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-set-tstk}}\,({\it{l\/}}, {\rm{cons}}\,({\rm{cadr}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), {\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}))\index{lr-set-tstk})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\tt{1}})\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-cur-expr-if-same \\ \index{lr-expr-cur-expr-if-same}
\=\+({\rm{car}}\,({\rm{cur-expr}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{cur-expr}) $=$ {\tt{'}}{\tt{if}}) \\ 
$=$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $=$ {\tt{'}}{\tt{if}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-pc-lr-set-pos-dv-1-car-lr-expr-funcall \\ \index{lr-p-pc-lr-set-pos-dv-1-car-lr-e!xpr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-p-pc}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos})\index{lr-p-pc} $=$ {\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-$>$p-lr-set-pos-dv-1-car-lr-expr-funcall \\ \index{lr-$>$p-lr-set-pos-dv-1-car-lr-e!xpr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{lr-$>$p}}\,({\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos})\index{lr-$>$p} $=$ {\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-set-pc-lr-$>$p-equal-p-fact \\ \index{p-set-pc-lr-$>$p-equal-p-fact}
\=\+(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{p-state}}\,(\=\+{\it{pc1\/}}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{prog-seg\/}}, \\ 
{\it{data-seg\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}}, \\ 
{\it{psw\/}})\-\index{p-state})\index{lr-$>$p}, \\ 
{\it{pc2\/}})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\it{p\/}})\- \\ 
$=$$\;\;\;\;$(\=\+({\rm{p-pc}}\,({\it{p\/}})\index{p-pc} $=$ {\it{pc2\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-ctrl-stk}}\,({\it{p\/}})\index{p-ctrl-stk} $=$ {\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-temp-stk}}\,({\it{p\/}})\index{p-temp-stk} $=$ {\it{temp-stk\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-data-segment}}\,({\it{p\/}})\index{p-data-segment} $=$ {\it{data-seg\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{p\/}})\index{p-prog-segment} $=$ {\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-ctrl-stk-size}}\,({\it{p\/}})\index{p-max-ctrl-stk-size} $=$ {\it{max-ctrl\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-max-temp-stk-size}}\,({\it{p\/}})\index{p-max-temp-stk-size} $=$ {\it{max-temp\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-word-size}}\,({\it{p\/}})\index{p-word-size} $=$ {\it{word-size\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{p\/}})\index{p-psw} $=$ {\it{psw\/}}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable p-set-pc-lr-$>$p-equal-p-fact.

\addvspace{18pt}
		     
\begin{tabbing}{\sc Theorem}:  lr-$>$p-p-run-subr-p-run-subr-clock \\ \index{lr-$>$p-p-run-subr-p-run-subr-c!lock}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, \\ 
{\rm{lr-p-c-size-list}}\,(\=\+{\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}, \\ 
{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\-\index{lr-p-c-size-list})\-\index{add-addr})\-\index{p-set-pc})\-\index{p-run-subr} \\ 
$=$$\;\;\;\;${\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, \\ 
{\rm{lr-p-c-size-list}}\,(\=\+{\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}, \\ 
{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\-\index{lr-p-c-size-list})\-\index{add-addr})\-\index{p-set-pc}, \\ 
{\rm{p-run-subr-clock}}\,({\it{l\/}}, {\it{new-l\/}})\index{p-run-subr-clock})\-\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-car \\ \index{p-pc-run-car}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{car}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-car-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-car-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-cdr \\ \index{p-pc-run-cdr}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cdr}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-cdr-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cdr-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-cons \\ \index{p-pc-run-cons}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{cons}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-cons-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-cons-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-false \\ \index{p-pc-run-false}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{false}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-false-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-false-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-falsep \\ \index{p-pc-run-falsep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{falsep}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-falsep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-falsep-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-listp \\ \index{p-pc-run-listp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{listp}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-listp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-listp-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-nlistp \\ \index{p-pc-run-nlistp}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{nlistp}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-nlistp-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-nlistp-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-true \\ \index{p-pc-run-true}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{true}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-true-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-true-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-run-truep \\ \index{p-pc-run-truep}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\index{p})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{offset}}\,({\it{pc\/}})\index{offset}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{area-name}}\,({\it{pc\/}})\index{area-name}, \\ 
{\rm{p-prog-segment}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{p-prog-segment})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{call}}{\tt{ }}{\tt{truep}}{\tt{)}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc}, {\rm{p-truep-clock}}\,({\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\it{pc\/}})\index{p-set-pc})\index{p-truep-clock})\index{p})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\it{pc\/}}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-run-subr-p-pc-add-addr-lr-p-pc-lr-p-c-size \\ \index{p-run-subr-p-pc-add-addr-lr-p-p!c-lr-p-c-size}
\=\+{\bf let }\=\+{\it{pos\/}}{\bf $\;$ be$\;\;$}{\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-pc}}\,({\rm{p-run-subr}}\,(\=\+{\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}), \\ 
{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,(\=\+{\tt{'}}{\tt{list}}, \\ 
{\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, \\ 
{\it{c\/}})\-\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc})\-\index{p-set-pc})\-\index{p-run-subr})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc}, {\tt{1}})\index{add-addr})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-11 \\ \index{lr-eval-p-pc-equivalence-helper!-11}
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p-psw}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-apply-subr})\index{p-psw} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{run}})\- \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-apply-subr}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-apply-subr})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
\=\+{\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\rm{p-run-subr-clock}}\,(\=\+{\it{l\/}}, \\ 
{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\-\index{p-run-subr-clock}\-)\-\index{p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-set-pc-twice \\ \index{p-set-pc-twice}
{\rm{p-set-pc}}\,({\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc1\/}})\index{p-set-pc}, {\it{pc2\/}})\index{p-set-pc} $=$ {\rm{p-set-pc}}\,({\it{p\/}}, {\it{pc2\/}})\index{p-set-pc}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-12-helper-1 \\ \index{lr-eval-p-pc-equivalence-helper!-12-helper-1}
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{new-l\/}})\index{lr-$>$p}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, \\ 
{\rm{lr-p-c-size-list}}\,(\=\+{\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}, \\ 
{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\-\index{lr-p-c-size-list})\-\index{add-addr})\-\index{p-set-pc}, \\ 
{\tt{1}})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{lr-$>$p}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-$>$p})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-expr-funcall \\ \index{lr-expr-funcall}
\=\+(\=\+({\rm{p-psw}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment} $=$ {\rm{p-prog-segment}}\,({\it{new-l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{lr-expr}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-expr} \\ 
$=$$\;\;\;\;${\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment})\-)\index{program-body})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlabel-car-last-comp-body \\ \index{unlabel-car-last-comp-body}
{\rm{unlabel}}\,({\rm{car}}\,({\rm{last}}\,({\rm{comp-body}}\,({\it{body\/}})\index{comp-body})\index{last}))\index{unlabel} $=$ {\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  unlabel-get-last-funcall-body-assoc-comp-programs \\ \index{unlabel-get-last-funcall-body-a!ssoc-comp-programs}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\it{prog-seg\/}} $=$ {\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{unlabel}}\,({\rm{get}}\,(\=\+{\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\it{prog-seg\/}})\-)\index{program-body})\-\index{lr-p-c-size}, \\ 
{\rm{program-body}}\,({\rm{assoc}}\,(\=\+{\rm{user-fname}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{user-fname}, \\ 
{\rm{comp-programs}}\,({\it{prog-seg\/}})\index{comp-programs})\-)\index{program-body})\-\index{get})\index{unlabel} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{ret}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-cdr-p-ctrl-stk-lr-funcall \\ \index{lr-eval-preserves-cdr-p-ctrl-st!k-lr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{new-l\/}} $=$ {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cdr}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-ctrl-stk}) \\ 
$=$$\;\;\;\;${\rm{p-ctrl-stk}}\,({\it{new-l\/}})\index{p-ctrl-stk})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-ret-pc-car-p-ctrl-stk \\ \index{lr-eval-preserves-ret-pc-car-p-!ctrl-stk}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-ctrl-stk}))\index{ret-pc} \\ 
$=$$\;\;\;\;${\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}))\index{ret-pc})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-preserves-ret-pc-car-p-ctrl-stk-lr-funcall \\ \index{lr-eval-preserves-ret-pc-car-p-!ctrl-stk-lr-funcall}
\=\+(\=\+{\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{new-l\/}} $=$ {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{ret-pc}}\,({\rm{car}}\,({\rm{p-ctrl-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-ctrl-stk}))\index{ret-pc} \\ 
$=$$\;\;\;\;${\rm{add-addr}}\,({\rm{lr-return-pc}}\,({\it{l\/}})\index{lr-return-pc}, {\tt{1}})\index{add-addr})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-12-helper-2 \\ \index{lr-eval-p-pc-equivalence-helper!-12-helper-2}
\=\+{\bf let }\=\+{\it{new-l\/}}{\bf $\;$ be$\;\;$}{\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval}\- \\ 
{\bf in} \\ 
\=\+(\=\+{\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{new-l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{lr-p-pc}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-p-pc}, \\ 
{\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-expr}}\,({\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall})\index{lr-expr})\-\index{lr-p-c-size})\-\index{add-addr})\-\index{p-set-pc}, \\ 
{\tt{1}})\-\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,(\=\+{\bf{t}}, \\ 
{\rm{lr-funcall}}\,({\it{l\/}}, {\it{new-l\/}})\index{lr-funcall}, \\ 
{\it{c\/}} $-\;1$)\-\index{lr-eval})\index{lr-pop-cstk})\index{lr-$>$p}, \\ 
{\rm{add-addr}}\,(\=\+{\rm{lr-p-pc}}\,({\it{l\/}})\index{lr-p-pc}, \\ 
\=\+{\rm{lr-p-c-size-list}}\,(\=\+{\rm{arity}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))\index{arity}, \\ 
{\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})\-\index{lr-p-c-size-list} \\ 
$+$$\;\;\;\;${\tt{1}}\-)\-\index{add-addr})\-\index{p-set-pc})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence-helper-12 \\ \index{lr-eval-p-pc-equivalence-helper!-12}
\=\+{\bf let }\=\+{\it{fs\/}}{\bf $\;$ be$\;\;$}{\rm{lr-funcall}}\,({\it{l\/}}, {\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-funcall}\- \\ 
{\bf in} \\ 
\=\+(\=\+({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\not=$ {\tt{0}}) \\ 
$\wedge$$\;\;\;\;$({\it{c\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{if}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-eval}}\index{s-temp-eval}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-test}}\index{s-temp-test}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\sc{s-temp-fetch}}\index{s-temp-fetch}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}) $\not=$ {\tt{'}}{\tt{quote}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{subrp}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr}))) \\ 
$\wedge$$\;\;\;\;${\rm{litatom}}\,({\rm{car}}\,({\rm{lr-expr}}\,({\it{l\/}})\index{lr-expr})) \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{fs\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\bf{t}}, {\it{fs\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc})\- \\ 
$\wedge$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;$({\it{pos\/}} $=$ {\rm{dv}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\tt{1}})\index{dv}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\rm{lr-pop-cstk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{lr-eval})\index{lr-pop-cstk})\index{lr-$>$p}, \\ 
{\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\-\index{p-set-pc} \\ 
$=$$\;\;\;\;${\rm{p}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
\=\+{\rm{p-clock1}}\,({\tt{'}}{\tt{list}}, {\rm{lr-set-pos}}\,({\it{l\/}}, {\it{pos\/}})\index{lr-set-pos}, {\it{c\/}})\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\rm{p-clock1}}\,({\bf{t}}, {\it{fs\/}}, {\it{c\/}} $-\;1$)\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{1}}\-)\-\index{p})\-\-$\;${\bf  endlet}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-eval-p-pc-equivalence \\ \index{lr-eval-p-pc-equivalence}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp}}\,({\it{flag\/}}, {\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp} \\ 
$\wedge$$\;\;\;\;$(\=\+({\it{flag\/}} $\not=$ {\tt{'}}{\tt{list}}) \\ 
$\vee$$\;\;\;\;$(\=\+{\rm{car}}\,({\rm{cur-expr}}\,(\=\+{\rm{butlast}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset})\index{butlast}, \\ 
{\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\-\index{cur-expr}) \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{if}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1})\index{p} \\ 
$=$$\;\;\;\;${\rm{p-set-pc}}\,({\rm{lr-$>$p}}\,({\rm{lr-eval}}\,({\it{flag\/}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{lr-$>$p}, {\rm{p-final-pc}}\,({\it{flag\/}}, {\it{l\/}}, {\tt{0}})\index{p-final-pc})\index{p-set-pc})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable lr-expr-cur-expr-if-same.

\addvspace{18pt}

\begin{tabbing}{\sc Definition}:\index{logic-$>$p-clock} \\  
\=\+{\rm{logic-$>$p-clock}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{program-names\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{word-size\/}})\-\index{logic-$>$p-clock} \\ 
$=$$\;\;\;\;$(\=\+{\rm{p-clock1}}\,(\=\+{\bf{t}}, \\ 
{\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-temp-stk-size\/}}, \\ 
{\it{max-ctrl-stk-size\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr}, \\ 
{\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $+$ {\tt{1}})\-\index{p-clock1} \\ 
$+$$\;\;\;\;${\tt{2}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{total-heap-reqs} \\  
\=\+{\rm{total-heap-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}}, {\it{heap-size\/}})\index{total-heap-reqs} \\ 
$=$$\;\;\;\;${\rm{lr-total-heap-reqs}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{program-names\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $+$ {\tt{1}})\-\index{lr-total-heap-reqs}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{max-ctrl-reqs} \\  
\=\+{\rm{max-ctrl-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{max-ctrl-reqs} \\ 
$=$$\;\;\;\;${\rm{lr-max-ctrl-reqs}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{program-names\/}}, \\ 
{\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $+$ {\tt{1}})\-\index{lr-max-ctrl-reqs}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{max-temp-reqs} \\  
\=\+{\rm{max-temp-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}})\index{max-temp-reqs} \\ 
$=$$\;\;\;\;${\rm{lr-max-temp-reqs}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{program-names\/}}, \\ 
{\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $+$ {\tt{1}})\-\index{lr-max-temp-reqs}\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{max-word-size-reqs} \\  
\=\+{\rm{max-word-size-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{program-names\/}}, {\it{heap-size\/}})\index{max-word-size-reqs} \\ 
$=$$\;\;\;\;${\rm{lr-max-word-size-reqs}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{program-names\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $+$ {\tt{1}})\-\index{lr-max-word-size-reqs}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-formals-s-prog-logic-$>$s \\ \index{s-formals-s-prog-logic-$>$s}
{\rm{s-formals}}\,({\rm{s-prog}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-prog})\index{s-formals} $=$ {\rm{strip-cars}}\,({\it{alist\/}})
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-answer-addr-preserves-lr-valp \\ \index{deposit-answer-addr-preserves-l!r-valp}
\=\+({\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}, {\it{data-seg\/}})\index{adpp} $\wedge$ {\rm{lr-valp}}\,({\it{value\/}}, {\it{addr\/}}, {\it{data-seg\/}})\index{lr-valp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\it{addr\/}}, \\ 
{\rm{deposit}}\,({\it{anything\/}}, {\rm{identity}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr}), {\it{data-seg\/}})\index{deposit})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-last-2-instrs-main-program \\ \index{p-last-2-instrs-main-program}
\=\+(\=\+{\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\it{l\/}})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,({\it{value\/}}, {\rm{car}}\,({\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}), {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\rm{fetch}}\,(\=\+{\rm{identity}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr}), \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{name}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{name}, \\ 
{\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body})\-\index{lr-p-c-size})\-)\-\index{tag})\-\index{p-set-pc}, \\ 
{\tt{2}})\-\index{p})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{p-set-pc}}\,(\=\+{\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, \\ 
{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\rm{name}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{name}, \\ 
{\rm{lr-p-c-size}}\,(\=\+{\bf{t}}, \\ 
{\rm{program-body}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{program-body})\-\index{lr-p-c-size})\-)\-\index{tag})\-\index{p-set-pc}, \\ 
{\tt{2}})\-\index{p})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-programs-properp-s-$>$lr-logic-$>$s \\ \index{lr-programs-properp-s-$>$lr-logi!c-$>$s}
\=\+(\=\+{\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\bf{t}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrictedp}}\,({\it{pnames\/}}, {\it{alist\/}})\index{l-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}, \\ 
{\it{alist\/}}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-programs-properp}}\,(\=\+{\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}})\-\index{logic-$>$s})\index{s-progs}, \\ 
{\it{alist\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-programs-properp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  logic-$>$p-ok-really-helper-1 \\ \index{logic-$>$p-ok-really-helper-1}
\=\+(\=\+{\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p})\index{proper-p-statep} \\ 
$\wedge$$\;\;\;\;${\rm{good-posp1}}\,({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset}, {\rm{program-body}}\,({\rm{p-current-program}}\,({\it{l\/}})\index{p-current-program})\index{program-body})\index{good-posp1} \\ 
$\wedge$$\;\;\;\;${\rm{lr-programs-properp}}\,({\it{l\/}}, {\it{table\/}})\index{lr-programs-properp} \\ 
$\wedge$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\it{l\/}})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\it{l\/}})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment}, \\ 
{\it{table\/}})\-\index{lr-p-proper-statep} \\ 
$\wedge$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{lr-proper-formalsp} \\ 
$\wedge$$\;\;\;\;$({\rm{p-psw}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-psw} $=$ {\tt{'}}{\tt{run}}) \\ 
$\wedge$$\;\;\;\;${\rm{adpp}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}, {\rm{p-data-segment}}\,({\it{l\/}})\index{p-data-segment})\index{adpp} \\ 
$\wedge$$\;\;\;\;$({\rm{area-name}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{area-name} $=$ {\rm{name}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\it{l\/}})\index{p-prog-segment}))\index{name}) \\ 
$\wedge$$\;\;\;\;$({\rm{offset}}\,({\rm{p-pc}}\,({\it{l\/}})\index{p-pc})\index{offset} $=$ {\bf{nil}}) \\ 
$\wedge$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\rm{car}}\,({\rm{p-temp-stk}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-temp-stk}), \\ 
{\rm{p-data-segment}}\,({\rm{lr-eval}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{lr-eval})\index{p-data-segment})\-\index{lr-valp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\it{value\/}}, \\ 
{\rm{fetch}}\,(\=\+{\sc{lr-answer-addr}}\index{lr-answer-addr}, \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,({\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1})\index{p}, {\tt{2}})\index{p})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,({\rm{p}}\,({\rm{lr-$>$p}}\,({\it{l\/}})\index{lr-$>$p}, {\rm{p-clock1}}\,({\bf{t}}, {\it{l\/}}, {\it{c\/}})\index{p-clock1})\index{p}, {\tt{2}})\index{p})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  name-car-p-prog-segment-s-$>$lr \\ \index{name-car-p-prog-segment-s-$>$lr}
\=\+{\rm{name}}\,({\rm{car}}\,({\rm{p-prog-segment}}\,({\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr})\index{p-prog-segment}))\index{name} \\ 
$=$$\;\;\;\;${\rm{name}}\,({\rm{car}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}))\index{name}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  p-pc-s-$>$lr \\ \index{p-pc-s-$>$lr}
\=\+{\rm{p-pc}}\,({\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-temp\/}}, {\it{max-ctrl\/}}, {\it{word-size\/}})\index{s-$>$lr})\index{p-pc} \\ 
$=$$\;\;\;\;${\rm{tag}}\,({\tt{'}}{\tt{pc}}, {\rm{cons}}\,({\rm{s-pname}}\,({\it{s\/}})\index{s-pname}, {\rm{s-pos}}\,({\it{s\/}})\index{s-pos}))\index{tag}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  adpp-untag-lr-answer-addr-s-$>$lr \\ \index{adpp-untag-lr-answer-addr-s-$>$!lr}
{\rm{adpp}}\,(\=\+{\rm{identity}}\,({\rm{untag}}\,({\sc{lr-answer-addr}}\index{lr-answer-addr})\index{untag}), \\ 
{\rm{p-data-segment}}\,({\rm{s-$>$lr}}\,({\it{s\/}}, {\it{heap-size\/}}, {\it{max-ctrl\/}}, {\it{max-temp\/}}, {\it{word-size\/}})\index{s-$>$lr})\index{p-data-segment})\-\index{adpp}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-statesp-s-$>$lr-logic-$>$s-lr-data-seg-table \\ \index{lr-s-similar-statesp-s-$>$lr-lo!gic-$>$s-lr-data-seg-table}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}, \\ 
{\it{alist\/}}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{l-restrictedp}}\,({\it{pnames\/}}, {\it{alist\/}})\index{l-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-s-similar-statesp}}\,(\=\+{\it{alist\/}}, \\ 
{\bf{nil}}, \\ 
{\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}})\-\index{logic-$>$s})\index{s-progs}, \\ 
{\it{alist\/}}, \\ 
{\it{heap-size\/}})\-\index{lr-data-seg-table}))\-\index{lr-s-similar-statesp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  s-eval-flag-run-v\&c\$-not-f-flag-t \\ \index{s-eval-flag-run-v\&c\$-not-f-fl!ag-t}
\=\+(\=\+{\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{cdr}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})) $<$ {\it{c\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{s-err-flag}}\,({\rm{s-eval}}\,({\bf{t}}, {\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-eval})\index{s-err-flag} $=$ {\tt{'}}{\tt{run}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-proper-formalsp-cdr-p-prog-segment-s-$>$lr-logic-$>$s \\ \index{lr-proper-formalsp-cdr-p-prog-se!gment-s-$>$lr-logic-$>$s}
\=\+(\=\+{\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-proper-formalsp}}\,({\rm{cdr}}\,({\rm{p-prog-segment}}\,({\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}})\-\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr})\index{p-prog-segment}))\index{lr-proper-formalsp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-s-similar-params-lr-good-pointerps-strip-cdrs \\ \index{lr-s-similar-params-lr-good-poi!nterps-strip-cdrs}
\=\+{\rm{lr-s-similar-params}}\,({\it{s-params\/}}, {\it{lr-params\/}}, {\it{data-seg\/}})\index{lr-s-similar-params} \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-good-pointerps}}\,({\rm{strip-cdrs}}\,({\it{lr-params\/}})\index{strip-cdrs}, {\it{data-seg\/}})\index{lr-good-pointerps}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  lr-p-proper-statep-s-$>$lr \\ \index{lr-p-proper-statep-s-$>$lr}
\=\+(\=\+({\it{heap-size\/}} $\not<$ {\rm{s-total-heap-reqs}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params}, {\it{heap-size\/}})\index{s-total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;${\rm{s-restrictedp}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\rm{s-params}}\,({\it{s\/}})\index{s-params})\index{s-restrictedp} \\ 
$\wedge$$\;\;\;\;$({\it{params\/}} $=$ {\rm{s-params}}\,({\it{s\/}})\index{s-params}))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-p-proper-statep}}\,(\=\+{\rm{p-temp-stk}}\,({\rm{s-$>$lr}}\,(\=\+{\it{s\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr})\index{p-temp-stk}, \\ 
{\rm{p-ctrl-stk}}\,({\rm{s-$>$lr}}\,(\=\+{\it{s\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr})\index{p-ctrl-stk}, \\ 
{\rm{p-data-segment}}\,({\rm{s-$>$lr}}\,(\=\+{\it{s\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr})\index{p-data-segment}, \\ 
{\rm{cdr}}\,({\rm{lr-data-seg-table}}\,({\rm{s-progs}}\,({\it{s\/}})\index{s-progs}, {\it{params\/}}, {\it{heap-size\/}})\index{lr-data-seg-table}))\-\index{lr-p-proper-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  proper-p-statep-lr-$>$p-s-$>$lr-logic-$>$s \\ \index{proper-p-statep-lr-$>$p-s-$>$lr!-logic-$>$s}
\=\+(\=\+{\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrictedp}}\,({\it{pnames\/}}, {\it{alist\/}})\index{l-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\bf{t}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ (\=\+{\rm{s-total-heap-reqs}}\,(\=\+{\rm{s-progs}}\,({\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s})\index{s-progs}, \\ 
{\it{alist\/}}, \\ 
{\it{heap-size\/}})\-\index{s-total-heap-reqs} \\ 
$+$$\;\;\;\;${\rm{s-eval-heap-r}}\,({\bf{t}}, {\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, {\it{c\/}})\index{s-eval-heap-r})\-) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\not<$ {\rm{lr-max-ctrl-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{c\/}})\index{lr-max-ctrl-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\not<$ {\rm{lr-max-temp-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{c\/}})\index{lr-max-temp-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{lr-max-word-size-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{heap-size\/}}, {\it{c\/}})\index{lr-max-word-size-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{proper-p-statep}}\,({\rm{lr-$>$p}}\,({\rm{s-$>$lr}}\,(\=\+{\rm{logic-$>$s}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{logic-$>$s}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{s-$>$lr})\index{lr-$>$p})\index{proper-p-statep}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  logic-$>$p-ok-really \\ \index{logic-$>$p-ok-really}
\=\+(\=\+{\rm{l-proper-exprp}}\,({\bf{t}}, {\it{expr\/}}, {\it{pnames\/}}, {\rm{strip-cars}}\,({\it{alist\/}}))\index{l-proper-exprp} \\ 
$\wedge$$\;\;\;\;${\rm{l-proper-programsp}}\,({\it{pnames\/}})\index{l-proper-programsp} \\ 
$\wedge$$\;\;\;\;${\rm{all-litatoms}}\,({\rm{strip-cars}}\,({\it{alist\/}}))\index{all-litatoms} \\ 
$\wedge$$\;\;\;\;${\rm{l-data-seg-body-restrictedp}}\,({\bf{t}}, {\it{expr\/}})\index{l-data-seg-body-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrictedp}}\,({\it{pnames\/}}, {\it{alist\/}})\index{l-restrictedp} \\ 
$\wedge$$\;\;\;\;${\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps}}\,({\bf{t}}, {\it{expr\/}})\index{l-restrict-subrps} \\ 
$\wedge$$\;\;\;\;${\rm{l-restrict-subrps-progs}}\,({\it{pnames\/}})\index{l-restrict-subrps-progs} \\ 
$\wedge$$\;\;\;\;$({\it{heap-size\/}} $\not<$ {\rm{total-heap-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{heap-size\/}})\index{total-heap-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\not<$ {\rm{max-ctrl-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{max-ctrl-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-ctrl\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\not<$ {\rm{max-temp-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}})\index{max-temp-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $<$ {\rm{exp}}\,({\tt{2}}, {\it{word-size\/}})\index{exp}) \\ 
$\wedge$$\;\;\;\;$({\it{max-temp\/}} $\in\;${\bf{N}}${}$) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\not<$ {\rm{max-word-size-reqs}}\,({\it{expr\/}}, {\it{alist\/}}, {\it{pnames\/}}, {\it{heap-size\/}})\index{max-word-size-reqs}) \\ 
$\wedge$$\;\;\;\;$({\it{word-size\/}} $\in\;${\bf{N}}${}$))\- \\ 
$\rightarrow$$\;\;\;\;${\rm{lr-valp}}\,(\=\+{\rm{car}}\,({\rm{v\&c\$}}\,({\bf{t}}, {\it{expr\/}}, {\it{alist\/}})), \\ 
{\rm{fetch}}\,(\=\+{\sc{lr-answer-addr}}\index{lr-answer-addr}, \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{logic-$>$p}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{logic-$>$p}, \\ 
{\rm{logic-$>$p-clock}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{logic-$>$p-clock})\-\index{p})\index{p-data-segment})\-\index{fetch}, \\ 
{\rm{p-data-segment}}\,({\rm{p}}\,(\=\+{\rm{logic-$>$p}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{logic-$>$p}, \\ 
{\rm{logic-$>$p-clock}}\,(\=\+{\it{expr\/}}, \\ 
{\it{alist\/}}, \\ 
{\it{pnames\/}}, \\ 
{\it{heap-size\/}}, \\ 
{\it{max-ctrl\/}}, \\ 
{\it{max-temp\/}}, \\ 
{\it{word-size\/}})\-\index{logic-$>$p-clock})\-\index{p})\index{p-data-segment})\-\index{lr-valp}\-
\end{tabbing}


%\end{list}
\printindex
\end{document}
