next up previous contents
Next: Running Tactics 1 Up: The Nuprl Proof Development Previous: Creating a Theorem

Entering the Main Goal of a Theorem

Click \framebox {\rule[-.2ex]{0em}{1.5ex}\sc mouse-right}
on <main proof goal>. Nuprl opens up a term editor window. The window initially looks like:

EDIT main goal of not_over_and
 
\framebox {[term]}
 
 
The main goal is entered in a structural top-down fashion. Enter:





\begin{parbox}
{25em}
{\tt all\hspace{.2em}\lower.2ex\hbox{
\framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
}\hspace{.2em}\ {}
}\end{parbox}




After the \framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
, the display should look like:

EDIT main goal of not_over_and
 
$\forall$[var]:[type]. [prop]
 
 

The [var] slot of the all term is a text slot. The [type], and [prop] slots are term slots. Try clicking \framebox {\rule[-.2ex]{0em}{1.5ex}\sc mouse-left}
at each of of the slots. Notice how you get a text cursor for a text slot and a term cursor for the term slots.

Click \framebox {\rule[-.2ex]{0em}{1.5ex}\sc mouse-left}
on var and enter:





\begin{parbox}
{25em}
{\tt A\hspace{.2em}\lower.2ex\hbox{
\framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
}\hspace{.2em}\ }\end{parbox}




The character $\ulcorner$A$\urcorner$ gets inserted in the variable slot, and on keying \framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
, the cursor moves onto the [type] slot. Enter:





\begin{parbox}
{25em}
{\tt prop\hspace{.2em}\lower.2ex\hbox{
\framebox {\rule[-....
 ...hbox{
\framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
}\hspace{.2em}}\end{parbox}




The term ${\Bbb{P}}${[level]} gets inserted, and a text cursor is positioned at the start of [level].

The display should now look like:

EDIT main goal of not_over_and
 
$\forall$A:${\Bbb{P}}${i}. \framebox {[prop]}
 

The prop you just entered has nothing to do with the prop in the [prop] place-holder. prop happens to be a name for the propositional universe term.

In a similar way, you should now be able to enter a second universal quantifier to give the following situation:

EDIT main goal of not_over_and
 
$\forall$A:${\Bbb{P}}${i}. $\forall$B:${\Bbb{P}}${i}. \framebox {[prop]}
 

Now enter:





\begin{parbox}
{25em}
{\tt iff\hspace{.2em}\lower.2ex\hbox{
\framebox {\rule[-.2...
 ...ox{
\framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
}\hspace{.2em}{}}\end{parbox}




The display should now look like:

EDIT main goal of not_over_and
 
$\forall$A:${\Bbb{P}}${i}. $\forall$B:${\Bbb{P}}${i}. $\neg$(\framebox {[prop]}
$\wedge$ [prop]) $\Longleftrightarrow$ [prop]
 

Note that Nuprl automatically inserted parentheses around the [prop] $\wedge$ [prop] term. We have given Nuprl a precedence for each term that might need parenthesizing. Nuprl uses this precedence information to always automatically insert parentheses as appropriate. Related to precedence, we can optionally give binary infix terms an associativity of either `L' or `R'. `L' means that parentheses should not be used when the term associates to the left. Similarly, `R' suppresses the use of parentheses when the term associates to the right. For example, $\ulcorner$$\wedge$$\urcorner$ associates to the left, so Nuprl displays $(A\ \wedge\ B)\ \wedge C$ as

A $\wedge$ B $\wedge$ C

but $A\ \wedge\ (B\ \wedge\ C)$ as:

A $\wedge$ (B $\wedge$ C)

To continue, with the cursor at the left [prop] of [prop] $\wedge$ [prop], enter:





\begin{parbox}
{25em}
{\tt A\hspace{.2em}\lower.2ex\hbox{
\framebox {\rule[-.2ex]{0em}{1.5ex}\sc return}
}\hspace{.2em}\ }\end{parbox}




to insert the variable term A.

You should now know enough to complete entering the main goal, and correct any mistakes you make. The completed main goal should look like:

EDIT main goal of not_over_and
 
$\forall$A:${\Bbb{P}}${i}. $\forall$B:${\Bbb{P}}${i}. $\neg$(A $\wedge$ B) $\Longleftrightarrow$ $\neg$A $\vee$ $\neg$B
 
If a term won't fit on one line, Nuprl inserts linebreaks and indentation as appropriate. Sometimes a window can be made easier to read by resizing it. Nuprl automatically adjusts the formatting when the window is resized. Occasionally, some subterm is elided, and shown as

(...)

In this event, the elided subterm can often be made visible by widening the window.

Once you have finished entering the main goal, close the main goal window by keying $\langle$C-Z$\rangle$.


next up previous contents
Next: Running Tactics 1 Up: The Nuprl Proof Development Previous: Creating a Theorem
Dora Abdullah, 12/4/97