\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[]


\noindent{\sc Event}:   Start with the library {\tt{"c-proc-call1"}}.

\addvspace{18pt}

\begin{verbatim};; We now devote some effort to showing that the temp-stk at this
;; point (following the return) is the final temp-stk.  This is
;; perhaps the most difficult section of the proof.

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{popn-deposit-induction-hint} \\  
\=\+{\rm{popn-deposit-induction-hint}}\,({\it{temp-stk\/}}, {\it{n\/}})\index{popn-deposit-induction-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\rm{length}}\,({\it{temp-stk\/}})\index{length} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\it{n\/}} $\simeq {\tt{0}}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{popn-deposit-induction-hint}}\,({\rm{cdr}}\,({\it{temp-stk\/}}), {\it{n\/}} $-\;1$)\index{popn-deposit-induction-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-rput \\ \index{popn-rput}
\=\+(({\rm{untag}}\,({\it{x\/}})\index{untag} $\not<$ ({\rm{length}}\,({\it{temp-stk\/}})\index{length} $-$ {\it{n\/}})) $\wedge$ {\rm{ok-temp-stk-index}}\,({\it{x\/}}, {\it{temp-stk\/}})\index{ok-temp-stk-index}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{popn}}\,({\it{n\/}}, {\rm{rput}}\,({\it{value\/}}, {\rm{untag}}\,({\it{x\/}})\index{untag}, {\it{temp-stk\/}})\index{rput})\index{popn} $=$ {\rm{popn}}\,({\it{n\/}}, {\it{temp-stk\/}})\index{popn})\-
\end{tabbing}


\noindent{\sc Event}:   Enable deposit-temp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  popn-deposit-array-value \\ \index{popn-deposit-array-value}
\=\+(\=\+({\rm{untag}}\,({\it{x\/}})\index{untag} $\not<$ ({\rm{length}}\,({\it{temp-stk\/}})\index{length} $-$ {\it{n\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{ok-temp-stk-array-index}}\,({\it{x\/}}, {\it{temp-stk\/}}, {\rm{length}}\,({\it{array-value\/}})\index{length})\index{ok-temp-stk-array-index})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{popn}}\,({\it{n\/}}, {\rm{deposit-array-value}}\,({\it{array-value\/}}, {\it{x\/}}, {\it{temp-stk\/}})\index{deposit-array-value})\index{popn} \\ 
$=$$\;\;\;\;${\rm{popn}}\,({\it{n\/}}, {\it{temp-stk\/}})\index{popn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-locals1 \\ \index{popn-locals1}
\=\+(\=\+{\rm{all-pointers-bigger}}\,(\=\+{\rm{collect-pointers}}\,({\it{bindings\/}}, {\it{alist\/}})\index{collect-pointers}, \\ 
{\rm{length}}\,({\it{temp-stk1\/}})\index{length} $-$ {\it{n\/}})\-\index{all-pointers-bigger} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{alist\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,({\it{alist\/}}, {\it{bindings\/}}, {\it{temp-stk1\/}})\index{mg-vars-list-ok-in-p-state})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{popn}}\,({\it{n\/}}, {\rm{map-down-values}}\,({\it{alist\/}}, {\it{bindings\/}}, {\it{temp-stk1\/}})\index{map-down-values})\index{popn} \\ 
$=$$\;\;\;\;${\rm{popn}}\,({\it{n\/}}, {\it{temp-stk1\/}})\index{popn})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  popn-locals \\ \index{popn-locals}
\=\+(\=\+{\rm{all-pointers-bigger}}\,({\rm{collect-pointers}}\,({\it{bindings\/}}, {\it{alist\/}})\index{collect-pointers}, {\rm{length}}\,({\it{temp-stk\/}})\index{length})\index{all-pointers-bigger} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{alist\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;$({\it{n\/}} $=$ {\rm{length}}\,({\it{lst\/}})\index{length}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,({\it{alist\/}}, {\it{bindings\/}}, {\rm{append}}\,({\it{lst\/}}, {\it{temp-stk\/}}))\index{mg-vars-list-ok-in-p-state})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{popn}}\,({\it{n\/}}, {\rm{map-down-values}}\,({\it{alist\/}}, {\it{bindings\/}}, {\rm{append}}\,({\it{lst\/}}, {\it{temp-stk\/}}))\index{map-down-values})\index{popn} \\ 
$=$$\;\;\;\;${\it{temp-stk\/}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{drop-formals-induction-hint} \\  
\=\+{\rm{drop-formals-induction-hint}}\,({\it{alist\/}}, {\it{locals\/}}, {\it{temp-stk\/}}, {\it{n\/}})\index{drop-formals-induction-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{caar}}\,({\it{alist\/}}) $\in$ {\rm{listcars}}\,({\it{locals\/}})\index{listcars} \\ 
{\bf then }{\rm{drop-formals-induction-hint}}\,(\=\+{\rm{cdr}}\,({\it{alist\/}}), \\ 
{\it{locals\/}}, \\ 
{\rm{deposit-alist-value}}\,(\=\+{\rm{car}}\,({\it{alist\/}}), \\ 
{\rm{map-call-locals}}\,(\=\+{\it{locals\/}}, \\ 
{\it{n\/}})\-\index{map-call-locals}, \\ 
{\it{temp-stk\/}})\-\index{deposit-alist-value}, \\ 
{\it{n\/}})\-\index{drop-formals-induction-hint} \\ 
{\bf else }{\rm{drop-formals-induction-hint}}\,({\rm{cdr}}\,({\it{alist\/}}), {\it{locals\/}}, {\it{temp-stk\/}}, {\it{n\/}})\index{drop-formals-induction-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  map-down-values-drop-formals-restriction \\ \index{map-down-values-drop-formals-re!striction}
\=\+(\=\+{\rm{all-cars-unique}}\,({\it{alist\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{locals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{map-call-locals}}\,({\it{locals\/}}, {\it{n\/}})\index{map-call-locals}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{map-down-values}}\,(\=\+{\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{locals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{append}}\,({\rm{map-call-locals}}\,({\it{locals\/}}, {\it{n\/}})\index{map-call-locals}, {\it{lst\/}}), \\ 
{\it{temp-stk\/}})\-\index{map-down-values} \\ 
$=$$\;\;\;\;${\rm{map-down-values}}\,(\=\+{\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{locals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{map-call-locals}}\,({\it{locals\/}}, {\it{n\/}})\index{map-call-locals}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{drop-locals-induction-hint} \\  
\=\+{\rm{drop-locals-induction-hint}}\,({\it{alist\/}}, {\it{formals\/}}, {\it{temp-stk\/}}, {\it{actuals\/}}, {\it{bindings\/}})\index{drop-locals-induction-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{alist\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf elseif }{\rm{caar}}\,({\it{alist\/}}) $\in$ {\rm{listcars}}\,({\it{formals\/}})\index{listcars} \\ 
{\bf then }{\rm{drop-locals-induction-hint}}\,(\=\+{\rm{cdr}}\,({\it{alist\/}}), \\ 
{\it{formals\/}}, \\ 
{\rm{deposit-alist-value}}\,(\=\+{\rm{car}}\,({\it{alist\/}}), \\ 
{\rm{map-call-formals}}\,(\=\+{\it{formals\/}}, \\ 
{\it{actuals\/}}, \\ 
{\it{bindings\/}})\-\index{map-call-formals}, \\ 
{\it{temp-stk\/}})\-\index{deposit-alist-value}, \\ 
{\it{actuals\/}}, \\ 
{\it{bindings\/}})\-\index{drop-locals-induction-hint} \\ 
{\bf else }{\rm{drop-locals-induction-hint}}\,(\=\+{\rm{cdr}}\,({\it{alist\/}}), \\ 
{\it{formals\/}}, \\ 
{\it{temp-stk\/}}, \\ 
{\it{actuals\/}}, \\ 
{\it{bindings\/}})\-\index{drop-locals-induction-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  map-down-drop-locals-restriction \\ \index{map-down-drop-locals-restrictio!n}
\=\+(\=\+{\rm{all-cars-unique}}\,({\it{alist\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicates}}\,({\rm{append}}\,({\rm{listcars}}\,({\it{formals\/}})\index{listcars}, {\rm{listcars}}\,({\it{locals\/}})\index{listcars}))\index{no-duplicates})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{map-down-values}}\,(\=\+{\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{append}}\,(\=\+{\rm{map-call-locals}}\,({\it{locals\/}}, {\it{n\/}})\index{map-call-locals}, \\ 
{\rm{map-call-formals}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{bindings\/}})\index{map-call-formals})\-, \\ 
{\it{temp-stk\/}})\-\index{map-down-values} \\ 
$=$$\;\;\;\;${\rm{map-down-values}}\,(\=\+{\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{map-call-formals}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{bindings\/}})\index{map-call-formals}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  restrict-cons \\ \index{restrict-cons}
\=\+({\it{x\/}} $\not=$ {\it{y\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{assoc}}\,({\it{x\/}}, {\rm{restrict}}\,({\it{lst\/}}, {\rm{cons}}\,({\it{y\/}}, {\it{z\/}}))\index{restrict}) $=$ {\rm{assoc}}\,({\it{x\/}}, {\rm{restrict}}\,({\it{lst\/}}, {\it{z\/}})\index{restrict}))\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  copy-out-params-restriction-cons \\ \index{copy-out-params-restriction-con!s}
\=\+({\it{x\/}} $\not\in$ {\rm{listcars}}\,({\it{lst1\/}})\index{listcars}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{copy-out-params}}\,({\it{lst1\/}}, {\it{lst2\/}}, {\rm{restrict}}\,({\it{new-alist\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{z\/}}))\index{restrict}, {\it{old-alist\/}})\index{copy-out-params} \\ 
$=$$\;\;\;\;${\rm{copy-out-params}}\,({\it{lst1\/}}, {\it{lst2\/}}, {\rm{restrict}}\,({\it{new-alist\/}}, {\it{z\/}})\index{restrict}, {\it{old-alist\/}})\index{copy-out-params})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  copy-out-params-restriction \\ \index{copy-out-params-restriction}
\=\+{\rm{all-cars-unique}}\,({\it{formals\/}})\index{all-cars-unique} \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{copy-out-params}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{new-alist\/}}, {\it{old-alist\/}})\index{copy-out-params} \\ 
$=$$\;\;\;\;${\rm{copy-out-params}}\,(\=\+{\it{formals\/}}, \\ 
{\it{actuals\/}}, \\ 
{\rm{restrict}}\,({\it{new-alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict}, \\ 
{\it{old-alist\/}})\-\index{copy-out-params})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable deposit-temp.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  deposit-temp-deposit-array-value-commute6 \\ \index{deposit-temp-deposit-array-value!-commute6}
\=\+(\=\+{\rm{mg-vars-list-ok-in-p-state}}\,({\it{lst\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\it{bindings\/}}, {\it{lst\/}})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{lst\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{lst\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in$ {\it{lst\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{y\/}} $\in$ {\it{lst\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{x\/}}) $\not=$ {\rm{car}}\,({\it{y\/}})) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{simple-mg-type-refp}}\,({\rm{cadr}}\,({\it{y\/}}))\index{simple-mg-type-refp}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{array-length}}\,({\rm{cadr}}\,({\it{y\/}}))\index{array-length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-temp}}\,(\=\+{\it{z\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{x\/}}), {\it{bindings\/}})), \\ 
{\rm{deposit-array-value}}\,(\=\+{\it{value\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{y\/}}), {\it{bindings\/}})), \\ 
{\it{temp-stk\/}})\-\index{deposit-array-value})\-\index{deposit-temp} \\ 
$=$$\;\;\;\;${\rm{deposit-array-value}}\,(\=\+{\it{value\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{y\/}}), {\it{bindings\/}})), \\ 
{\rm{deposit-temp}}\,(\=\+{\it{z\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{x\/}}), {\it{bindings\/}})), \\ 
{\it{temp-stk\/}})\-\index{deposit-temp})\-\index{deposit-array-value})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-array-value-deposit-alist-value-commute2 \\ \index{deposit-array-value-deposit-ali!st-value-commute2}
\=\+(\=\+{\rm{mg-vars-list-ok-in-p-state}}\,({\it{lst\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\it{bindings\/}}, {\it{lst\/}})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{lst\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{lst\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in$ {\it{lst\/}}) \\ 
$\wedge$$\;\;\;\;$({\it{y\/}} $\in$ {\it{lst\/}}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{simple-mg-type-refp}}\,({\rm{cadr}}\,({\it{x\/}}))\index{simple-mg-type-refp}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{array-length}}\,({\rm{cadr}}\,({\it{x\/}}))\index{array-length}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{x\/}}) $\not=$ {\rm{car}}\,({\it{y\/}})))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{deposit-array-value}}\,(\=\+{\it{value\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{x\/}}), {\it{bindings\/}})), \\ 
{\rm{deposit-alist-value}}\,({\it{y\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{deposit-alist-value})\-\index{deposit-array-value} \\ 
$=$$\;\;\;\;${\rm{deposit-alist-value}}\,(\=\+{\it{y\/}}, \\ 
{\it{bindings\/}}, \\ 
{\rm{deposit-array-value}}\,(\=\+{\it{value\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,(\=\+{\rm{car}}\,({\it{x\/}}), \\ 
{\it{bindings\/}})\-), \\ 
{\it{temp-stk\/}})\-\index{deposit-array-value})\-\index{deposit-alist-value})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  deposit-array-value-doesnt-affect-map-down-values \\ \index{deposit-array-value-doesnt-affe!ct-map-down-values}
\=\+(\=\+{\rm{mg-alistp}}\,({\rm{cons}}\,({\it{x\/}}, {\it{mg-vars\/}}))\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{cons}}\,({\it{x\/}}, {\it{mg-vars\/}}))\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\it{bindings\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{mg-vars\/}}))\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,({\rm{cons}}\,({\it{x\/}}, {\it{mg-vars\/}}), {\it{bindings\/}}, {\it{temp-stk\/}})\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{simple-mg-type-refp}}\,({\rm{cadr}}\,({\it{x\/}}))\index{simple-mg-type-refp}) \\ 
$\wedge$$\;\;\;\;$({\rm{length}}\,({\it{value\/}})\index{length} $=$ {\rm{array-length}}\,({\rm{cadr}}\,({\it{x\/}}))\index{array-length}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{map-down-values}}\,(\=\+{\it{mg-vars\/}}, \\ 
{\it{bindings\/}}, \\ 
{\rm{deposit-array-value}}\,(\=\+{\it{value\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{x\/}}), {\it{bindings\/}})), \\ 
{\it{temp-stk\/}})\-\index{deposit-array-value})\-\index{map-down-values} \\ 
$=$$\;\;\;\;${\rm{deposit-array-value}}\,(\=\+{\it{value\/}}, \\ 
{\rm{cdr}}\,({\rm{assoc}}\,({\rm{car}}\,({\it{x\/}}), {\it{bindings\/}})), \\ 
{\rm{map-down-values}}\,({\it{mg-vars\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{map-down-values})\-\index{deposit-array-value})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  extra-binding-doesnt-affect-copy-out-params \\ \index{extra-binding-doesnt-affect-cop!y-out-params}
\=\+({\rm{car}}\,({\it{x\/}}) $\not\in$ {\rm{listcars}}\,({\it{formals\/}})\index{listcars}) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{copy-out-params}}\,({\it{formals\/}}, {\it{actuals\/}}, {\rm{cons}}\,({\it{x\/}}, {\it{new-alist\/}}), {\it{old-alist\/}})\index{copy-out-params} \\ 
$=$$\;\;\;\;${\rm{copy-out-params}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{new-alist\/}}, {\it{old-alist\/}})\index{copy-out-params})\-\-
\end{tabbing}

\begin{tabbing}{\sc Definition}:\index{map-down-copy-out-params-inducti!on-hint} \\  
\=\+{\rm{map-down-copy-out-params-induction-hint}}\,({\it{formals\/}}, {\it{old-alist\/}}, {\it{actuals\/}}, {\it{new-alist\/}})\index{map-down-copy-out-params-inducti!on-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{formals\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{map-down-copy-out-params-induction-hint}}\,(\=\+{\rm{cdr}}\,({\it{formals\/}}), \\ 
{\rm{set-alist-value}}\,(\=\+{\rm{car}}\,({\it{actuals\/}}), \\ 
{\rm{caddr}}\,({\rm{assoc}}\,(\=\+{\rm{caar}}\,({\it{formals\/}}), \\ 
{\rm{restrict}}\,(\=\+{\it{new-alist\/}}, \\ 
{\rm{listcars}}\,({\it{formals\/}})\index{listcars})\-\index{restrict})\-), \\ 
{\it{old-alist\/}})\-\index{set-alist-value}, \\ 
{\rm{cdr}}\,({\it{actuals\/}}), \\ 
{\rm{cdr}}\,({\it{new-alist\/}}))\-\index{map-down-copy-out-params-inducti!on-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  map-down-copy-facts \\ \index{map-down-copy-facts}
\=\+({\rm{listp}}\,({\it{formals\/}}) $\wedge$ ({\rm{listcars}}\,({\it{alist\/}})\index{listcars} $=$ {\rm{append}}\,({\rm{listcars}}\,({\it{formals\/}})\index{listcars}, {\it{locals\/}}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{listp}}\,({\it{alist\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{caar}}\,({\it{alist\/}}) $=$ {\rm{caar}}\,({\it{formals\/}})) \\ 
$\wedge$$\;\;\;\;$({\rm{caar}}\,({\it{alist\/}}) $\in$ {\rm{listcars}}\,({\it{formals\/}})\index{listcars}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable map-down-copy-facts.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  map-down-copy-facts2 \\ \index{map-down-copy-facts2}
\=\+(\=\+{\rm{listp}}\,({\it{formals\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{listcars}}\,({\it{alist\/}})\index{listcars} $=$ {\rm{append}}\,({\rm{listcars}}\,({\it{formals\/}})\index{listcars}, {\it{locals\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{formal-types-preserved}}\,({\it{formals\/}}, {\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict})\index{formal-types-preserved})\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{cadar}}\,({\it{formals\/}}) $=$ {\rm{cadar}}\,({\it{alist\/}}))\-
\end{tabbing}


\noindent{\sc Event}:   Disable map-down-copy-facts2.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  map-down-copy-facts3 \\ \index{map-down-copy-facts3}
\=\+(\=\+{\rm{listp}}\,({\it{formals\/}}) \\ 
$\wedge$$\;\;\;\;$({\rm{listcars}}\,({\it{alist\/}})\index{listcars} $=$ {\rm{append}}\,({\rm{listcars}}\,({\it{formals\/}})\index{listcars}, {\it{locals\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{alist\/}})\index{all-cars-unique})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{restrict}}\,({\it{alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict} \\ 
$=$$\;\;\;\;${\rm{cons}}\,({\rm{car}}\,({\it{alist\/}}), {\rm{restrict}}\,({\rm{cdr}}\,({\it{alist\/}}), {\rm{listcars}}\,({\rm{cdr}}\,({\it{formals\/}}))\index{listcars})\index{restrict}))\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable map-down-copy-facts3.

\addvspace{18pt}

\begin{verbatim};; This one gives the looping problem when interrupted during the base case.
;; This occurs only when I have the (maintain-rewrite-path)

\end{verbatim}\begin{tabbing}{\sc Theorem}:  map-down-copy-out-params-relation-new \\ \index{map-down-copy-out-params-relati!on-new}
\=\+(\=\+{\rm{ok-actual-params-list}}\,({\it{actuals\/}}, {\it{old-alist\/}})\index{ok-actual-params-list} \\ 
$\wedge$$\;\;\;\;${\rm{data-param-lists-match}}\,({\it{actuals\/}}, {\it{formals\/}}, {\it{old-alist\/}})\index{data-param-lists-match} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-formal-data-params-plistp}}\,({\it{formals\/}})\index{ok-mg-formal-data-params-plistp} \\ 
$\wedge$$\;\;\;\;$({\rm{listcars}}\,({\it{new-alist\/}})\index{listcars} $=$ {\rm{append}}\,({\rm{listcars}}\,({\it{formals\/}})\index{listcars}, {\it{locals\/}})) \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{old-alist\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\it{bindings\/}}, {\it{old-alist\/}})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,({\it{old-alist\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{restrict}}\,({\it{new-alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{map-call-formals}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{bindings\/}})\index{map-call-formals}, \\ 
{\rm{map-down-values}}\,(\=\+{\it{old-alist\/}}, \\ 
{\it{bindings\/}}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-duplicates}}\,({\it{actuals\/}})\index{no-duplicates} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{formals\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{new-alist\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{old-alist\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{new-alist\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{formal-types-preserved}}\,({\it{formals\/}}, {\rm{restrict}}\,({\it{new-alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict})\index{formal-types-preserved})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{map-down-values}}\,(\=\+{\rm{restrict}}\,({\it{new-alist\/}}, {\rm{listcars}}\,({\it{formals\/}})\index{listcars})\index{restrict}, \\ 
{\rm{map-call-formals}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{bindings\/}})\index{map-call-formals}, \\ 
{\rm{map-down-values}}\,({\it{old-alist\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{map-down-values})\-\index{map-down-values} \\ 
$=$$\;\;\;\;${\rm{map-down-values}}\,(\=\+{\rm{copy-out-params}}\,(\=\+{\it{formals\/}}, \\ 
{\it{actuals\/}}, \\ 
{\rm{restrict}}\,(\=\+{\it{new-alist\/}}, \\ 
{\rm{listcars}}\,({\it{formals\/}})\index{listcars})\-\index{restrict}, \\ 
{\it{old-alist\/}})\-\index{copy-out-params}, \\ 
{\it{bindings\/}}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  formals-meaning-signature \\ \index{formals-meaning-signature}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{signatures-match}}\,(\=\+{\rm{make-call-param-alist}}\,(\=\+{\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals}, \\ 
{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\-\index{make-call-param-alist}, \\ 
{\rm{restrict}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{listcars}}\,({\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals})\index{listcars})\-\index{restrict})\-\index{signatures-match}\-
\end{tabbing}


\noindent{\sc Event}:   Disable formals-meaning-signature.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  locals-meaning-signature \\ \index{locals-meaning-signature}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{signatures-match}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{restrict}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{listcars}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{listcars})\-\index{restrict})\-\index{signatures-match}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  param-alist-mg-vars-ok0 \\ \index{param-alist-mg-vars-ok0}
\=\+(\=\+{\rm{ok-actual-params-list}}\,({\it{actuals\/}}, {\it{mg-vars\/}})\index{ok-actual-params-list} \\ 
$\wedge$$\;\;\;\;${\rm{data-param-lists-match}}\,({\it{actuals\/}}, {\it{formals\/}}, {\it{mg-vars\/}})\index{data-param-lists-match} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-formal-data-params-plistp}}\,({\it{formals\/}})\index{ok-mg-formal-data-params-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{mg-alistp}}\,({\it{mg-vars\/}})\index{mg-alistp} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\it{formals\/}})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,({\it{mg-vars\/}}, {\it{bindings\/}}, {\it{temp-stk\/}})\index{mg-vars-list-ok-in-p-state})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{make-call-param-alist}}\,(\=\+{\it{formals\/}}, \\ 
{\it{actuals\/}}, \\ 
{\it{mg-vars\/}})\-\index{make-call-param-alist}, \\ 
{\rm{map-call-formals}}\,({\it{formals\/}}, {\it{actuals\/}}, {\it{bindings\/}})\index{map-call-formals}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  param-alist-mg-vars-ok \\ \index{param-alist-mg-vars-ok}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{make-call-param-alist}}\,(\=\+{\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals}, \\ 
{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\-\index{make-call-param-alist}, \\ 
{\rm{map-call-formals}}\,(\=\+{\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\-\index{map-call-formals}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state}\-
\end{tabbing}


\noindent{\sc Event}:   Disable param-alist-mg-vars-ok.

\addvspace{18pt}

\begin{tabbing}{\sc Theorem}:  locals-alist-mg-vars-ok0 \\ \index{locals-alist-mg-vars-ok0}
\=\+({\rm{all-cars-unique}}\,({\it{locals\/}})\index{all-cars-unique} $\wedge$ {\rm{ok-mg-local-data-plistp}}\,({\it{locals\/}})\index{ok-mg-local-data-plistp}) \\ 
$\rightarrow$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\it{locals\/}}, \\ 
{\rm{map-call-locals}}\,({\it{locals\/}}, {\rm{length}}\,({\it{temp-stk\/}})\index{length})\index{map-call-locals}, \\ 
{\rm{append}}\,(\=\+{\rm{reverse}}\,({\rm{mg-to-p-local-values}}\,({\it{locals\/}})\index{mg-to-p-local-values})\index{reverse}, \\ 
{\it{temp-stk\/}})\-)\-\index{mg-vars-list-ok-in-p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  locals-alist-mg-vars-ok \\ \index{locals-alist-mg-vars-ok}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{map-call-locals}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{length}}\,({\it{temp-stk\/}})\index{length})\-\index{map-call-locals}, \\ 
{\rm{append}}\,(\=\+{\rm{reverse}}\,({\rm{mg-to-p-local-values}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{mg-to-p-local-values})\index{reverse}, \\ 
{\it{temp-stk\/}})\-)\-\index{mg-vars-list-ok-in-p-state}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  no-p-aliasing-in-call-alists-new \\ \index{no-p-aliasing-in-call-alists-ne!w}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique})\- \\ 
$\rightarrow$$\;\;\;\;${\rm{no-p-aliasing}}\,(\=\+{\rm{append}}\,(\=\+{\rm{map-call-formals}}\,(\=\+{\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\-\index{map-call-formals}, \\ 
{\rm{map-call-locals}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{length}}\,({\it{temp-stk\/}})\index{length})\-\index{map-call-locals})\-, \\ 
{\rm{append}}\,(\=\+{\rm{restrict}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{listcars}}\,({\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals})\index{listcars})\-\index{restrict}, \\ 
{\rm{restrict}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{listcars}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{listcars})\-\index{restrict})\-)\-\index{no-p-aliasing}\-
\end{tabbing}

\begin{verbatim};; The proof of this is incredible.  This is a prime candidate for
;; cleaning up the proof.

;; At this point, we have exitted from the call. 

\end{verbatim}\begin{tabbing}{\sc Theorem}:  ret-temp-stk-equals-final-temp-stk \\ \index{ret-temp-stk-equals-final-temp-!stk}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{popn}}\,(\=\+{\rm{data-length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-locals})\index{data-length}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning-r}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$, \\ 
{\rm{list}}\,(\=\+\=\+{\rm{data-length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{data-length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\it{temp-stk\/}})\index{length}\-, \\ 
\=\+{\tt{2}} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals})\index{length} \\ 
$+$$\;\;\;\;${\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size}\-)\-)\-\index{mg-meaning-r})\index{mg-alist}, \\ 
{\rm{append}}\,(\=\+{\rm{map-call-locals}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{length}}\,({\it{temp-stk\/}})\index{length})\-\index{map-call-locals}, \\ 
{\rm{map-call-formals}}\,(\=\+{\rm{def-formals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-formals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings})\-\index{map-call-formals})\-, \\ 
{\rm{append}}\,(\=\+{\rm{reverse}}\,({\rm{mg-to-p-local-values}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{mg-to-p-local-values})\index{reverse}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-)\-\index{map-down-values})\-\index{popn} \\ 
$=$$\;\;\;\;${\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,({\it{stmt\/}}, {\it{proc-list\/}}, {\it{mg-state\/}}, {\it{n\/}})\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\-
\end{tabbing}


\noindent{\sc Event}:   Disable proc-call-meaning-2.

\addvspace{18pt}

\begin{verbatim};; (push-global c-c)

\end{verbatim}%\item 
\begin{verbatim}


;; (push-global c-c)

(prove-lemma call-state2-step4-effect (rewrite)
      (IMPLIES
       (AND (NOT (ZEROP N))
	    (NOT (RESOURCES-INADEQUATEP STMT PROC-LIST
					(LIST (LENGTH TEMP-STK)
					      (P-CTRL-STK-SIZE CTRL-STK))))
	    (EQUAL (CAR STMT) 'PROC-CALL-MG)
	    (OK-MG-STATEMENT STMT R-COND-LIST NAME-ALIST PROC-LIST)
	    (OK-MG-DEF-PLISTP PROC-LIST)
	    (OK-TRANSLATION-PARAMETERS CINFO T-COND-LIST STMT PROC-LIST CODE2)
	    (OK-MG-STATEP MG-STATE R-COND-LIST)
	    (COND-SUBSETP R-COND-LIST T-COND-LIST)
	    (EQUAL (CODE (TRANSLATE-DEF-BODY (ASSOC SUBR PROC-LIST)
					     PROC-LIST))
		   (APPEND (CODE (TRANSLATE CINFO T-COND-LIST STMT PROC-LIST))
			   CODE2))
	    (USER-DEFINED-PROCP SUBR PROC-LIST)
	    (PLISTP TEMP-STK)
	    (LISTP CTRL-STK)
	    (MG-VARS-LIST-OK-IN-P-STATE (MG-ALIST MG-STATE)
					(BINDINGS (TOP CTRL-STK))
					TEMP-STK)
	    (NO-P-ALIASING (BINDINGS (TOP CTRL-STK))
			   (MG-ALIST MG-STATE))
	    (SIGNATURES-MATCH (MG-ALIST MG-STATE)
			      NAME-ALIST)
	    (NORMAL MG-STATE)
	    (ALL-CARS-UNIQUE (MG-ALIST MG-STATE))
	    (NOT (RESOURCE-ERRORP (MG-MEANING-R STMT PROC-LIST MG-STATE N
						(LIST (LENGTH TEMP-STK)
						      (P-CTRL-STK-SIZE CTRL-STK))))))
     (equal 
       (p-step
      (P-STATE
          (TAG 'PC
	       (CONS SUBR
		     (ADD1 (PLUS (LENGTH (CODE CINFO))
				 (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				 (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				 (LENGTH (CALL-ACTUALS STMT))))))
         ctrl-stk
	 (POPN
          (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
	  (MAP-DOWN-VALUES
	   (MG-ALIST
	    (MG-MEANING-R
	     (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
	     PROC-LIST
	     (MG-STATE (CC MG-STATE)
		       (MAKE-CALL-VAR-ALIST (MG-ALIST MG-STATE)
					    STMT
					    (FETCH-CALLED-DEF STMT PROC-LIST))
		       (MG-PSW MG-STATE))
	     (SUB1 N)
	     (LIST (PLUS (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
			 (LENGTH TEMP-STK))
		   (PLUS 2
			 (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
			 (LENGTH (DEF-FORMALS (FETCH-CALLED-DEF STMT PROC-LIST)))
			 (P-CTRL-STK-SIZE CTRL-STK)))))
	   (APPEND (MAP-CALL-LOCALS (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))
				    (LENGTH TEMP-STK))
		   (MAP-CALL-FORMALS (DEF-FORMALS (FETCH-CALLED-DEF STMT PROC-LIST))
				     (CALL-ACTUALS STMT)
				     (BINDINGS (TOP CTRL-STK))))
	   (APPEND
	    (REVERSE
	     (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
	    (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
			     (BINDINGS (TOP CTRL-STK))
			     TEMP-STK))))
	 (TRANSLATE-PROC-LIST PROC-LIST)
	 (LIST
	  (LIST 'C-C
		(MG-COND-TO-P-NAT
		 (CC
		  (MG-MEANING-R
		   (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
		   PROC-LIST
		   (MG-STATE (CC MG-STATE)
			     (MAKE-CALL-VAR-ALIST (MG-ALIST MG-STATE)
						  STMT
						  (FETCH-CALLED-DEF STMT PROC-LIST))
			     (MG-PSW MG-STATE))
		   (SUB1 N)
		   (LIST
		    (PLUS
		     (LENGTH
		      (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		     (LENGTH (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
					      (BINDINGS (TOP CTRL-STK))
					      TEMP-STK)))
		    (P-CTRL-STK-SIZE
		     (CONS
		      (P-FRAME
		       (APPEND
			(MAP-CALL-LOCALS (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))
					 (LENGTH TEMP-STK))
			(MAP-CALL-FORMALS (DEF-FORMALS (FETCH-CALLED-DEF STMT PROC-LIST))
					  (CALL-ACTUALS STMT)
					  (BINDINGS (TOP CTRL-STK))))
		       (TAG 'PC
			    (CONS SUBR
				  (ADD1
				   (PLUS (LENGTH (CODE CINFO))
					 (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					 (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					 (LENGTH (CALL-ACTUALS STMT)))))))
		      CTRL-STK)))))
		 (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))))
         (MG-MAX-CTRL-STK-SIZE) (MG-MAX-TEMP-STK-SIZE) (MG-WORD-SIZE)
	 'RUN))
      (P-STATE
       (TAG 'PC
	    (CONS SUBR
		  (PLUS (LENGTH (CODE CINFO))
			(DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
			(LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
			(LENGTH (CALL-ACTUALS STMT)) 2)))
       CTRL-STK
       (PUSH
	(MG-COND-TO-P-NAT
	 (CC
	  (MG-MEANING
	   (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
	   PROC-LIST
	   (MG-STATE (CC MG-STATE)
		     (MAKE-CALL-VAR-ALIST (MG-ALIST MG-STATE)
					  STMT
					  (FETCH-CALLED-DEF STMT PROC-LIST))
		     (MG-PSW MG-STATE))
	   (SUB1 N)))
	 (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))
	(MAP-DOWN-VALUES (MG-ALIST (MG-MEANING STMT PROC-LIST MG-STATE N))
			 (BINDINGS (TOP CTRL-STK))
			 TEMP-STK))
       (TRANSLATE-PROC-LIST PROC-LIST)
       (LIST
	(LIST 'C-C
	      (MG-COND-TO-P-NAT
	       (CC
		(MG-MEANING
		 (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
		 PROC-LIST
		 (MG-STATE (CC MG-STATE)
			   (MAKE-CALL-VAR-ALIST (MG-ALIST MG-STATE)
						STMT
						(FETCH-CALLED-DEF STMT PROC-LIST))
			   (MG-PSW MG-STATE))
		 (SUB1 N)))
	       (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))))
       (MG-MAX-CTRL-STK-SIZE) (MG-MAX-TEMP-STK-SIZE) (MG-WORD-SIZE)
       'RUN)))
 ((INSTRUCTIONS PROMOTE
   (DIVE 1 1 3)
   (REWRITE RET-TEMP-STK-EQUALS-FINAL-TEMP-STK)
   UP
   (DIVE 5 1 2 1 1 1)
   (REWRITE MG-MEANING-EQUIVALENCE2
    (($T-SIZE1
      (LENGTH
       (APPEND
        (REVERSE
         (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
        (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                         (BINDINGS (TOP CTRL-STK))
                         TEMP-STK))))
     ($C-SIZE1
      (P-CTRL-STK-SIZE
       (CONS
        (P-FRAME
         (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                           STMT CTRL-STK TEMP-STK)
         (TAG 'PC
          (CONS SUBR
           (ADD1
             (PLUS (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
        CTRL-STK)))))
   TOP
   (DIVE 1)
   X
   (S LEMMAS)
   (DIVE 1 1 2)
   (REWRITE TRANSLATE-DEF-BODY-REWRITE)
   (DIVE 1 1)
   (REWRITE CALL-TRANSLATION-2)
   UP UP UP S
   (DIVE 1)
   (= (PLUS (LENGTH (CODE CINFO))
            (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
            (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
            (LENGTH (CALL-ACTUALS STMT))
            1))
   UP
   (S LEMMAS)
   (REWRITE GET-LENGTH-PLUS)
   (REWRITE GET-LENGTH-PLUS)
   (REWRITE GET-LENGTH-PLUS)
   (REWRITE GET-LENGTH-PLUS)
   (S LEMMAS)
   UP X UP X
   (S LEMMAS)
   (DIVE 1)
   X
   (DIVE 1)
   (REWRITE MAP-DOWN-VALUES-PRESERVES-LENGTH)
   UP
   (REWRITE RESOURCES-ADEQUATE-TEMP-STK-NOT-MAX)
   UP
   (S LEMMAS)
   X
   (S LEMMAS)
   TOP S DROP
   (PROVE (ENABLE TAG))
   (REWRITE SIGNATURES-MATCH-PRESERVES-MG-VARS-LIST-OK
            (($X (MG-ALIST MG-STATE))))
   (REWRITE MG-MEANING-PRESERVES-SIGNATURES-MATCH)
   (REWRITE OK-MG-STATEP-ALIST-PLISTP)
   (REWRITE MG-MEANING-PRESERVES-MG-ALISTP)
   (S LEMMAS)
   (S LEMMAS)
   (DIVE 2)
   (REWRITE LENGTH-PUSH-LOCALS-VALUES-CODE)
   TOP S
   (REWRITE CALLED-DEF-FORMALS-OK)
   (USE-LEMMA PROC-CALL-DOESNT-HALT)
   (DEMOTE 19)
   (DIVE 1 1)
   S TOP
   (S-PROP MAKE-CALL-ENVIRONMENT)
   S
   (S LEMMAS)
   SPLIT PROVE
   (S LEMMAS)
   PROVE PROVE)))
\end{verbatim}


\begin{verbatim};; (jump-case ....)

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-state2-step5-effect \\ \index{call-state2-step5-effect}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{data-length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{data-length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{2}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
{\rm{find-label}}\,(\=\+{\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\index{untag}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-case-jump-label-list}}\,(\=\+$1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
$1\;+$ {\rm{length}}\,({\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\index{length})\-\index{cond-case-jump-label-list}, \\ 
{\rm{label-cnt-list}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{length}}\,({\rm{def-cond-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-cond-locals})\index{length})\-\index{label-cnt-list})\-)\-)\-)\-\index{get}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label})\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{verbatim};;;;;;;;;;;;;;;;;;;;;;  The Normal Return Case ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; In the schema for normal return, n = 1;

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-add1-lc-not-in-code \\ \index{call-add1-lc-not-in-code}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{find-labelp}}\,($1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, {\rm{code}}\,({\it{cinfo\/}})\index{code})\index{find-labelp})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  mg-cond-to-p-nat-normal \\ \index{mg-cond-to-p-nat-normal}
{\rm{mg-cond-to-p-nat}}\,({\tt{'}}{\tt{normal}}, {\it{state\/}})\index{mg-cond-to-p-nat} $=$ {\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{2}}{\tt{)}}
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-state2-step6-effect-normal-body-equals-final \\ \index{call-state2-step6-effect-normal!-body-equals-final}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal})\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
{\rm{find-label}}\,(\=\+{\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\index{untag}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-case-jump-label-list}}\,(\=\+$1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
$1\;+$ {\rm{length}}\,({\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\index{length})\-\index{cond-case-jump-label-list}, \\ 
{\rm{label-cnt-list}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{length}}\,({\rm{def-cond-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-cond-locals})\index{length})\-\index{label-cnt-list})\-)\-)\-)\-\index{get}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label})\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\bf if }{\rm{normal}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{normal} \\ 
{\bf then }{\rm{length}}\,({\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code})\index{length} \\ 
{\bf else }{\rm{find-label}}\,(\=\+{\rm{fetch-label}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\rm{label-alist}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{label-alist})\-\index{fetch-label}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label}$\;${\bf  endif}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{verbatim};;;;;;;;;;;;;;;;;;;;;;  The Non-Normal Return Cases ;;;;;;;;;;;;;;;;;;;;;;;;;

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-lc-not-in-code \\ \index{call-lc-not-in-code}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters})\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{find-labelp}}\,({\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, {\rm{code}}\,({\it{cinfo\/}})\index{code})\index{find-labelp})\-
\end{tabbing}


\noindent{\sc Event}:   Disable call-lc-not-in-code.

\addvspace{18pt}

\begin{verbatim};; The 'routineerror case

\end{verbatim}\begin{tabbing}{\sc Theorem}:  mg-cond-to-p-nat-routineerror \\ \index{mg-cond-to-p-nat-routineerror}
{\rm{mg-cond-to-p-nat}}\,({\tt{'}}{\tt{routineerror}}, {\it{state\/}})\index{mg-cond-to-p-nat} $=$ {\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}
\end{tabbing}

\begin{verbatim};; (push-constant (nat 1))

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-state2-step6-effect-routineerror-body \\ \index{call-state2-step6-effect-routinee!rror-body}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
{\rm{find-label}}\,(\=\+{\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\index{untag}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-case-jump-label-list}}\,(\=\+$1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
$1\;+$ {\rm{length}}\,({\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\index{length})\-\index{cond-case-jump-label-list}, \\ 
{\rm{label-cnt-list}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{length}}\,({\rm{def-cond-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-cond-locals})\index{length})\-\index{label-cnt-list})\-)\-)\-)\-\index{get}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label})\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-parameters-code}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\-\index{push-parameters-code})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{c-c}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{verbatim};; (pop-global c-c)

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-state2-step7-effect-routineerror-body \\ \index{call-state2-step7-effect-routinee!rror-body}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-parameters-code}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\-\index{push-parameters-code})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{c-c}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-locals-values-code}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{push-locals-values-code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{5}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{c-c}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{verbatim};; (jump "routineerror")

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-state2-step8-effect-routineerror-body-equals-final \\ \index{call-state2-step8-effect-routinee!rror-body-equals-final}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-locals-values-code}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{push-locals-values-code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{5}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{c-c}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\bf if }{\rm{normal}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{normal} \\ 
{\bf then }{\rm{length}}\,({\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code})\index{length} \\ 
{\bf else }{\rm{find-label}}\,(\=\+{\rm{fetch-label}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\rm{label-alist}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{label-alist})\-\index{fetch-label}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label}$\;${\bf  endif}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{verbatim};;;;;;;;;;;;;;  The Non-Normal/Non-Routineerror Exit Case ;;;;;;;;;;;;;;;

\end{verbatim}\begin{tabbing}{\sc Theorem}:  body-condition-member-make-cond-list \\ \index{body-condition-member-make-cond!-list}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\in$$\;\;\;\;${\rm{cons}}\,(\=\+{\tt{'}}{\tt{normal}}, \\ 
{\rm{cons}}\,(\=\+{\tt{'}}{\tt{routineerror}}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{make-cond-list})\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  leave-not-in-make-cond-list \\ \index{leave-not-in-make-cond-list}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep})\- \\ 
$\rightarrow$$\;\;\;\;$({\tt{'}}{\tt{leave}} $\not\in$ {\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{make-cond-list})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  body-condition-not-leave \\ \index{body-condition-not-leave}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{leave}})\-\-
\end{tabbing}

\begin{verbatim};; checkpoint

\end{verbatim}\begin{tabbing}{\sc Definition}:\index{find-def-conds-induction-hint} \\  
\=\+{\rm{find-def-conds-induction-hint}}\,({\it{index\/}}, {\it{call-conds\/}}, {\it{lc\/}})\index{find-def-conds-induction-hint} \\ 
$=$$\;\;\;\;$\=\+{\bf if }{\it{call-conds\/}} $\simeq\;${{\bf{nil}}}${}$$\;\;${\bf then }{\bf{t}} \\ 
{\bf else }{\rm{find-def-conds-induction-hint}}\,(\=\+{\it{index\/}} $-\;1$, \\ 
{\rm{cdr}}\,({\it{call-conds\/}}), \\ 
$1\;+$ {\it{lc\/}})\-\index{find-def-conds-induction-hint}$\;${\bf  endif}\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-indexed-push-constant-instruction \\ \index{get-indexed-push-constant-instr!uction}
\=\+(({\it{k\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{k\/}} $<$ ($1\;+$ {\rm{length}}\,({\it{call-conds\/}})\index{length}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+({\it{k\/}} $-\;1$) $*$ {\tt{3}}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-conversion}}\,({\it{call-conds\/}}, $1\;+$ {\it{lc\/}}, {\it{cond-list\/}}, {\it{label-alist\/}})\index{cond-conversion}, \\ 
{\it{code\/}})\-)\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,(\=\+{\tt{'}}{\tt{dl}}, \\ 
{\it{k\/}} $+$ {\it{lc\/}}, \\ 
{\bf{nil}}, \\ 
{\rm{list}}\,(\=\+{\tt{'}}{\tt{push-constant}}, \\ 
{\rm{mg-cond-to-p-nat}}\,({\rm{get}}\,({\it{k\/}} $-\;1$, {\it{call-conds\/}})\index{get}, {\it{cond-list\/}})\index{mg-cond-to-p-nat})\-)\-)\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-def-conds-label1 \\ \index{find-def-conds-label1}
\=\+(({\it{index\/}} $<$ ($1\;+$ {\rm{length}}\,({\it{call-conds\/}})\index{length})) $\wedge$ ({\it{index\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{lc\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{find-label}}\,(\=\+{\it{index\/}} $+$ {\it{lc\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-conversion}}\,(\=\+{\it{call-conds\/}}, \\ 
$1\;+$ {\it{lc\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{label-alist\/}})\-\index{cond-conversion}, \\ 
{\it{code\/}})\-)\-\index{find-label} \\ 
$=$$\;\;\;\;$(({\it{index\/}} $-\;1$) $*$ {\tt{3}}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  find-labelp-def-conds \\ \index{find-labelp-def-conds}
\=\+(({\it{index\/}} $<$ ($1\;+$ {\rm{length}}\,({\it{call-conds\/}})\index{length})) $\wedge$ ({\it{index\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{lc\/}} $\not\simeq {\tt{0}}$)) \\ 
$\rightarrow$$\;\;\;\;${\rm{find-labelp}}\,(\=\+{\it{index\/}} $+$ {\it{lc\/}}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-conversion}}\,(\=\+{\it{call-conds\/}}, \\ 
$1\;+$ {\it{lc\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{label-alist\/}})\-\index{cond-conversion}, \\ 
{\it{code\/}})\-)\-\index{find-labelp}\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-conds-index-lessp \\ \index{call-conds-index-lessp}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in$ {\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds}))\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+(\=\+{\rm{index}}\,({\it{x\/}}, {\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\index{index} \\ 
$<$$\;\;\;\;$($1\;+$ {\rm{length}}\,({\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\index{length}))\- \\ 
$=$$\;\;\;\;${\bf{t}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-def-cond-label-find-labelp \\ \index{call-def-cond-label-find-labelp}
\=\+(\=\+({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;$({\it{x\/}} $\in$ {\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds}))\- \\ 
$\rightarrow$$\;\;\;\;$($\neg$ {\rm{find-labelp}}\,(\=\+\=\+{\rm{index}}\,({\it{x\/}}, {\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\index{index} \\ 
$+$$\;\;\;\;$($1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt})\-, \\ 
{\rm{code}}\,({\it{cinfo\/}})\index{code})\-\index{find-labelp})\-
\end{tabbing}

\begin{verbatim};; Because of the above lemma, we know that the body-condition is either in the 
;; def-conds or in the def-local-conds. We consider each case separately.

;; (push-constant (list 'nat condition-index))

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-state2-step6-effect-call-conds-body \\ \index{call-state2-step6-effect-call-c!onds-body}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\in$$\;\;\;\;${\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
{\rm{find-label}}\,(\=\+{\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\index{untag}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-case-jump-label-list}}\,(\=\+$1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
$1\;+$ {\rm{length}}\,({\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\index{length})\-\index{cond-case-jump-label-list}, \\ 
{\rm{label-cnt-list}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{length}}\,({\rm{def-cond-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-cond-locals})\index{length})\-\index{label-cnt-list})\-)\-)\-)\-\index{get}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label})\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-parameters-code}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\-\index{push-parameters-code})\index{length} \\ 
$+$$\;\;\;\;${\tt{6}} \\ 
$+$$\;\;\;\;$(\=\+({\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$) \\ 
$*$$\;\;\;\;${\tt{3}})\- \\ 
$+$$\;\;\;\;${\tt{1}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{get}}\,(\=\+{\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$, \\ 
{\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\-\index{get}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-indexed-pop-global-instruction \\ \index{get-indexed-pop-global-instructi!on}
\=\+(({\it{k\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{k\/}} $<$ ($1\;+$ {\rm{length}}\,({\it{call-conds\/}})\index{length}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+(({\it{k\/}} $-\;1$) $*$ {\tt{3}}) $+$ {\tt{1}}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-conversion}}\,({\it{call-conds\/}}, $1\;+$ {\it{lc\/}}, {\it{cond-list\/}}, {\it{label-alist\/}})\index{cond-conversion}, \\ 
{\it{code\/}})\-)\-\index{get} \\ 
$=$$\;\;\;\;${\tt{'}}{\tt{(}}{\tt{pop-global}}{\tt{ }}{\tt{c-c}}{\tt{)}})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-state2-step7-effect-call-conds-body \\ \index{call-state2-step7-effect-call-c!onds-body}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\in$$\;\;\;\;${\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-parameters-code}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\-\index{push-parameters-code})\index{length} \\ 
$+$$\;\;\;\;${\tt{6}} \\ 
$+$$\;\;\;\;$(\=\+({\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$) \\ 
$*$$\;\;\;\;${\tt{3}})\- \\ 
$+$$\;\;\;\;${\tt{1}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{get}}\,(\=\+{\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$, \\ 
{\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\-\index{get}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-locals-values-code}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{push-locals-values-code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{6}} \\ 
$+$$\;\;\;\;$(\=\+({\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$) \\ 
$*$$\;\;\;\;${\tt{3}})\- \\ 
$+$$\;\;\;\;${\tt{2}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{cons}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{put}}\,(\=\+{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{get}}\,(\=\+{\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$, \\ 
{\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\-\index{get}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat}, \\ 
{\tt{0}}, \\ 
{\rm{list}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat}))\-\index{put})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-indexed-jump-instruction \\ \index{get-indexed-jump-instruction}
\=\+(({\it{k\/}} $\not\simeq {\tt{0}}$) $\wedge$ ({\it{k\/}} $<$ ($1\;+$ {\rm{length}}\,({\it{call-conds\/}})\index{length}))) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{get}}\,(\=\+(({\it{k\/}} $-\;1$) $*$ {\tt{3}}) $+$ {\tt{2}}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-conversion}}\,({\it{call-conds\/}}, $1\;+$ {\it{lc\/}}, {\it{cond-list\/}}, {\it{label-alist\/}})\index{cond-conversion}, \\ 
{\it{code\/}})\-)\-\index{get} \\ 
$=$$\;\;\;\;${\rm{list}}\,({\tt{'}}{\tt{jump}}, {\rm{fetch-label}}\,({\rm{get}}\,({\it{k\/}} $-\;1$, {\it{call-conds\/}})\index{get}, {\it{label-alist\/}})\index{fetch-label}))\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  convert-condition1-index-equivalence \\ \index{convert-condition1-index-equiva!lence}
\=\+(({\rm{length}}\,({\it{def-conds\/}})\index{length} $=$ {\rm{length}}\,({\it{call-conds\/}})\index{length}) $\wedge$ ({\it{x\/}} $\in$ {\it{def-conds\/}})) \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{convert-condition1}}\,({\it{x\/}}, {\it{def-conds\/}}, {\it{call-conds\/}})\index{convert-condition1} \\ 
$=$$\;\;\;\;${\rm{get}}\,({\rm{index}}\,({\it{x\/}}, {\it{def-conds\/}})\index{index} $-\;1$, {\it{call-conds\/}})\index{get})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  nonnormal-cond-conversion-not-normal \\ \index{nonnormal-cond-conversion-not-n!ormal}
\=\+({\tt{'}}{\tt{normal}} $\not\in$ {\it{call-conds\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{convert-condition1}}\,({\it{cc\/}}, {\it{def-conds\/}}, {\it{call-conds\/}})\index{convert-condition1} $\not=$ {\tt{'}}{\tt{normal}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-state2-step8-effect-call-conds-body-equals-final \\ \index{call-state2-step8-effect-call-c!onds-body-equals-final}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\in$$\;\;\;\;${\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-locals-values-code}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{push-locals-values-code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{6}} \\ 
$+$$\;\;\;\;$(\=\+({\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$) \\ 
$*$$\;\;\;\;${\tt{3}})\- \\ 
$+$$\;\;\;\;${\tt{2}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{cons}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{put}}\,(\=\+{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{get}}\,(\=\+{\rm{index}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{def-conds}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-conds})\-\index{index} $-\;1$, \\ 
{\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\-\index{get}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat}, \\ 
{\tt{0}}, \\ 
{\rm{list}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat}))\-\index{put})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\bf if }{\rm{normal}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{normal} \\ 
{\bf then }{\rm{length}}\,({\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code})\index{length} \\ 
{\bf else }{\rm{find-label}}\,(\=\+{\rm{fetch-label}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\rm{label-alist}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{label-alist})\-\index{fetch-label}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label}$\;${\bf  endif}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  get-member-label-cnt-list \\ \index{get-member-label-cnt-list}
\=\+({\it{cc\/}} $\in$ {\it{lst\/}}) \\ 
$\rightarrow$$\;\;\;\;$({\rm{get}}\,({\rm{index}}\,({\it{cc\/}}, {\it{lst\/}})\index{index} $-\;1$, {\rm{label-cnt-list}}\,({\it{lc\/}}, {\rm{length}}\,({\it{lst\/}})\index{length})\index{label-cnt-list})\index{get} $=$ {\it{lc\/}})\-
\end{tabbing}

\begin{verbatim};; This is the case where the condition returned by the call is not in the
;; def-conds list.  It must therefore be in the def-cond-locals list and we
;; return routineerror.
;;
;; (push-constant (list 'nat condition-index))

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-state2-step6-effect-local-conds-body \\ \index{call-state2-step6-effect-local-!conds-body}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not\in$$\;\;\;\;${\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
{\rm{find-label}}\,(\=\+{\rm{get}}\,(\=\+{\rm{untag}}\,({\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\index{untag}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{cons}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{append}}\,(\=\+{\rm{cond-case-jump-label-list}}\,(\=\+$1\;+$ {\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
$1\;+$ {\rm{length}}\,({\rm{call-conds}}\,({\it{stmt\/}})\index{call-conds})\index{length})\-\index{cond-case-jump-label-list}, \\ 
{\rm{label-cnt-list}}\,(\=\+{\rm{label-cnt}}\,({\it{cinfo\/}})\index{label-cnt}, \\ 
{\rm{length}}\,({\rm{def-cond-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-cond-locals})\index{length})\-\index{label-cnt-list})\-)\-)\-)\-\index{get}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label})\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-parameters-code}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\-\index{push-parameters-code})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-state2-step7-effect-local-conds-body \\ \index{call-state2-step7-effect-local-!conds-body}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not\in$$\;\;\;\;${\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-parameters-code}}\,(\=\+{\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals}, \\ 
{\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\-\index{push-parameters-code})\index{length} \\ 
$+$$\;\;\;\;${\tt{4}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{push}}\,(\=\+{\tt{'}}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values})\-\index{push}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc}, \\ 
{\rm{make-cond-list}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{make-cond-list})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-locals-values-code}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{push-locals-values-code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{5}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{c-c}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-state2-step8-effect-local-conds-body-equals-final \\ \index{call-state2-step8-effect-local-!conds-body-equals-final}
\=\+(\=\+({\it{n\/}} $\not\simeq {\tt{0}}$) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resources-inadequatep}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{resources-inadequatep}) \\ 
$\wedge$$\;\;\;\;$({\rm{car}}\,({\it{stmt\/}}) $=$ {\tt{'}}{\tt{proc-call-mg}}) \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statement}}\,({\it{stmt\/}}, {\it{r-cond-list\/}}, {\it{name-alist\/}}, {\it{proc-list\/}})\index{ok-mg-statement} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-def-plistp}}\,({\it{proc-list\/}})\index{ok-mg-def-plistp} \\ 
$\wedge$$\;\;\;\;${\rm{ok-translation-parameters}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}}, {\it{code2\/}})\index{ok-translation-parameters} \\ 
$\wedge$$\;\;\;\;${\rm{ok-mg-statep}}\,({\it{mg-state\/}}, {\it{r-cond-list\/}})\index{ok-mg-statep} \\ 
$\wedge$$\;\;\;\;${\rm{cond-subsetp}}\,({\it{r-cond-list\/}}, {\it{t-cond-list\/}})\index{cond-subsetp} \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{code}}\,({\rm{translate-def-body}}\,({\rm{assoc}}\,({\it{subr\/}}, {\it{proc-list\/}}), {\it{proc-list\/}})\index{translate-def-body})\index{code} \\ 
$=$$\;\;\;\;${\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,({\it{cinfo\/}}, {\it{t-cond-list\/}}, {\it{stmt\/}}, {\it{proc-list\/}})\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\- \\ 
$\wedge$$\;\;\;\;${\rm{user-defined-procp}}\,({\it{subr\/}}, {\it{proc-list\/}})\index{user-defined-procp} \\ 
$\wedge$$\;\;\;\;${\rm{plistp}}\,({\it{temp-stk\/}})\index{plistp} \\ 
$\wedge$$\;\;\;\;${\rm{listp}}\,({\it{ctrl-stk\/}}) \\ 
$\wedge$$\;\;\;\;${\rm{mg-vars-list-ok-in-p-state}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{mg-vars-list-ok-in-p-state} \\ 
$\wedge$$\;\;\;\;${\rm{no-p-aliasing}}\,({\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, {\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{no-p-aliasing} \\ 
$\wedge$$\;\;\;\;${\rm{signatures-match}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, {\it{name-alist\/}})\index{signatures-match} \\ 
$\wedge$$\;\;\;\;${\rm{normal}}\,({\it{mg-state\/}})\index{normal} \\ 
$\wedge$$\;\;\;\;${\rm{all-cars-unique}}\,({\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist})\index{all-cars-unique} \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{resource-errorp}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{resource-errorp}) \\ 
$\wedge$$\;\;\;\;$($\neg$ {\rm{normal}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{normal}) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not=$$\;\;\;\;${\tt{'}}{\tt{routineerror}})\- \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{cc}}\,({\rm{mg-meaning}}\,(\=\+{\rm{def-body}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-body}, \\ 
{\it{proc-list\/}}, \\ 
{\rm{mg-state}}\,(\=\+{\rm{cc}}\,({\it{mg-state\/}})\index{cc}, \\ 
{\rm{make-call-var-alist}}\,(\=\+{\rm{mg-alist}}\,({\it{mg-state\/}})\index{mg-alist}, \\ 
{\it{stmt\/}}, \\ 
{\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\-\index{make-call-var-alist}, \\ 
{\rm{mg-psw}}\,({\it{mg-state\/}})\index{mg-psw})\-\index{mg-state}, \\ 
{\it{n\/}} $-\;1$)\-\index{mg-meaning})\index{cc} \\ 
$\not\in$$\;\;\;\;${\rm{def-conds}}\,({\rm{fetch-called-def}}\,({\it{stmt\/}}, {\it{proc-list\/}})\index{fetch-called-def})\index{def-conds})\-)\- \\ 
$\rightarrow$$\;\;\;\;$(\=\+{\rm{p-step}}\,({\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\rm{length}}\,({\rm{code}}\,({\it{cinfo\/}})\index{code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{push-locals-values-code}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{push-locals-values-code})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{def-locals}}\,({\rm{fetch-called-def}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{fetch-called-def})\index{def-locals})\index{length} \\ 
$+$$\;\;\;\;${\rm{length}}\,({\rm{call-actuals}}\,({\it{stmt\/}})\index{call-actuals})\index{length} \\ 
$+$$\;\;\;\;${\tt{5}}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}})\-\index{mg-meaning})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\tt{'}}{\tt{(}}{\tt{(}}{\tt{c-c}}{\tt{ }}{\tt{(}}{\tt{nat}}{\tt{ }}{\tt{1}}{\tt{)}}{\tt{)}}{\tt{)}}, \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\index{p-step} \\ 
$=$$\;\;\;\;${\rm{p-state}}\,(\=\+{\rm{tag}}\,(\=\+{\tt{'}}{\tt{pc}}, \\ 
{\rm{cons}}\,(\=\+{\it{subr\/}}, \\ 
\=\+{\bf if }{\rm{normal}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{normal} \\ 
{\bf then }{\rm{length}}\,({\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code})\index{length} \\ 
{\bf else }{\rm{find-label}}\,(\=\+{\rm{fetch-label}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\rm{label-alist}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{label-alist})\-\index{fetch-label}, \\ 
{\rm{append}}\,(\=\+{\rm{code}}\,({\rm{translate}}\,(\=\+{\it{cinfo\/}}, \\ 
{\it{t-cond-list\/}}, \\ 
{\it{stmt\/}}, \\ 
{\it{proc-list\/}})\-\index{translate})\index{code}, \\ 
{\it{code2\/}})\-)\-\index{find-label}$\;${\bf  endif}\-)\-)\-\index{tag}, \\ 
{\it{ctrl-stk\/}}, \\ 
{\rm{map-down-values}}\,(\=\+{\rm{mg-alist}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{mg-alist}, \\ 
{\rm{bindings}}\,({\rm{top}}\,({\it{ctrl-stk\/}})\index{top})\index{bindings}, \\ 
{\it{temp-stk\/}})\-\index{map-down-values}, \\ 
{\rm{translate-proc-list}}\,({\it{proc-list\/}})\index{translate-proc-list}, \\ 
{\rm{list}}\,({\rm{list}}\,(\=\+{\tt{'}}{\tt{c-c}}, \\ 
{\rm{mg-cond-to-p-nat}}\,(\=\+{\rm{cc}}\,({\rm{mg-meaning-r}}\,(\=\+{\it{stmt\/}}, \\ 
{\it{proc-list\/}}, \\ 
{\it{mg-state\/}}, \\ 
{\it{n\/}}, \\ 
{\rm{list}}\,(\=\+{\rm{length}}\,({\it{temp-stk\/}})\index{length}, \\ 
{\rm{p-ctrl-stk-size}}\,({\it{ctrl-stk\/}})\index{p-ctrl-stk-size})\-)\-\index{mg-meaning-r})\index{cc}, \\ 
{\it{t-cond-list\/}})\-\index{mg-cond-to-p-nat})\-), \\ 
{\sc{mg-max-ctrl-stk-size}}\index{mg-max-ctrl-stk-size}, \\ 
{\sc{mg-max-temp-stk-size}}\index{mg-max-temp-stk-size}, \\ 
{\sc{mg-word-size}}\index{mg-word-size}, \\ 
{\tt{'}}{\tt{run}})\-\index{p-state})\-\-
\end{tabbing}

\begin{verbatim};; Time for the final proc-call lemma

\end{verbatim}\begin{tabbing}{\sc Theorem}:  call-exact-time-schema-normal-case \\ \index{call-exact-time-schema-normal-c!ase}
\=\+(\=\+({\it{stmt-time\/}} $=$ (\=\+{\it{locals-data-length\/}} \\ 
$+$$\;\;\;\;${\it{locals-length\/}} \\ 
$+$$\;\;\;\;${\it{actuals-length\/}} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\it{body-time\/}} \\ 
$+$$\;\;\;\;${\tt{5}} \\ 
$+$$\;\;\;\;${\tt{1}})\-) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\it{initial\/}}, \\ 
\=\+{\it{locals-data-length\/}} \\ 
$+$$\;\;\;\;${\it{locals-length\/}} \\ 
$+$$\;\;\;\;${\it{actuals-length\/}} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\it{body-time\/}}\-)\-\index{p} \\ 
$=$$\;\;\;\;${\it{state2\/}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p}}\,({\it{state2\/}}, {\tt{6}})\index{p} $=$ {\it{final\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p}}\,({\it{initial\/}}, {\it{stmt-time\/}})\index{p} $=$ {\it{final\/}})\-
\end{tabbing}

\begin{tabbing}{\sc Theorem}:  call-exact-time-schema-nonnormal-case \\ \index{call-exact-time-schema-nonnorma!l-case}
\=\+(\=\+({\it{stmt-time\/}} $=$ (\=\+{\it{locals-data-length\/}} \\ 
$+$$\;\;\;\;${\it{locals-length\/}} \\ 
$+$$\;\;\;\;${\it{actuals-length\/}} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\it{body-time\/}} \\ 
$+$$\;\;\;\;${\tt{5}} \\ 
$+$$\;\;\;\;${\tt{3}})\-) \\ 
$\wedge$$\;\;\;\;$(\=\+{\rm{p}}\,(\=\+{\it{initial\/}}, \\ 
\=\+{\it{locals-data-length\/}} \\ 
$+$$\;\;\;\;${\it{locals-length\/}} \\ 
$+$$\;\;\;\;${\it{actuals-length\/}} \\ 
$+$$\;\;\;\;${\tt{1}} \\ 
$+$$\;\;\;\;${\it{body-time\/}}\-)\-\index{p} \\ 
$=$$\;\;\;\;${\it{state2\/}})\- \\ 
$\wedge$$\;\;\;\;$({\rm{p}}\,({\it{state2\/}}, {\tt{8}})\index{p} $=$ {\it{final\/}}))\- \\ 
$\rightarrow$$\;\;\;\;$({\rm{p}}\,({\it{initial\/}}, {\it{stmt-time\/}})\index{p} $=$ {\it{final\/}})\-
\end{tabbing}

%\item 
\begin{verbatim}


(prove-lemma proc-call-exact-time-lemma (rewrite)
      (IMPLIES
       (AND (NOT (ZEROP N))
	    (NOT (RESOURCES-INADEQUATEP STMT PROC-LIST
					(LIST (LENGTH TEMP-STK)
					      (P-CTRL-STK-SIZE CTRL-STK))))
	    (EQUAL (CAR STMT) 'PROC-CALL-MG)
	    (OK-MG-STATEMENT STMT R-COND-LIST NAME-ALIST PROC-LIST)
	    (OK-MG-DEF-PLISTP PROC-LIST)
	    (OK-TRANSLATION-PARAMETERS CINFO T-COND-LIST STMT PROC-LIST CODE2)
	    (OK-MG-STATEP MG-STATE R-COND-LIST)
	    (COND-SUBSETP R-COND-LIST T-COND-LIST)
	    (EQUAL (CODE (TRANSLATE-DEF-BODY (ASSOC SUBR PROC-LIST)
					     PROC-LIST))
		   (APPEND (CODE (TRANSLATE CINFO T-COND-LIST STMT PROC-LIST))
			   CODE2))
	    (USER-DEFINED-PROCP SUBR PROC-LIST)
	    (PLISTP TEMP-STK)
	    (LISTP CTRL-STK)
	    (MG-VARS-LIST-OK-IN-P-STATE (MG-ALIST MG-STATE)
					(BINDINGS (TOP CTRL-STK))
					TEMP-STK)
	    (NO-P-ALIASING (BINDINGS (TOP CTRL-STK))
			   (MG-ALIST MG-STATE))
	    (SIGNATURES-MATCH (MG-ALIST MG-STATE)
			      NAME-ALIST)
	    (NORMAL MG-STATE)
	    (ALL-CARS-UNIQUE (MG-ALIST MG-STATE))
	    (NOT (RESOURCE-ERRORP (MG-MEANING-R STMT PROC-LIST MG-STATE N
						(LIST (LENGTH TEMP-STK)
						      (P-CTRL-STK-SIZE CTRL-STK)))))
	    (IMPLIES
	     (AND
	      (OK-MG-STATEMENT (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			       (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
			       (MAKE-NAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST))
			       PROC-LIST)
	      (OK-MG-DEF-PLISTP PROC-LIST)
	      (OK-TRANSLATION-PARAMETERS
	       (MAKE-CINFO NIL
			   (CONS
			    '(ROUTINEERROR . 0)
			    (MAKE-LABEL-ALIST (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
					      0))
			   1)
	       (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
	       (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
	       PROC-LIST
	       (CONS
		'(DL 0 NIL (NO-OP))
		(CONS
		 (LIST 'POP* (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		 '((RET)))))
	      (OK-MG-STATEP (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						   (FETCH-CALLED-DEF STMT PROC-LIST))
			    (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))
	      (COND-SUBSETP (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
			    (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))
	      (EQUAL
	       (CODE (TRANSLATE-DEF-BODY (ASSOC (CALL-NAME STMT) PROC-LIST)
					 PROC-LIST))
	       (APPEND
		(CODE
		 (TRANSLATE
		  (MAKE-CINFO NIL
			      (CONS
			       '(ROUTINEERROR . 0)
			       (MAKE-LABEL-ALIST (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
						 0))
			      1)
		  (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
		  (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
		  PROC-LIST))
		(CONS
		 '(DL 0 NIL (NO-OP))
		 (CONS
		  (LIST 'POP* (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		  '((RET))))))
	      (USER-DEFINED-PROCP (CALL-NAME STMT)
				  PROC-LIST)
	      (PLISTP
	       (APPEND
		(REVERSE
		 (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		(MAP-DOWN-VALUES (MG-ALIST MG-STATE)
				 (BINDINGS (TOP CTRL-STK))
				 TEMP-STK)))
	      (LISTP
	       (CONS
		(P-FRAME
		 (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				   STMT CTRL-STK TEMP-STK)
		 (TAG 'PC
		      (CONS SUBR
			    (ADD1
			     (PLUS (LENGTH (CODE CINFO))
				   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				   (LENGTH (CALL-ACTUALS STMT)))))))
		CTRL-STK))
	      (MG-VARS-LIST-OK-IN-P-STATE
	       (MG-ALIST (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						(FETCH-CALLED-DEF STMT PROC-LIST)))
	       (BINDINGS
		(TOP
		 (CONS
		  (P-FRAME
		   (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				     STMT CTRL-STK TEMP-STK)
		   (TAG 'PC
			(CONS SUBR
			      (ADD1
			       (PLUS (LENGTH (CODE CINFO))
				     (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				     (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				     (LENGTH (CALL-ACTUALS STMT)))))))
		  CTRL-STK)))
	       (APPEND
		(REVERSE
		 (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		(MAP-DOWN-VALUES (MG-ALIST MG-STATE)
				 (BINDINGS (TOP CTRL-STK))
				 TEMP-STK)))
	      (NO-P-ALIASING
	       (BINDINGS
		(TOP
		 (CONS
		  (P-FRAME
		   (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				     STMT CTRL-STK TEMP-STK)
		   (TAG 'PC
			(CONS SUBR
			      (ADD1
			       (PLUS (LENGTH (CODE CINFO))
				     (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				     (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				     (LENGTH (CALL-ACTUALS STMT)))))))
		  CTRL-STK)))
	       (MG-ALIST (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						(FETCH-CALLED-DEF STMT PROC-LIST))))
	      (SIGNATURES-MATCH
	       (MG-ALIST (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						(FETCH-CALLED-DEF STMT PROC-LIST)))
	       (MAKE-NAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)))
	      (NORMAL (MAKE-CALL-ENVIRONMENT MG-STATE STMT
					     (FETCH-CALLED-DEF STMT PROC-LIST)))
	      (ALL-CARS-UNIQUE
	       (MG-ALIST (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						(FETCH-CALLED-DEF STMT PROC-LIST))))
	      (NOT
	       (RESOURCE-ERRORP
		(MG-MEANING-R
		 (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
		 PROC-LIST
		 (MAKE-CALL-ENVIRONMENT MG-STATE STMT
					(FETCH-CALLED-DEF STMT PROC-LIST))
		 (SUB1 N)
		 (LIST
		  (LENGTH
		   (APPEND
		    (REVERSE
		     (MG-TO-P-LOCAL-VALUES
		      (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		    (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
				     (BINDINGS (TOP CTRL-STK))
				     TEMP-STK)))
		  (P-CTRL-STK-SIZE
		   (CONS
		    (P-FRAME
		     (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				       STMT CTRL-STK TEMP-STK)
		     (TAG 'PC
			  (CONS SUBR
				(ADD1
				 (PLUS
				  (LENGTH (CODE CINFO))
				  (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				  (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				  (LENGTH (CALL-ACTUALS STMT)))))))
		    CTRL-STK)))))))
	     (EQUAL
	      (P
	       (MAP-DOWN                                              ;; state1
		(MAKE-CALL-ENVIRONMENT MG-STATE STMT
				       (FETCH-CALLED-DEF STMT PROC-LIST))
		PROC-LIST
		(CONS
		 (P-FRAME
		  (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				    STMT CTRL-STK TEMP-STK)
		  (TAG 'PC
		       (CONS SUBR
			     (ADD1
			      (PLUS (LENGTH (CODE CINFO))
				    (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				    (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				    (LENGTH (CALL-ACTUALS STMT)))))))
		 CTRL-STK)
		(APPEND
		 (REVERSE
		  (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		 (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
				  (BINDINGS (TOP CTRL-STK))
				  TEMP-STK))
		(TAG 'PC
		     (CONS
		      (CALL-NAME STMT)
		      (LENGTH
		       (CODE
			(MAKE-CINFO NIL
				    (CONS
				     '(ROUTINEERROR . 0)
				     (MAKE-LABEL-ALIST
				      (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
				      0))
				    1)))))
		(MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))
	       (CLOCK (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
		      PROC-LIST
		      (MAKE-CALL-ENVIRONMENT MG-STATE STMT
					     (FETCH-CALLED-DEF STMT PROC-LIST))
		      (SUB1 N)))
	      (P-STATE                                     ;; state2
	       (TAG 'PC
		    (CONS
		     (CALL-NAME STMT)
		     (IF
		      (NORMAL
		       (MG-MEANING-R
			(DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			PROC-LIST
			(MAKE-CALL-ENVIRONMENT MG-STATE STMT
					       (FETCH-CALLED-DEF STMT PROC-LIST))
			(SUB1 N)
			(LIST
			 (LENGTH
			  (APPEND
			   (REVERSE
			    (MG-TO-P-LOCAL-VALUES
			     (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
			   (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
					    (BINDINGS (TOP CTRL-STK))
					    TEMP-STK)))
			 (P-CTRL-STK-SIZE
			  (CONS
			   (P-FRAME
			    (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
					      STMT CTRL-STK TEMP-STK)
			    (TAG 'PC
				 (CONS SUBR
				       (ADD1
					(PLUS
					 (LENGTH (CODE CINFO))
					 (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					 (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					 (LENGTH (CALL-ACTUALS STMT)))))))
			   CTRL-STK)))))
		      (LENGTH
		       (CODE
			(TRANSLATE
			 (MAKE-CINFO NIL
				     (CONS
				      '(ROUTINEERROR . 0)
				      (MAKE-LABEL-ALIST
				       (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
				       0))
				     1)
			 (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
			 (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			 PROC-LIST)))
		      (FIND-LABEL
		       (FETCH-LABEL
			(CC
			 (MG-MEANING-R
			  (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			  PROC-LIST
			  (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						 (FETCH-CALLED-DEF STMT PROC-LIST))
			  (SUB1 N)
			  (LIST
			   (LENGTH
			    (APPEND
			     (REVERSE
			      (MG-TO-P-LOCAL-VALUES
                               (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
			     (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
					      (BINDINGS (TOP CTRL-STK))
					      TEMP-STK)))
			   (P-CTRL-STK-SIZE
			    (CONS
			     (P-FRAME
			      (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
						STMT CTRL-STK TEMP-STK)
			      (TAG 'PC
				   (CONS SUBR
					 (ADD1
					  (PLUS
					   (LENGTH (CODE CINFO))
					   (DATA-LENGTH
					    (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					   (LENGTH
					    (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					   (LENGTH (CALL-ACTUALS STMT)))))))
			     CTRL-STK)))))
			(LABEL-ALIST
			 (TRANSLATE
			  (MAKE-CINFO NIL
				      (CONS
				       '(ROUTINEERROR . 0)
				       (MAKE-LABEL-ALIST
					(MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
					0))
				      1)
			  (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
			  (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			  PROC-LIST)))
		       (APPEND
			(CODE
			 (TRANSLATE
			  (MAKE-CINFO NIL
				      (CONS
				       '(ROUTINEERROR . 0)
				       (MAKE-LABEL-ALIST
					(MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
					0))
				      1)
			  (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
			  (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			  PROC-LIST))
			(CONS
			 '(DL 0 NIL (NO-OP))
			 (CONS
			  (LIST 'POP* (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
			  '((RET)))))))))
	       (CONS
		(P-FRAME
		 (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				   STMT CTRL-STK TEMP-STK)
		 (TAG 'PC
		      (CONS SUBR
			    (ADD1
			     (PLUS (LENGTH (CODE CINFO))
				   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				   (LENGTH (CALL-ACTUALS STMT)))))))
		CTRL-STK)
	       (MAP-DOWN-VALUES
		(MG-ALIST
		 (MG-MEANING-R
		  (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
		  PROC-LIST
		  (MAKE-CALL-ENVIRONMENT MG-STATE STMT
					 (FETCH-CALLED-DEF STMT PROC-LIST))
		  (SUB1 N)
		  (LIST
		   (LENGTH
		    (APPEND
		     (REVERSE
		      (MG-TO-P-LOCAL-VALUES
		       (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		     (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
				      (BINDINGS (TOP CTRL-STK))
				      TEMP-STK)))
		   (P-CTRL-STK-SIZE
		    (CONS
		     (P-FRAME
		      (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
					STMT CTRL-STK TEMP-STK)
		      (TAG 'PC
			   (CONS SUBR
				 (ADD1
				  (PLUS
				   (LENGTH (CODE CINFO))
				   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				   (LENGTH (CALL-ACTUALS STMT)))))))
		     CTRL-STK)))))
		(BINDINGS
		 (TOP
		  (CONS
		   (P-FRAME
		    (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
				      STMT CTRL-STK TEMP-STK)
		    (TAG 'PC
			 (CONS SUBR
			       (ADD1
				(PLUS (LENGTH (CODE CINFO))
				      (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				      (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
				      (LENGTH (CALL-ACTUALS STMT)))))))
		   CTRL-STK)))
		(APPEND
		 (REVERSE
		  (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
		 (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
				  (BINDINGS (TOP CTRL-STK))
				  TEMP-STK)))
	       (TRANSLATE-PROC-LIST PROC-LIST)
	       (LIST
		(LIST 'C-C
		      (MG-COND-TO-P-NAT
		       (CC
			(MG-MEANING-R
			 (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
			 PROC-LIST
			 (MAKE-CALL-ENVIRONMENT MG-STATE STMT
						(FETCH-CALLED-DEF STMT PROC-LIST))
			 (SUB1 N)
			 (LIST
			  (LENGTH
			   (APPEND
			    (REVERSE
			     (MG-TO-P-LOCAL-VALUES
			      (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
			    (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
					     (BINDINGS (TOP CTRL-STK))
					     TEMP-STK)))
			  (P-CTRL-STK-SIZE
			   (CONS
			    (P-FRAME
			     (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
					       STMT CTRL-STK TEMP-STK)
			     (TAG 'PC
				  (CONS SUBR
					(ADD1
					 (PLUS
					  (LENGTH (CODE CINFO))
					  (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					  (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
					  (LENGTH (CALL-ACTUALS STMT)))))))
			    CTRL-STK)))))
		       (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))))
	       (MG-MAX-CTRL-STK-SIZE) (MG-MAX-TEMP-STK-SIZE) (MG-WORD-SIZE)
	       'RUN))))
       (EQUAL
	(P (MAP-DOWN MG-STATE PROC-LIST CTRL-STK TEMP-STK
		     (TAG 'PC
			  (CONS SUBR (LENGTH (CODE CINFO))))
		     T-COND-LIST)
	   (CLOCK STMT PROC-LIST MG-STATE N))
	(P-STATE
	 (TAG 'PC
	      (CONS SUBR
		    (IF
		     (NORMAL (MG-MEANING-R STMT PROC-LIST MG-STATE N
					   (LIST (LENGTH TEMP-STK)
						 (P-CTRL-STK-SIZE CTRL-STK))))
		     (LENGTH (CODE (TRANSLATE CINFO T-COND-LIST STMT PROC-LIST)))
		     (FIND-LABEL
		      (FETCH-LABEL (CC (MG-MEANING-R STMT PROC-LIST MG-STATE N
						     (LIST (LENGTH TEMP-STK)
							   (P-CTRL-STK-SIZE CTRL-STK))))
				   (LABEL-ALIST (TRANSLATE CINFO T-COND-LIST STMT
							   PROC-LIST)))
		      (APPEND (CODE (TRANSLATE CINFO T-COND-LIST STMT PROC-LIST))
			      CODE2)))))
	 CTRL-STK
	 (MAP-DOWN-VALUES (MG-ALIST (MG-MEANING-R STMT PROC-LIST MG-STATE N
						  (LIST (LENGTH TEMP-STK)
							(P-CTRL-STK-SIZE CTRL-STK))))
			  (BINDINGS (TOP CTRL-STK))
			  TEMP-STK)
	 (TRANSLATE-PROC-LIST PROC-LIST)
	 (LIST
	  (LIST 'C-C
		(MG-COND-TO-P-NAT (CC (MG-MEANING-R STMT PROC-LIST MG-STATE N
						    (LIST (LENGTH TEMP-STK)
							  (P-CTRL-STK-SIZE CTRL-STK))))
				  T-COND-LIST)))
	 (MG-MAX-CTRL-STK-SIZE) (MG-MAX-TEMP-STK-SIZE) (MG-WORD-SIZE)
	 'RUN)))
 ((INSTRUCTIONS
   (ADD-ABBREVIATION @INITIAL
                     (MAP-DOWN MG-STATE PROC-LIST CTRL-STK TEMP-STK
                               (TAG 'PC
                                    (CONS SUBR (LENGTH (CODE CINFO))))
                               T-COND-LIST))
   (ADD-ABBREVIATION @FINAL
    (P-STATE
     (TAG 'PC
      (CONS SUBR
       (IF
        (NORMAL (MG-MEANING-R STMT PROC-LIST MG-STATE N
                              (LIST (LENGTH TEMP-STK)
                                    (P-CTRL-STK-SIZE CTRL-STK))))
        (LENGTH (CODE (TRANSLATE CINFO T-COND-LIST STMT PROC-LIST)))
        (FIND-LABEL
             (FETCH-LABEL (CC (MG-MEANING-R STMT PROC-LIST MG-STATE N
                                            (LIST (LENGTH TEMP-STK)
                                                  (P-CTRL-STK-SIZE CTRL-STK))))
                          (LABEL-ALIST (TRANSLATE CINFO T-COND-LIST STMT
                                                  PROC-LIST)))
             (APPEND (CODE (TRANSLATE CINFO T-COND-LIST STMT PROC-LIST))
                     CODE2)))))
     CTRL-STK
     (MAP-DOWN-VALUES
                    (MG-ALIST (MG-MEANING-R STMT PROC-LIST MG-STATE N
                                            (LIST (LENGTH TEMP-STK)
                                                  (P-CTRL-STK-SIZE CTRL-STK))))
                    (BINDINGS (TOP CTRL-STK))
                    TEMP-STK)
     (TRANSLATE-PROC-LIST PROC-LIST)
     (LIST
      (LIST 'C-C
        (MG-COND-TO-P-NAT (CC (MG-MEANING-R STMT PROC-LIST MG-STATE N
                                            (LIST (LENGTH TEMP-STK)
                                                  (P-CTRL-STK-SIZE CTRL-STK))))
                          T-COND-LIST)))
     (MG-MAX-CTRL-STK-SIZE) (MG-MAX-TEMP-STK-SIZE) (MG-WORD-SIZE)
     'RUN))
   (ADD-ABBREVIATION @STMT-TIME
                     (CLOCK STMT PROC-LIST MG-STATE N))
   (ADD-ABBREVIATION @BODY-TIME
               (CLOCK (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
                      PROC-LIST
                      (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                                             (FETCH-CALLED-DEF STMT PROC-LIST))
                      (SUB1 N)))
   (ADD-ABBREVIATION @STATE1
    (MAP-DOWN
     (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                            (FETCH-CALLED-DEF STMT PROC-LIST))
     PROC-LIST
     (CONS
      (P-FRAME
       (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                         STMT CTRL-STK TEMP-STK)
       (TAG 'PC
        (CONS SUBR
         (ADD1
             (PLUS (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
      CTRL-STK)
     (APPEND
      (REVERSE
         (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
      (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                       (BINDINGS (TOP CTRL-STK))
                       TEMP-STK))
     (TAG 'PC
      (CONS
       (CALL-NAME STMT)
       (LENGTH
        (CODE
         (MAKE-CINFO NIL
          (CONS
           '(ROUTINEERROR . 0)
           (MAKE-LABEL-ALIST (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
                             0))
          1)))))
     (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))))
   (ADD-ABBREVIATION @STATE2
    (P-STATE
     (TAG 'PC
      (CONS
       (CALL-NAME STMT)
       (IF
        (NORMAL
         (MG-MEANING-R
          (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
          PROC-LIST
          (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                                 (FETCH-CALLED-DEF STMT PROC-LIST))
          (SUB1 N)
          (LIST
           (LENGTH
            (APPEND
             (REVERSE
              (MG-TO-P-LOCAL-VALUES
                               (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
             (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                              (BINDINGS (TOP CTRL-STK))
                              TEMP-STK)))
           (P-CTRL-STK-SIZE
            (CONS
             (P-FRAME
              (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                                STMT CTRL-STK TEMP-STK)
              (TAG 'PC
               (CONS SUBR
                (ADD1
                 (PLUS
                   (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
             CTRL-STK)))))
        (LENGTH
         (CODE
          (TRANSLATE
           (MAKE-CINFO NIL
            (CONS
             '(ROUTINEERROR . 0)
             (MAKE-LABEL-ALIST
                             (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
                             0))
            1)
           (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
           (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
           PROC-LIST)))
        (FIND-LABEL
         (FETCH-LABEL
          (CC
           (MG-MEANING-R
            (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
            PROC-LIST
            (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                                   (FETCH-CALLED-DEF STMT PROC-LIST))
            (SUB1 N)
            (LIST
             (LENGTH
              (APPEND
               (REVERSE
                (MG-TO-P-LOCAL-VALUES
                               (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
               (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                                (BINDINGS (TOP CTRL-STK))
                                TEMP-STK)))
             (P-CTRL-STK-SIZE
              (CONS
               (P-FRAME
                (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                                  STMT CTRL-STK TEMP-STK)
                (TAG 'PC
                 (CONS SUBR
                  (ADD1
                   (PLUS
                    (LENGTH (CODE CINFO))
                    (DATA-LENGTH
                                (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                    (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                    (LENGTH (CALL-ACTUALS STMT)))))))
               CTRL-STK)))))
          (LABEL-ALIST
           (TRANSLATE
            (MAKE-CINFO NIL
             (CONS
              '(ROUTINEERROR . 0)
              (MAKE-LABEL-ALIST
                             (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
                             0))
             1)
            (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
            (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
            PROC-LIST)))
         (APPEND
          (CODE
           (TRANSLATE
            (MAKE-CINFO NIL
             (CONS
              '(ROUTINEERROR . 0)
              (MAKE-LABEL-ALIST
                             (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
                             0))
             1)
            (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST))
            (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
            PROC-LIST))
          (CONS
           '(DL 0 NIL (NO-OP))
           (CONS
            (LIST 'POP*
                  (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
            '((RET)))))))))
     (CONS
      (P-FRAME
       (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                         STMT CTRL-STK TEMP-STK)
       (TAG 'PC
        (CONS SUBR
         (ADD1
             (PLUS (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
      CTRL-STK)
     (MAP-DOWN-VALUES
      (MG-ALIST
       (MG-MEANING-R
        (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
        PROC-LIST
        (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                               (FETCH-CALLED-DEF STMT PROC-LIST))
        (SUB1 N)
        (LIST
         (LENGTH
          (APPEND
           (REVERSE
            (MG-TO-P-LOCAL-VALUES
                               (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
           (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                            (BINDINGS (TOP CTRL-STK))
                            TEMP-STK)))
         (P-CTRL-STK-SIZE
          (CONS
           (P-FRAME
            (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                              STMT CTRL-STK TEMP-STK)
            (TAG 'PC
             (CONS SUBR
              (ADD1
               (PLUS
                   (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
           CTRL-STK)))))
      (BINDINGS
       (TOP
        (CONS
         (P-FRAME
          (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                            STMT CTRL-STK TEMP-STK)
          (TAG 'PC
           (CONS SUBR
            (ADD1
             (PLUS (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
         CTRL-STK)))
      (APPEND
       (REVERSE
         (MG-TO-P-LOCAL-VALUES (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
       (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                        (BINDINGS (TOP CTRL-STK))
                        TEMP-STK)))
     (TRANSLATE-PROC-LIST PROC-LIST)
     (LIST
      (LIST 'C-C
       (MG-COND-TO-P-NAT
        (CC
         (MG-MEANING-R
          (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
          PROC-LIST
          (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                                 (FETCH-CALLED-DEF STMT PROC-LIST))
          (SUB1 N)
          (LIST
           (LENGTH
            (APPEND
             (REVERSE
              (MG-TO-P-LOCAL-VALUES
                               (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
             (MAP-DOWN-VALUES (MG-ALIST MG-STATE)
                              (BINDINGS (TOP CTRL-STK))
                              TEMP-STK)))
           (P-CTRL-STK-SIZE
            (CONS
             (P-FRAME
              (MAKE-FRAME-ALIST (FETCH-CALLED-DEF STMT PROC-LIST)
                                STMT CTRL-STK TEMP-STK)
              (TAG 'PC
               (CONS SUBR
                (ADD1
                 (PLUS
                   (LENGTH (CODE CINFO))
                   (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                   (LENGTH (CALL-ACTUALS STMT)))))))
             CTRL-STK)))))
        (MAKE-COND-LIST (FETCH-CALLED-DEF STMT PROC-LIST)))))
     (MG-MAX-CTRL-STK-SIZE) (MG-MAX-TEMP-STK-SIZE) (MG-WORD-SIZE)
     'RUN))
   (ADD-ABBREVIATION @LOCALS-DATA-LENGTH
                  (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
   (ADD-ABBREVIATION @LOCALS-LENGTH
                     (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
   (ADD-ABBREVIATION @ACTUALS-LENGTH
                     (LENGTH (CALL-ACTUALS STMT)))
   PROMOTE
   (DEMOTE 19)
   (DIVE 1 1)
   PUSH TOP PROMOTE
   (CLAIM (EQUAL (P @INITIAL
                    (PLUS @LOCALS-DATA-LENGTH @LOCALS-LENGTH @ACTUALS-LENGTH
                          1 @BODY-TIME))
                 @STATE2)
          0)
   (CLAIM
    (NORMAL
     (MG-MEANING-R
      (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
      PROC-LIST
      (MAKE-CALL-ENVIRONMENT MG-STATE STMT
                             (FETCH-CALLED-DEF STMT PROC-LIST))
      (SUB1 N)
      (LIST
           (PLUS (LENGTH TEMP-STK)
                 (DATA-LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST))))
           (PLUS (P-CTRL-STK-SIZE CTRL-STK)
                 (PLUS 2
                       (LENGTH (DEF-LOCALS (FETCH-CALLED-DEF STMT PROC-LIST)))
                       (LENGTH (DEF-FORMALS (FETCH-CALLED-DEF STMT
                                                              PROC-LIST))))))))
    0)
   (CLAIM (EQUAL @STMT-TIME
                 (PLUS @LOCALS-DATA-LENGTH @LOCALS-LENGTH @ACTUALS-LENGTH 1
                       @BODY-TIME 5 1))
          0)
   (CLAIM (EQUAL (P @STATE2 6) @FINAL) 0)
   (DEMOTE 20 22 23)
   (GENERALIZE ((@ACTUALS-LENGTH ACTUALS-LENGTH)
                (@LOCALS-LENGTH LOCALS-LENGTH)
                (@LOCALS-DATA-LENGTH LOCALS-DATA-LENGTH)
                (@STATE2 STATE2)
                (@STATE1 STATE1)
                (@BODY-TIME BODY-TIME)
                (@STMT-TIME STMT-TIME)
                (@FINAL FINAL)
                (@INITIAL INITIAL)))
   DROP
   (USE-LEMMA CALL-EXACT-TIME-SCHEMA-NORMAL-CASE)
   DEMOTE
   (S-PROP AND OR NOT IMPLIES FIX ZEROP IFF NLISTP)
   (CONTRADICT 23)
   (DIVE 1)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-0-UNWINDING-LEMMA)
   (DIVE 1 1 1 1 1)
   (REWRITE CALL-STATE2-STEP1-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP2-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP3-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP4-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP5-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP6-EFFECT-NORMAL-BODY-EQUALS-FINAL)
   TOP S-PROP
   (DEMOTE 21)
   (DIVE 1 1)
   (REWRITE MG-MEANING-EQUIVALENCE)
   TOP S
   (DEMOTE 16)
   DROP PROVE
   (DIVE 1)
   (REWRITE PROC-CALL-DOESNT-HALT2)
   TOP S S
   (CONTRADICT 22)
   (DIVE 1)
   X
   (= (CAR STMT) 'PROC-CALL-MG 0)
   S
   (DIVE 2 2 2 2 2 2 1)
   (= * T 0)
   TOP DROP PROVE
   (DEMOTE 21)
   (DIVE 1 1)
   (REWRITE MG-MEANING-EQUIVALENCE)
   TOP S
   (DIVE 1)
   (REWRITE PROC-CALL-DOESNT-HALT2)
   TOP S
   (CLAIM (EQUAL @STMT-TIME
                 (PLUS @LOCALS-DATA-LENGTH @LOCALS-LENGTH @ACTUALS-LENGTH 1
                       @BODY-TIME 5 3))
          0)
   (DEMOTE 21)
   (DIVE 1 1 1)
   (REWRITE MG-MEANING-EQUIVALENCE)
   TOP PROMOTE
   (CLAIM (EQUAL (P @STATE2 8) @FINAL) 0)
   (DEMOTE 20 21 23)
   (GENERALIZE ((@ACTUALS-LENGTH ACTUALS-LENGTH)
                (@LOCALS-LENGTH LOCALS-LENGTH)
                (@LOCALS-DATA-LENGTH LOCALS-DATA-LENGTH)
                (@STATE2 STATE2)
                (@STATE1 STATE1)
                (@BODY-TIME BODY-TIME)
                (@STMT-TIME STMT-TIME)
                (@FINAL FINAL)
                (@INITIAL INITIAL)))
   DROP
   (USE-LEMMA CALL-EXACT-TIME-SCHEMA-NONNORMAL-CASE)
   DEMOTE
   (S-PROP AND OR NOT IMPLIES FIX ZEROP IFF NLISTP)
   (CONTRADICT 23)
   (DROP 19 20 21 23)
   (DIVE 1)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-ADD1-3)
   (REWRITE P-0-UNWINDING-LEMMA)
   (DIVE 1 1 1 1 1 1 1)
   (REWRITE CALL-STATE2-STEP1-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP2-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP3-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP4-EFFECT)
   UP
   (REWRITE CALL-STATE2-STEP5-EFFECT)
   UP
   (CLAIM
    (EQUAL
     (CC
      (MG-MEANING
              (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
              PROC-LIST
              (MG-STATE (CC MG-STATE)
                        (MAKE-CALL-VAR-ALIST (MG-ALIST MG-STATE)
                                             STMT
                                             (FETCH-CALLED-DEF STMT PROC-LIST))
                        (MG-PSW MG-STATE))
              (SUB1 N)))
     'ROUTINEERROR)
    0)
   (REWRITE CALL-STATE2-STEP6-EFFECT-ROUTINEERROR-BODY)
   UP
   (REWRITE CALL-STATE2-STEP7-EFFECT-ROUTINEERROR-BODY)
   UP
   (REWRITE CALL-STATE2-STEP8-EFFECT-ROUTINEERROR-BODY-EQUALS-FINAL)
   UP S-PROP
   (CLAIM
    (MEMBER
     (CC
      (MG-MEANING
              (DEF-BODY (FETCH-CALLED-DEF STMT PROC-LIST))
              PROC-LIST
              (MG-STATE (CC MG-STATE)
                        (MAKE-CALL-VAR-ALIST (MG-ALIST MG-STATE)
                                             STMT
                                             (FETCH-CALLED-DEF STMT PROC-LIST))
                        (MG-PSW MG-STATE))
              (SUB1 N)))
     (DEF-CONDS (FETCH-CALLED-DEF STMT PROC-LIST)))
    0)
   (REWRITE CALL-STATE2-STEP6-EFFECT-CALL-CONDS-BODY)
   UP
   (REWRITE CALL-STATE2-STEP7-EFFECT-CALL-CONDS-BODY)
   UP
   (REWRITE CALL-STATE2-STEP8-EFFECT-CALL-CONDS-BODY-EQUALS-FINAL)
   UP S-PROP PROVE PROVE
   (DEMOTE 16 19)
   DROP PROVE
   (REWRITE CALL-STATE2-STEP6-EFFECT-LOCAL-CONDS-BODY)
   UP
   (REWRITE CALL-STATE2-STEP7-EFFECT-LOCAL-CONDS-BODY)
   UP
   (REWRITE CALL-STATE2-STEP8-EFFECT-LOCAL-CONDS-BODY-EQUALS-FINAL)
   TOP S-PROP
   (DEMOTE 16 19)
   DROP PROVE
   (DEMOTE 16 19)
   DROP PROVE
   (DEMOTE 16 19)
   DROP PROVE
   (DIVE 1)
   (REWRITE PROC-CALL-DOESNT-HALT2)
   TOP S
   (CONTRADICT 22)
   (DROP 19 20 22)
   (DIVE 1)
   X
   (= (CAR STMT) 'PROC-CALL-MG 0)
   S
   (DIVE 2 2 2 2 2 2 1)
   (= * F 0)
   TOP S
   (DEMOTE 19)
   (DIVE 1 1 1)
   (REWRITE MG-MEANING-EQUIVALENCE)
   TOP S
   (DIVE 1)
   (REWRITE PROC-CALL-DOESNT-HALT2)
   TOP S
   (CONTRADICT 20)
   (DROP 20)
   (DIVE 1)
   (REWRITE CALL-STEP-INITIAL-TO-STATE2)
   TOP S-PROP
   (DEMOTE 19)
   S-PROP SPLIT
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (DIVE 1)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   TOP S
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   (DIVE 1)
   (REWRITE PROC-CALL-EXACT-TIME-HYPS)
   TOP S)))
\end{verbatim}



\noindent{\sc Event}:   Make the library {\tt{"c-proc-call2"}}.

\addvspace{18pt}

%\end{list}
\printindex
\end{document}
