Return-Path:
Return-Path: <john.harrison-request@uk.ac.cam.cl>
Received: from ted.cs.uidaho.edu by swan.cl.cam.ac.uk with SMTP (PP) to cl
          id <23720-0@swan.cl.cam.ac.uk>; Fri, 1 Nov 1991 23:59:02 +0000
Received: by ted.cs.uidaho.edu (15.11/1.34) id AA11455;
          Fri, 1 Nov 91 14:07:12 pst
Reply-To: info-hol@ted
Sender: info-hol-request@edu.uidaho.cs.ted
Errors-To: info-hol-request@ted.cs.uidaho.edu
Received: from athens.oracorp.com by ted.cs.uidaho.edu (15.11/1.34) id AA11348;
          Fri, 1 Nov 91 14:06:53 pst
Date: Fri, 1 Nov 91 17:07:36 EST
From: garrel@com.oracorp.athens
Received: by athens.oracorp.com (4.0/1.3-ORA Corporation) id AA19266;
          Fri, 1 Nov 91 17:07:36 EST
Message-Id: <9111012207.AA19266@athens.oracorp.com>
To: info-hol@edu.uidaho.cs.ted
Subject: Gee whiz, folks!

I feel as if I had belched (or something worse) in church.

Having delivered myself of that, I will, for the moment, content myself
with one substantive obervation.

Sure enough, when we consider a sequent, Gamma |- A, Gamma is supposed to
be a set and, therefore, we shouldn't do things that depend on the fact that
the underlying implementation of sequents uses a list.  But goals are
different --- they are concrete objects of type term list # term and, hence,
are inherently ordered.  So it makes sense to produce subgoals in a way that
depends on the ordering present in the goal we start with.

What we don't want to do is get tangled up with notions about ordering
when we write proof functions.  The point of the technical concept of
a theorem's achieving a goal seems be precisely to avoid this kind of
problem, by mediating between sequents and goals in just the right way.
So we write the proof function, without getting tangled up with false
notions about ordering, and then invoke achievement to get back to
the level where we're dealing with ordered objects.

Trepidantly yours,

Garrel

