X-Mailer: exmh version 1.5.2 12/21/94
To: info-hol@leopard.cs.byu.edu
Subject: TkHolWorkbench 0.2 available for beta testing
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

Dear fellow HOL users,

In the last few months I have been doing more work
on TkHolWorkbench, which is the graphical 
user interface I am developing for HOL (theoretically in my spare
time, though it takes up most my hours...).  I am not
quite ready to release this as a major version,
mainly because I have not yet updated all the documentation files.
However, I am making it available for anyone willing to act
as a beta-tester, especially with regards to the installation
process.

TkHolWorkbench is available via ftp from:
   
Site: ftp.cl.cam.ac.uk
Directory: hvg/contrib/TkHolWorkbench/TkHolWorkbench.0.2b.tar.gz

At Cambridge it is already installed and may be run by executing
	/usr/groups/hol/interfaces/TkHolWorkbench/bin/tkholhelper

The biggest feature in this version is that TkHolWorkbench
now supports the regular HOL command line interface.  Basically, this
means TkHolWorkbench looks just like your ordinary HOL
session, since it's stdin/stdout behave just like
an ordinary HOL process.  A window will appear as well
displaying your current theory - ignore it if you want, but
sooner or later you just might find yourself
using the functionality it provides.  The start
up time is only a few seconds slower than normal HOL.

You can also run TkHolWorkbench from inside emacs, and it will
behave just like hol90 or hol88 normally would.  For hol90 users,
you incorporate your favourite HOL executable by 
typing
	tkholwb -hol myhol90

Some other additions in this version include:

	-  Installation  is  much  easier  now.  You no longer
	need  to  worry about downloading and compiling Tk and
	Tcl yourself.

	- You can turn the interface on and off using the ML
	functions
		interface_on();
	   and  interface_off();

	- TkTheoryViewer is new and improved, with a nifty
	display of the theory graph.
	
	- There's a whole host of configuration options
	available under the "Options" menu.

       - You can specify a WWW browser to use, and the help
	menus will invoke it.
	
	- There is a new tool - TkDefineType, which gives
	access to Tom Melham's type definition package.
	Defining types has never been so easy....
	
	- The TkTRS package is now better integrated into
	the system.  You can choose which theories you
	want to select from the main theory graph.

I  have  included  the  README  file  below.  As  always,  I'm
interested  in  hearing  any  feedback  from  people  who have
tried it.

Cheers,
Don Syme


		       ...Announcing...
			       
		      TkHolWorkbench 0.2 (beta)

(including TkTheoryViewer, TkHolShell, TkTRS and TkGoalProof)

			  Donald Syme
		    The Computer Laboratory
		     Cambridge University
		email: Donald.Syme@cl.cam.ac.uk


1. TkHolWorkbench

	The first beta release of TkHolWorkbench version 0.2 is now
	available.  
	

1.1. What is it?

	TkHolWorkbench  is  a  set  of  GUI tools and packages
	for  the  HOL theorem prover, implemented using the Tk
	toolkit.   The   TkHolWorkbench   tools   aim   to  be
	lightweight,  user  friendly,  robust  and extensible.
	This,  however,  is  an  early  release, so take these
	promises with a grain of salt.
	
	Part   of  the  idea  of  this  tool  is  to  generate
	feedback  on  what  people really want from a HOL GUI.
	The  aim  is not not to convert everyone over to using
	an  underdeveloped  interface.  If you let me know how
	the  packages  could be changed to actually be useful,
	I'd be glad.

	TkHolWorkbench is available via ftp from:
   
	Site: ftp.cl.cam.ac.uk
	Directory: hvg/contrib/TkHolWorkbench/TkHolWorkbench.0.2b.tgz

	The  file  is  about  2.5  MB  and includes compressed
	versions   of   Tcl   7.3,  Tk  3.6  and  Expect  5.7.
	Uncompressed  it  is  3  MB.  The total amount of disk
	space  used  by an installation will depend on whether
	you  already  have  Expect installed somewhere on your
	system.

1.1. TkHolWorkbench - For New and Old HOL users

	A  GUI  is theoretically a great tool for new users to
	learn  HOL.  This  preliminary  release does not allow
	users   to   access   all   functionality  via  a  GUI
	interface,  but  it  should still lessen the steepness
	of  the  HOL  learning curve. I would be interested to
	hear  feedback  from  any  new  users  who try out the
	system.

	TkHolWorkbench   provides  familiar  functionality  to
	old  HOL  users,  such  as  the regular HOL interface.
	This  means  you  can  switch  to using TkHolWorkbench
	without  changing  the  way you work. You can even run
	TkHolWorkbench from inside emacs.

	I'm  interested,  of course, to hear if TkHolWorkbench
	proves  useful  to  old  HOL  users,  but  I  am  also
	interested  in  hearing  from  you  if  TkHolWorkbench
	turns  out  to  be  *inferior*  to  your  current work
	environment.  So,  let  me  know  if  you  try it out,
	whether  your  experiences  were good or bad. How am I
	going to fix things if I don't get feedback?

1.2. Standard Programs in TkHolWorkbench

	Three     programs     come    standard    with    the
	TkHolWorkbench:    "tkholshell",   "tkholhelper"   and
	"tkholwb". In this release the last two are identical.

	In all the programs the standard HOL interface is
	available just like normal.
	
	tkholshell:
		A  simple  shell interface to HOL, similar
		to what you get if you run HOL from an xterm.

		However, as bonuses you get command history,
		plus you can run multiple shells accessing the one
		HOL session.
		
	tkholhelper/tkholwb:
		This incorporates the following tools:
			TkTheoryViewer
			TkTRS
			TkGoalProof
			TkDefineType
			TkHolShell
		

1.3. TkHolWorkbench - Flexible architecture

	The  architecture  of TkHolWorkbench is of independent
	but  cooperating  packages.  A  collection of packages
	run  together  forms a program. Users may, without too
	much  trauma,  write  their  own  packages and add run
	them  in  combination  with  either  TkTheoryViewer or
	TkTheoryEditor.   An  example  (skeleton)  package  is
	included with this release to help enable this.

	Each  of  the  "programs"  described above is really a
	simple   shell  script  which  combines  a  number  of
	"packages"  (Tcl  code libraries) and creates some top
	windows.  Thus,  it  is  trivial to add new libraries,
	specify  extra  top  windows, stop some libraries from
	ever  being  looked  at and so on. For example, if you
	decide  you  don't like TkGoalProof, and never perform
	goal directed proofs anyway, you can run:

		tkholwb -stoppackage TkGoalProof

	and the package won't be loaded. To include your own 
	package is as simple as:

		tkholwb -package ~/MyPackage -win MyPackageWin

	I   am  open  to  offers  from  people  interested  in
	becoming  co-developers  of  TkHolWorkbench. I am also
	interested  in  hearing  as  much feedback as possible
	on  what  people  find  useful in the different tools,
	as well as bugs and suggestions of improvements.
	
2. More On The TkHolWorkbench Packages	

2.1. TkTheoryViewer

	TkTheoryViewer  is  a  GUI  theory browser for HOL. It
	is  most  useful  for investigating theory hierarchies
	and  displaying  often  used  theories  for reference.
	TkTheoryViewer  can  display the theorems, definitions
	and   axioms   for   any   theories  loaded  into  the
	underlying  HOL session.  
	
	For  hol88  users, theorems can be displayed in either
	plain  text  or  rich text formats. Plain text is like
	the  normal  HOL output format, whereas rich text uses
	symbols,  fonts  and  colours to display theorems in a
	more readable fashion.	    
	
	TkTheoryViewer  works  with both hol88 and hol90. Rich
	text  formatting  of  theorems  is only available with
	hol88  systems  built  with  AKCL, but will eventually
	be available with all HOL systems.

2.2. TkTRS (TRS = Theorem Retrieval System)
	
	TkHolWorkbench  also  comes  with  the  TkTRS package,
	which  is  an  interface  to Richard Boulton's Theorem
	Retrieval  System  (trs)  library. TkTRS is a tool for
	searching  across  theories  for  useful  theorems and
	definitions.  The  results  are  displayed  in  result
	windows  and,  in  hol88,  the  theorems  may again be
	displayed rich text format.
	
	TkTRS  works  with  both  hol88  and  hol90. The TkTRS
	source  code  includes a rough port of the trs library
	to hol90.

	See  USAGE.tkholhelper  for  details  on how to run
	tkholhelper.  In  general  it  will  be a matter of
	running
	
		.../TkHolWorkbench/bin/tkholhelper -hol <hol88 | hol90>

2.3. TkHolShell
	Well, try it and see...

2.3. TkGoalProof
	Well, try it and see...

2.3. TkDefineType
	Well, try it and see...



3. AVAILABILITY

	The  latest  versions  of  all  the  programs  in  the
	TkHolWorkbench suite can always be found at:
	
		ftp://ftp.cl.cam.ac.uk/hvg/...
		
	You  will  need  a  copy  of  either hol88 or hol90 on
	your  system.  If  you  are  using  a private (dumped)
	copy    of    hol90   incorporating   your   favourite
	libraries,  you  may  use that with the TkHolWorkbench
	programs  by  specifying  the  executable  ith  a -hol
	switch on the command line. See USAGE fo more details.

4. INSTALLATION

	See ./INSTALL for details.

5. USAGE

	See ./USAGE.* for more details.

	There are loads of command line switches that can be given
	to control how TkHolWorkbench progams startup.  Hol90
	users will need to provide the flag

		tkholwb -hol hol90	
		tkholshell -hol hol90
		tkholhelper -hol hol90

	Here hol90 can be your own hol90 executable, with
	your favourite libraries loaded in.
	
6. BUGS AND PROBLEMS

	This  is  an  early  release.  There will be problems,
	especially  with  different  configurations and window
	managers.  Mail  me with problems you have.

	I  am  doing  a  3 year PhD. at Cambridge, and plan to
	maintain  these  tools  and extend them during my time
	here.  This is not my major PhD. work, however, merely
	a time consuming sidetrack.


7. SUGGESTIONS, FUTURE WORK AND PATCHES

	I  am  keen to involve others, particularly in writing
	new  packages  to  add  to  the  TkHolWorkbench suite.
	Ultimately  I  would  like to see interface components
	come  standard  with  each  HOL library/extension. In
	the modern world good work deserves a good interface.

	I   am   also   interested   in   supporting   similar
	interfaces  to  other  theorem proving systems. Nearly
	all  the  TkHol  code  should  be  portable  to  other
	theorem provers.  A pilot project with Isabelle might
	be the likely first step (any offers of help??)





-----------------------------------------------------------------------------
At the lab:							     At home:
The Computer Laboratory                                      c/o Trinity Hall
New Museums Site                                                      CB2 1TJ
University of Cambridge                                         Cambridge, UK
CB4 3BD
Cambridge, UK
-----------------------------------------------------------------------------

Return-Path: <aagaard@cs.ubc.ca>
Delivery-Date: 
Received: from grolsch.cs.ubc.ca (actually grolsch-2.cs.ubc.ca !OR! aagaard@cs.ubc.ca) 
          by gannet.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Wed, 8 Mar 1995 05:44:01 +0000
Received: from troy.cs.ubc.ca (aagaard@troy.cs.ubc.ca [142.103.11.19]) 
          by grolsch.cs.ubc.ca (8.6.10/8.6.9) with SMTP id VAA23834 
          for <Donald.Syme@cl.cam.ac.uk>; Tue, 7 Mar 1995 21:33:39 -0800
Message-Id: <199503080533.VAA23834@grolsch.cs.ubc.ca>
From: aagaard@troy.cs.ubc.ca (Mark Aagaard)
Date: Tue, 7 Mar 1995 21:33:37 -0800
In-Reply-To: Donald Syme <Donald.Syme@cl.cam.ac.uk> "TkHolWorkbench 0.2 available for beta testing" (Mar 7, 10:33pm)
Reply-To: Mark Aagaard <aagaard@cs.ubc.ca>
Organization: University of British Columbia, Computer Science
X-Address: Vancouver, BC V6T 1Z4
X-Phone: 604/822-5401
X-Fax: 604/822-5485
X-Mailer: Mail User's Shell (7.2.4 2/2/92)
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Subject: Re: TkHolWorkbench 0.2 available for beta testing

Donald -

You may not remember me, but we met at the HOL workshop in
Vancouver.  At that time I was at Cornell.  I'm now post-doc-ing
here at UBC.

I haven't picked  up TkHolWorkbench yet, but am thinking about
it.  I'm not currently using HOL; I'm actually more interested
in your experiences with tcl/Tk.  Can you quickly summarize the
good and bad points of doing a significant development
(which TkHolW certainly appears to be) using tcl/Tk?  We're
considering building a graphical interface to the Voss verification
system.  Voss  uses an ML-top loop interface in the HOL style,
but is oriented towards symbolic simulation more than
theorem-proving.  But there may be enough similarities to the
basics of the HOL interface that we could build on (and hopefully
contribute to) you work.

 -mark aagaard
  aagaard@cs.ubc.ca

Return-Path: <Mike.Gordon@cl.cam.ac.uk>
Delivery-Date: 
Received: from skua.cl.cam.ac.uk (user mjcg (rfc931)) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) to cl; Wed, 8 Mar 1995 08:30:34 +0000
Received: by skua.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA09442;
          Wed, 8 Mar 95 08:30:15 GMT
Date: Wed, 8 Mar 95 08:30:15 GMT
From: Mike.Gordon@cl.cam.ac.uk
Message-Id: <9503080830.AA09442@skua.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
In-Reply-To: <"swan.cl.cam.:171540:950307223410"@cl.cam.ac.uk> (message from Donald Syme on Tue, 07 Mar 1995 22:33:50 +0000)
Subject: Re: TkHolWorkbench 0.2 available for beta testing


Hi,

When I tried: /usr/groups/hol/interfaces/TkHolWorkbench/bin/tkholhelper I got HOL90. 
How do I get the HOL88 version?

Mike
X-Mailer: exmh version 1.5.2 12/21/94
To: Mike.Gordon@cl.cam.ac.uk
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Wed, 08 Mar 1995 08:30:15 GMT."
             <9503080830.AA09442@skua.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------


> 
> Hi,
> 
> When I tried: /usr/groups/hol/interfaces/TkHolWorkbench/bin/tkholhelper I got HOL90. 
> How do I get the HOL88 version?
> 
> Mike

Assuming "hol88" is on your path (not just aliased)

/usr/groups/hol/interfaces/TkHolWorkbench/bin/tkholhelper -hol hol88

Don


Return-Path: <Mike.Gordon@cl.cam.ac.uk>
Delivery-Date: 
Received: from skua.cl.cam.ac.uk (user mjcg (rfc931)) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) to cl; Wed, 8 Mar 1995 14:37:15 +0000
Received: by skua.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA09665;
          Wed, 8 Mar 95 14:37:04 GMT
Date: Wed, 8 Mar 95 14:37:04 GMT
From: Mike.Gordon@cl.cam.ac.uk
Message-Id: <9503081437.AA09665@skua.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Subject: ?!


Just noticed that "?!" doesn't print nicely ...

Mike
X-Mailer: exmh version 1.5.2 12/21/94
To: Mike.Gordon@cl.cam.ac.uk
cc: 
Subject: Re: ?! 
In-reply-to: Your message of "Wed, 08 Mar 1995 14:37:04 GMT."
             <9503081437.AA09665@skua.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> 
> Just noticed that "?!" doesn't print nicely ...
> 
> Mike


The next version of Tk has subscripts, which I'll use for this.

Don

Return-Path: <benjamin@inmos.co.uk>
Delivery-Date: 
Received: from daisy (actually daisy.inmos.co.uk !OR! benjamin@inmos.co.uk) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Thu, 9 Mar 1995 12:23:56 +0000
From: benjamin@inmos.co.uk
Received: by daisy id MAA14574; Thu, 9 Mar 1995 12:23:03 GMT
Date: Thu, 9 Mar 1995 12:23:10 +0000
Message-Id: <20654.9503091223@barolo.inmos.co.uk>
To: Donald.Syme@cl.cam.ac.uk
Subject: Re: TkHolWorkbench 0.2 available for beta testing
Cc: benjamin@inmos.co.uk
X-Sun-Charset: US-ASCII
content-length: 712

Hi,

  I've just installed TkHolWorkbench 0.2 (beta). The only problem I had was that I needed
to build tcl/tk/expect using gcc. To get configure to do this I had to set the environment
variable CC to gcc [trivial once one works out what to do :-) but probably worth a comment 
in the INSTALL file]. 

How much use I make of it depends on the trade off between the benefits provided by the I/F 
v the computing resources it uses [machines running hol never have enough CPU power or memory].
Version 0.1 lost that battle but at first glance this looks like a significant improvement.
I especially like being able to execute it from within emacs [ almost essential?]

          Nice work,
                 Mike.
 
X-Mailer: exmh version 1.5.2 12/21/94
To: benjamin@inmos.co.uk
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Thu, 09 Mar 1995 12:23:10 GMT."
             <20654.9503091223@barolo.inmos.co.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> Hi,
> 
>   I've just installed TkHolWorkbench 0.2 (beta). The only problem I had was that I needed
> to build tcl/tk/expect using gcc. To get configure to do this I had to set the environment
> variable CC to gcc [trivial once one works out what to do :-) but probably worth a comment 
> in the INSTALL file]. 
> 

Thanks for reporting this.  I've made a note as you suggested.

> How much use I make of it depends on the trade off between the benefits provided by the I/F 
> v the computing resources it uses [machines running hol never have enough CPU power or memory].
> Version 0.1 lost that battle but at first glance this looks like a significant improvement.
> I especially like being able to execute it from within emacs [ almost essential?]
> 
>           Nice work,
>                  Mike.
>  

Thanks, on three accounts: for trying it out, for reporting back, and for 
the complement.  I agree that the first version would not have come
up to scratch, and I'm very pleased that things are getting closer
to paying off in this version.  It's early days yet, after all.

I'm interested in knowing some things about your work if you have time
to answer some questions.  Collecting this information from my users
will help me plan my future work.  No need to rush in answering though!  I'll
expand this questionnaire and include it in the distribution if you don't
have time to answer it now.

Cheers,
Don Syme

Questionnaire for users of "TkHolWorkbench" and HOL:

	- How long have you been using HOL?  Do you regard yourself as a "beginner",
	  "in-the-middle" or "advanced" HOL user?

	- What HOL definitional tools and theories do you commonly use?

		- Tom Melham's type definition package 

		- hol90 mutually recursive or nested recursive types package	

		- Melham's inductive definitions pacakge?

		- Theory libraries? (more_arithmetic, arith, sets, bags, reals, word etc.)

		- Others

	- What HOL proof tools do you commonly use?

		- hol88 style backward proof?

		- hol90 backward proof (with multiple proofs on the proof stack)?

		- Window proof?

		- Forward proof?

		- Your own proof styles?

		- "ARITH_CONV", "TAUT_PROVE"?
	
		- Utilities from the "pairs" library?

		- Others?

	- Is the richtext pretty printing of theorems useful to you, or
	  would it be if you used hol88?
		- in day to day proof work

		- in proof presentation in a report or in project
		documentation?

	- How do you structure your HOL work environment?  For instance:
		- Do you (like most people) cut and paste from emacs
		to a HOL session?

		- Is proof documentation a major consideration for you?
		  If so, what techniques do you use? (e.g. mweb)

		- Do you use "hol90" libraries to structure your own work?

	- Are you working with an embedded application language?  If so:
		- do you use a shallow or deep embedding?  

		- do you parse/pretty-print the language to and from
		HOL terms?  If you could parse your language at the
		interface level, would that be of much help to you?

		- would you like an interface which presented your embedded
		language in a different fashion to teletext, e.g. using
		different fonts, symbols and so on?  Would this be
		useful or distracting?

	- Do you have any comments to make about TkHolWorkbench? 

		- Which TkHolWorkbench tools do you use?

		- Can you see yourself being tempted to write new tools
		for TkHolWorkbench?  If this could be done in ML instead
		of Tcl, would this make a difference?

	- And finally, if you could have whatever you wanted in an interface to HOL,
	what would it be?!  


Cheers,
Don Syme

				
-----------------------------------------------------------------------------
At the lab:							     At home:
The Computer Laboratory                                      c/o Trinity Hall
New Museums Site                                                      CB2 1TJ
University of Cambridge                                         Cambridge, UK
CB4 3BD
Cambridge, UK
-----------------------------------------------------------------------------

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 14 Mar 1995 12:16:16 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA21193;
          Tue, 14 Mar 95 12:16:12 GMT
Date: Tue, 14 Mar 95 12:16:12 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503141216.AA21193@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: tkhol-wonder

So how do I get it to run HOL88 rather than HOL90?

Running it with -help doesn't provide much in the way of information. 

Michael.
X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: tkhol-wonder 
In-reply-to: Your message of "Tue, 14 Mar 1995 12:16:12 GMT."
             <9503141216.AA21193@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> So how do I get it to run HOL88 rather than HOL90?
> 

-hol <hol-executable>

> Running it with -help doesn't provide much in the way of information. 
> 

Next version will incoporate this - thanks!

> Michael.

Don



Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 14 Mar 1995 14:35:20 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA21296;
          Tue, 14 Mar 95 14:35:12 GMT
Date: Tue, 14 Mar 95 14:35:12 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503141435.AA21296@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: tkholwb error

I was going to try and send it to you using your dialog box with the
nice "Mail to Donald.Syme.." button and all, but this didn't work
either. 

Anyway, when I started up 

tkholwb -hol hol88

The error was as appended below.  When I dismiss it, the program
disappears entirely. 

Error was:

evaluation failed     lisp error
evaluation failed     load -- /usr/groups/hol/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/theory_notify

hol88 # 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
() : void


    while executing
"error $errval"
    invoked from within
"if {$error} { 
	    error $errval
	}"
    invoked from within
"if {$run} {
       	global expect_out
	set return 0
	set error 0
	TkHolSlave::SIGINT_effects_slave
	incr busy
	set old_log_user [log_user]
	log_user [ ..."
    (procedure "ML" line 102)
    invoked from within
"ML -toplevel 1 "loadt [ml_string $HolTheoryNotification_library/theory_notify]""
    invoked from within
"if [hol88] {
	    ML -toplevel 1 "loadt [ml_string $HolTheoryNotification_library/theory_notify]"
	}"
    (procedure "HolTheoryNotification::InitialisePackage" line 3)
    invoked from within
"[set package]::InitialisePackage"
    invoked from within
"if [llength [info commands [set package]::InitialisePackage]]==1 {
    	        [set package]::InitialisePackage
	    }"
    ("foreach" body line 13)
    invoked from within
"foreach package $packagenames {
	    if {[info exists busy] && !$raised_busy} {
	        incr busy
		set raised_busy 1
	    } 
	    set feedback [list ..."

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Wed, 15 Mar 1995 12:59:01 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA22307;
          Wed, 15 Mar 95 12:58:53 GMT
Date: Wed, 15 Mar 95 12:58:53 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503151258.AA22307@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: more on tkholwb

When loading an ML file, and changing directory, an annoying little
window appears just to tell you that the new directory is being read.
(This doesn't happen when doing the analogous thing when loading a
theory.)

Speaking of changing directories, it would be nice to be able to
change the default starting directory if you happened to start tkholwb
in a silly place. 

(Gak!  Unless you've changed it in the course of me writing this mail
message, it doesn't seem to always happen.  Now, when I go into a new
directory, it does just use a status line message, even if it is on
the main window and not the file open window.)

Another thing I've just noticed:  when I hide my theorems and
definitions windows by clicking on the triangles, there is a funny gap
left after the window titles (corresponding perhaps to the space taken
up by the window that's just been hidden).  This looks a bit ugly. 

Thanks for the note on my previous problem.  Things work fine with
HOL2.02

Michael.
X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: more on tkholwb 
In-reply-to: Your message of "Wed, 15 Mar 1995 12:58:53 GMT."
             <9503151258.AA22307@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> When loading an ML file, and changing directory, an annoying little
> window appears just to tell you that the new directory is being read.
> (This doesn't happen when doing the analogous thing when loading a
> theory.)
> 

Hmm.. I can see why this might happen (and why it gives status on the
wrong window too).  I've fixed things, more or less, and the
fix should appear when I next reinstall here (in a week or so).

> Speaking of changing directories, it would be nice to be able to
> change the default starting directory if you happened to start tkholwb
> in a silly place. 
> 

Yep, good point.  Do you know if there's a hol88 function to do
a cd?

> (Gak!  Unless you've changed it in the course of me writing this mail
> message, it doesn't seem to always happen.  Now, when I go into a new
> directory, it does just use a status line message, even if it is on
> the main window and not the file open window.)
> 
> Another thing I've just noticed:  when I hide my theorems and
> definitions windows by clicking on the triangles, there is a funny gap
> left after the window titles (corresponding perhaps to the space taken
> up by the window that's just been hidden).  This looks a bit ugly. 
> 

I'll come up and look at this, since I can't get it to happen
on my screen.  It might be window manager related.

> Thanks for the note on my previous problem.  Things work fine with
> HOL2.02
> 
> Michael.

Thanks for the bug reports.

Don

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Wed, 15 Mar 1995 15:00:08 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA22373;
          Wed, 15 Mar 95 14:59:54 GMT
Date: Wed, 15 Mar 95 14:59:54 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503151459.AA22373@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: more tkholwb comments

If you want to come up to TP6 to have a look at my tkholwb session I
can show you that strangeness with the Axiom/Theorem/Defn triangles.

Anyway, some comments on the Proof window:

It would be nice to have some form of history in the Next tactic
window.

Also, it would be nice to have the windows within the window resize if
the containing window was resized up.  In particular, the presentation
of the goal can be limited if the window is too small for it. 

How about being able to enter one's own tactics into the pull down
menus?  That'd save lots of typing for one.  (Allow the user to give
the last tactic a name and an entry in the menu perhaps.)

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Wed, 15 Mar 1995 15:00:30 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA22381;
          Wed, 15 Mar 95 15:00:21 GMT
Date: Wed, 15 Mar 95 15:00:21 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503151500.AA22381@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: more feedback (you're going to wish you never asked)

Could you make Load ML do a loadf by default (or at least allow it to
be changed from loadt)?

As it stands, you wait longer because HOL has to muck about doing all
of its pretty printing when a line of dots would be just fine,
particularly for those really enormous theorems and theorem lists. 

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Wed, 15 Mar 1995 15:16:54 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA22411;
          Wed, 15 Mar 95 15:16:50 GMT
Date: Wed, 15 Mar 95 15:16:50 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503151516.AA22411@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: you're going to hate me for all this

You can't move the cursor in a TkHolShell with the mouse.  

Instead, it selects text, but without going into inverse video which
means that the text is entirely blacked out.

Also, the emacs bindings seem to think that one line is the entire
input to date, even if the input has been separated into lines by me
hitting return.  (Things like c-a for beginning of line and c-e for
end of line.)

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Wed, 15 Mar 1995 15:28:32 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA22432;
          Wed, 15 Mar 95 15:28:08 GMT
Date: Wed, 15 Mar 95 15:28:08 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503151528.AA22432@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: actually...

I seem to have confused the TkHolShell well and truly.  However, it
seems that multi-line inputs require multiple c-<RET>s (one for each
line of input).  

It doesn't look clear that its necessarily executing all of the
required input in this situation (maybe it's just looking at the first
line?)

Michael.

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Wed, 15 Mar 1995 15:33:31 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA22443;
          Wed, 15 Mar 95 15:33:24 GMT
Date: Wed, 15 Mar 95 15:33:24 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503151533.AA22443@guillemot.cl.cam.ac.uk>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Subject: Re: more on tkholwb
In-Reply-To: <"swan.cl.cam.:095330:950315141727"@cl.cam.ac.uk>
References: <9503151258.AA22307@guillemot.cl.cam.ac.uk> <"swan.cl.cam.:095330:950315141727"@cl.cam.ac.uk>

>>>>> "Donald" == Donald Syme <Donald.Syme@cl.cam.ac.uk> writes:

>> Speaking of changing directories, it would be nice to be able to
>> change the default starting directory if you happened to start
>> tkholwb in a silly place.

> Yep, good point.  Do you know if there's a hol88 function to do a
> cd?

Not as far as I know actually.  It's a major pain.  (You can do things
like system `cd ..`;; but this has no effect on where the program
thinks it is.)  Does your interface actually make use of this
information? 

Oh yes, a new error:

Error: Relocatable blocks exhausted.
       Currently, 4553 pages are allocated.
       Use ALLOCATE-RELOCATABLE-PAGES to expand the space.
Fast links are on: do (use-fast-links nil) for debugging
Error signalled by FUN%6597%125.
Backtrace:  > funcall > lambda > FUN%6597%125
evaluation failed     lisp error

(Clearly it's an internal lisp error, but I've never had it occur
while doing the same proof in a normal session.)

Thanks,
Michael


X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: more tkholwb comments 
In-reply-to: Your message of "Wed, 15 Mar 1995 14:59:54 GMT."
             <9503151459.AA22373@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

> If you want to come up to TP6 to have a look at my tkholwb session I
> can show you that strangeness with the Axiom/Theorem/Defn triangles.
> 
> Anyway, some comments on the Proof window:
> 
> It would be nice to have some form of history in the Next tactic
> window.

In the long term I might experiment with representing
the proof at a finer level, allowing backtracking and forward-tracking,
and replaying old proofs and so on.  The biggest issue here is
how to save and re-parse proofs.

In the short term, a simple history would be really useful, wouldn't
it?  Good idea.  

> 
> Also, it would be nice to have the windows within the window resize if
> the containing window was resized up.  In particular, the presentation
> of the goal can be limited if the window is too small for it. 
> 

Yes, the geometry management isn't very good in that window.  

> How about being able to enter one's own tactics into the pull down
> menus?  That'd save lots of typing for one.  (Allow the user to give
> the last tactic a name and an entry in the menu perhaps.)
> 

Now that you can do - see "HOL Tactics" under the Options menu.

Thanks again,
Don

P.S. and now I'll read all your other emails....




X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: more feedback (you're going to wish you never asked) 
In-reply-to: Your message of "Wed, 15 Mar 1995 15:00:21 GMT."
             <9503151500.AA22381@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> Could you make Load ML do a loadf by default (or at least allow it to
> be changed from loadt)?
> 
> As it stands, you wait longer because HOL has to muck about doing all
> of its pretty printing when a line of dots would be just fine,
> particularly for those really enormous theorems and theorem lists. 
> 
> Michael.

Another good point (what useful things users are!).  A check box
on the load-file box would do the trick, wouldn't it?  The
value would default to the previous value set.

Don

X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: you're going to hate me for all this 
In-reply-to: Your message of "Wed, 15 Mar 1995 15:16:50 GMT."
             <9503151516.AA22411@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> You can't move the cursor in a TkHolShell with the mouse.  
> 
> Instead, it selects text, but without going into inverse video which
> means that the text is entirely blacked out.
> 
> Also, the emacs bindings seem to think that one line is the entire
> input to date, even if the input has been separated into lines by me
> hitting return.  (Things like c-a for beginning of line and c-e for
> end of line.)
> 
>I seem to have confused the TkHolShell well and truly.  However, it
>seems that multi-line inputs require multiple c-<RET>s (one for each
>line of input).  
>
>It doesn't look clear that its necessarily executing all of the
>required input in this situation (maybe it's just looking at the first
>line?)

Yes, TkHolShell is pretty flaky.  I didn't really go back through and
redo it properly since putting in the command line processing,
since it is no longer playing such a central role in the system (e.g.
you can now use tkholwb from inside emacs).

Multi-line inputs should work OK, but they won't work
like your emacs "shell" buffer.  I'll come up now and have a look at what's
causing the confusion (or bugs!)

Thanks yet again,
Don






X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: more on tkholwb 
In-reply-to: Your message of "Wed, 15 Mar 1995 15:33:24 GMT."
             <9503151533.AA22443@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

> 
> Not as far as I know actually.  It's a major pain.  (You can do things
> like system `cd ..`;; but this has no effect on where the program
> thinks it is.)  Does your interface actually make use of this
> information? 
> 

No, but to effectively change the default working directory
the HOL session should also change where it stores files for
newly created theories.  One can fudge this by calling a theory
"../../mydir/mytheory" but that is just a hack!  The theory
name represents something more substantial in the logic.

> Oh yes, a new error:
> 
> Error: Relocatable blocks exhausted.
>        Currently, 4553 pages are allocated.
>        Use ALLOCATE-RELOCATABLE-PAGES to expand the space.
> Fast links are on: do (use-fast-links nil) for debugging
> Error signalled by FUN%6597%125.
> Backtrace:  > funcall > lambda > FUN%6597%125
> evaluation failed     lisp error
> 
> (Clearly it's an internal lisp error, but I've never had it occur
> while doing the same proof in a normal session.)
> 

Ah.. now that's quite serious.  I'd like to see that and try to
recreate it under different circumstances.  It might be any of
the following:
	- too many goalstacks (I don't nullify them and thus
lisp never gets to garbage collect them)
	- the way I pretty-print theorems (e.g. would it still happen
with rich text off?  With some alternative ways of hacking up
theorem printing?)  I do this nasty hack where I grab the contents
of the pretty-print buffer into a temporary string, which 
might chew through the memory.  All of this is a fair bit nicer
in hol90.
	- the way I do string concatenation (much faster than hol88's
normal concatl).

I'll see you about these tomorrow.  You never seem to be in when I go
up to visit!

Don







Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 16 Mar 1995 12:47:28 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA23269;
          Thu, 16 Mar 95 12:45:30 GMT
Date: Thu, 16 Mar 95 12:45:30 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503161245.AA23269@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: odd error

Not that I don't trust your ErrorInfo dialog box:

I got the following in the shell:

hol88 # Warning: TkHolHelper internal error: busy set below 0

and the following in the TCL error listing:

syntax error in expression ""
    while executing
"if $vertical {
	    pack  [scrollbar $w.vscroll -relief sunken -command "$w.b yview"]  -side $gui_flags(scrollbarSide) -fill y
		lappend fargs -yscrol ..."
    (procedure "scrollable" line 26)
    invoked from within
"scrollable text .topwin2.topgoal.text -relief sunken -borderwidth 2 -font -Adobe-Courier-Medium-R-Normal-*-*-120-* -foreground black -state disabled - ..."
    ("eval" body line 1)
    invoked from within
"eval [list scrollable text $w.text -relief sunken  -borderwidth 2  -font $HolRichText_flags(font,teletype)  -foreground $HolRichText_flags(color,telet ..."
    invoked from within
"pack [eval [list scrollable text $w.text -relief sunken  -borderwidth 2  -font $HolRichText_flags(font,teletype)  -foreground $HolRichText_flags(color ..."
    (procedure "HolRichText" line 16)
    invoked from within
"HolRichText $w.topgoal  -height 10  -width 65  -editable 1  -richtextvar vals($w,rich_text)"
    invoked from within
"pack [HolRichText $w.topgoal  -height 10  -width 65  -editable 1  -richtextvar vals($w,rich_text)]..."
    (procedure "TkGoalProof" line 210)
    invoked from within
"TkGoalProof .topwin2"
    ("uplevel" body line 1)
    invoked from within
"uplevel $args"
    invoked from within
"return [uplevel $args]..."
    invoked from within
"if $msg {
	    return [uplevel $args]
	}"
    invoked from within
"if ![info exists auto_noload] {
	#
	# Make sure we're not trying to load the same proc twice.
	#
	if [info exists unknown_pending($name)] {
	    unset ..."
    (procedure "unknown" line 5)
    invoked from within
"TkGoalProof .topwin2"
    ("eval" body line 1)
    invoked from within
"eval [list $type $w] $args"
    invoked from within
"return [eval [list $type $w] $args]..."
    (procedure "newwin" line 7)
    invoked from within
"newwin TkGoalProof"
    invoked from within
"$menu invoke $i"
    invoked from within
"if {$i != "none"} {
	tk_mbUnpost
	update idletasks
	$menu invoke $i
    }"
    (procedure "tk_invokeMenu" line 3)
    invoked from within
"tk_invokeMenu .topwin1.menu.theorems.m"
    (command bound to event)

Michael.

PS: I just got the error again and the "Mail to Donald.Syme" button
    didn't work (it hung everything). When I hit ctl-c a couple of
    times in the hol shell, I got a little message saying:
    "TkHolHelper was in a hung state.  This has now been cleared."
    Then a little window appeared with:

      Send error: Subject: Subject:
      (Interrupt -- one more to kill letter)

    over an OK button. 
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 16 Mar 1995 12:53:04 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA23281;
          Thu, 16 Mar 95 12:52:43 GMT
Date: Thu, 16 Mar 95 12:52:43 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503161252.AA23281@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: rich text/pretty printing comments

Why not have a rich-text turnstile at theorems' heads instead of |- ?


Indentation is wrong (I realise that pasting in from the RichText into
emacs has mangled things somewhat), but the following (where the \331
are /\) shows that the second line (and therefore all subsequent lines
as well) is too far to the right. 

|- (decl_type (INL Char) \331
     decl_type (INL Int) \331
     ("t1 t2.
       decl_type (INR (type2list (Type_List t1 t2))) \336
       ...

(It happens with other theorems as well.)

Michael.

PS: how do I get tkholwb started from inside my emacs session/shell?
    I know you've mentioned this as a possibility, but I can't have
    been paying any attention when you explained how to do it.


Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 16 Mar 1995 12:59:37 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA23292;
          Thu, 16 Mar 95 12:58:35 GMT
Date: Thu, 16 Mar 95 12:58:35 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503161258.AA23292@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: Inside TRS

I attempted to search arithmetic (only) for theorems containing SUC
(though I didn't specify a type for it) and I got back the appended
error.  I also got a little "Search Results" window with an empty list
of Theorems and no way of dismissing it. 

Incidentally, I'm just about to go and have a lunch break, but I
absolutely promise to be in TP6 from 14:00 until 15:40. 

Michael.

Error was:

syntax error in expression ""
    while executing
"if $vals($w,expandbuttons) {
	    pack [button $w.controls.expandall -bitmap @$HolRichText_library/expandall.xbm -command "TheoremsFrame::expandall $w ..."
    (procedure "TheoremsFrame" line 16)
    invoked from within
"TheoremsFrame .topwin6.thmspecs -height 18 -width 70 -richtextvar vals(.topwin6,richtext)"
    ("eval" body line 1)
    invoked from within
"eval [list TheoremsFrame $w.thmspecs  -height $height  -width 70  -richtextvar vals($w,richtext)] $passon_args"
    (procedure "TheoremsTopLevel" line 57)
    invoked from within
"TheoremsTopLevel .topwin6 -title {Search Results} -thmspecs {{ADD definition arithmetic} {ADD1 theorem arithmetic} {ADD_CLAUSES theorem arithmetic} {A ..."
    ("eval" body line 1)
    invoked from within
"eval [list $type $w] $args"
    invoked from within
"return [eval [list $type $w] $args]..."
    (procedure "newwin" line 7)
    invoked from within
"newwin TheoremsTopLevel -title {Search Results} -thmspecs {{ADD definition arithmetic} {ADD1 theorem arithmetic} {ADD_CLAUSES theorem arithmetic} {ADD ..."
    ("eval" body line 1)
    invoked from within
"eval [set vals($w,resultsHandler)] [list [lsort $thms]]"
    invoked from within
"if {[llength $thms]==0} {
	        errormessage $w.error "No matching theorems found."    	
	    } else {
	   	eval [set vals($w,resultsHandler)] [lis ..."
    invoked from within
"if {[set vals($w,resultsHandler)] == ""} {
	    global search_results
	    set search_results [lsort $thms]
	} else {
	    if {[llength $thms]==0} {
	 ..."
    (procedure "TkTRS::start_search" line 24)
    invoked from within
"TkTRS::start_search .topwin4"
    invoked from within
".topwin4.controls.search.b invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "button_invoke" line 13)
    invoked from within
"button_invoke $w"
    invoked from within
"if {$w == $button_priv(current,$screen)} {
			button_invoke $w
		}"
    invoked from within
"if {[info exists button_priv(current,$screen)]} {
		if {$w == $button_priv(current,$screen)} {
			button_invoke $w
		}
	}"
    (procedure "button_release" line 8)
    invoked from within
"button_release .topwin4.controls.search.b"
    (command bound to event)

Michael.
X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: rich text/pretty printing comments 
In-reply-to: Your message of "Thu, 16 Mar 1995 12:52:43 GMT."
             <9503161252.AA23281@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> Why not have a rich-text turnstile at theorems' heads instead of |- ?
> 

I'll look into it - it depends if the turnstile symbol
is in the "symbol" font.  I'm trying not to use other
fonts beside the standard Adobe set just yet.

> 
> Indentation is wrong (I realise that pasting in from the RichText into
> emacs has mangled things somewhat), but the following (where the \331
> are /\) shows that the second line (and therefore all subsequent lines
> as well) is too far to the right. 
> 
> |- (decl_type (INL Char) \331
>      decl_type (INL Int) \331
>      ("t1 t2.
>        decl_type (INR (type2list (Type_List t1 t2))) \336
>        ...
> 
> (It happens with other theorems as well.)
> 
> Michael.
> 

Good point.  Do you agree it is out by one character, or do you think
the second line should be flush with the first margin?

> PS: how do I get tkholwb started from inside my emacs session/shell?
>     I know you've mentioned this as a possibility, but I can't have
>     been paying any attention when you explained how to do it.
> 
> 

M-x "shell"
Then run tkholwb like normal.
Or use "sml" mode (macros available somewhere) but you will have to
change the prompt recogniser to "hol88 #" (Richard Boulton has done
this so maybe ask him).

Thanks again,
Don



X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: odd error 
In-reply-to: Your message of "Thu, 16 Mar 1995 12:45:30 GMT."
             <9503161245.AA23269@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

> 
> PS: I just got the error again and the "Mail to Donald.Syme" button
>     didn't work (it hung everything). When I hit ctl-c a couple of
>     times in the hol shell, I got a little message saying:
>     "TkHolHelper was in a hung state.  This has now been cleared."
>     Then a little window appeared with:
> 
>       Send error: Subject: Subject:
>       (Interrupt -- one more to kill letter)
> 
>     over an OK button. 


Yep, there's something wrong with it for sure.  I'll work on it!

Thanks for the error report.

Don

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 16 Mar 1995 14:55:51 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA23395;
          Thu, 16 Mar 95 14:55:43 GMT
Date: Thu, 16 Mar 95 14:55:43 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503161455.AA23395@guillemot.cl.cam.ac.uk>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Subject: Re: rich text/pretty printing comments
In-Reply-To: <"swan.cl.cam.:147740:950316144345"@cl.cam.ac.uk>
References: <9503161252.AA23281@guillemot.cl.cam.ac.uk> <"swan.cl.cam.:147740:950316144345"@cl.cam.ac.uk>


>> |- (decl_type (INL Char) \331
>>      decl_type (INL Int) \331
>>      ("t1 t2.
>>        decl_type (INR (type2list (Type_List t1 t2))) \336
>>        ...
>> 

> Good point.  Do you agree it is out by one character, or do you think
> the second line should be flush with the first margin?

It's out by one once transformed into this fixed width environment,
but in the tool itself the fonts are proportional and it's not as easy
to say how much it's off by.  However, the second decl_type in this
example should definitely be immediately below the first one.  (That's
how it's laid out inside HOL anyway, and it makes good sense for it to
be that way.)

Michael.

(Thanks for the word on using it inside emacs.)

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 16 Mar 1995 15:17:43 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA23482;
          Thu, 16 Mar 95 15:17:33 GMT
Date: Thu, 16 Mar 95 15:17:33 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503161517.AA23482@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: more of you know what

When I make the top window narrower, (so I can put my emacs window
side by side with it) the Parents window doesn't resize within it,
making it impossible to use the scroll bar on the right. 

Also while doing a slow and painstaking load (started from the shell),
I (foolishly perhaps) clicked on a theorem in order to see its
expansion in the top level window.  This seemed to interrupt what the
shell was doing, and although the theorem was expanded eventually, the
load has stopped.  Unfortunately, I don't have a prompt in my shell
window anymore.  

I'm not entirely surprised that this happened, and it's a good thing
that the whole system didn't die entirely.  I got back the prompt by
attempting to load a file from the interface side of things, but this
was not a prompt I could do anything with.

I've basically managed to kill the shell, which is a bit painful.  

No, wait.  When I start up a proof session, the shell comes right
again.  It looks as if it did manage to complete the load as well. 

Michael.

PS: Incidentally, the error with the triangles and the gaps comes
about when the main window has first been made bigger.  
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 17 Mar 1995 14:39:12 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA24658;
          Fri, 17 Mar 95 14:39:07 GMT
Date: Fri, 17 Mar 95 14:39:07 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503171439.AA24658@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: a new definition not reflected in GUI's listing

I did:

new_definition(`satspec`,
   "satspec p q stmt = 
       !s s' v. p s /\ meaning stmt s (s',v) ==> q s'");;

inside the shell and got back:

STARTTCL
{TheoremsFrame::new_definition_Notify .topwin1.definition.b cholera satspec}
ENDTCL
|- !p q stmt.
    satspec p q stmt =
    (!s s' v. p s /\ meaning stmt s (s',v) ==> q s')


However, despite the use of words like new_definition_Notify in the
snatch of Tcl code, nothing seemed to happen to my list of
definitions.  Hiding it away and re-opening with the triangle didn't
help either.  Ah no, something has brought it to light, but it's not
in the right place in the otherwise sorted list;  it's been appended
to the end. 

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 17 Mar 1995 14:47:45 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA24678;
          Fri, 17 Mar 95 14:47:35 GMT
Date: Fri, 17 Mar 95 14:47:35 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503171447.AA24678@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: another error

This one came about after selecting Expand Theorems in the View menu.
When it came to rather a huge theorem, it carked with the following:

expect: invalid spawn id (5)
    while executing
"expect {STARTTCL
} {
	    expect -re "(\[^\n\]*)\nENDTCL\n" {
	        lappend delayed_executions [lindex $expect_out(1,string) 0]
	        continue
	 ..."
    ("eval" body line 1)
    invoked from within
"eval expect [EXPECT_TCL_SEQUENCE] [EXPECT_FEEDBACK] [EXPECT_MLERROR] [EXPECT_MLDONE] "
    ("while" body line 2)
    invoked from within
"while {!$return && !$error} {
     		  eval expect [EXPECT_TCL_SEQUENCE] [EXPECT_FEEDBACK] [EXPECT_MLERROR] [EXPECT_MLDONE] 
	      }"
    invoked from within
"if {!$direct} {
	      while {!$return && !$error} {
     		  eval expect [EXPECT_TCL_SEQUENCE] [EXPECT_FEEDBACK] [EXPECT_MLERROR] [EXPECT_MLDONE] 
	  ..."
    invoked from within
"if {$run} {
       	global expect_out
	set return 0
	set error 0
	TkHolSlave::SIGINT_effects_slave
	incr busy
	set old_log_user [log_user]
	log_user [ ..."
    (procedure "ML" line 102)
    invoked from within
"ML -type string "thm_to_hol_rich_text_via_file ($thmcode)""
    invoked from within
"set tmpfile [ML -type string "thm_to_hol_rich_text_via_file ($thmcode)"]..."
    invoked from within
"if $richtext {
	    if {$width < 15} { set width 15 }
       	    if [hol88] {
       	        ML -type any "set_margin $width"
	    }
	    set tmpfil ..."
    (procedure "HolRichText::insertthm" line 63)
    invoked from within
"HolRichText::insertthm $w.richtext $thmspec"
    invoked from within
"if {[lsearch [set vals($w,displayed_theorems)] $thmspec] == -1} {
		HolRichText::insertthm $w.richtext $thmspec
	        HolRichText::yviewthm $w.rich ..."
    ("for" body line 5)
    invoked from within
"for {set i 0} {$i<$size} {incr i} {
	    set thmname [$w.box.list.b get $i]
	    if {$thmname==""} break
	    set thmspec [set vals($w,thms,$thmname)] ..."
    (procedure "TheoremsFrame::expandall" line 7)
    invoked from within
"TheoremsFrame::expandall $w.$kind.b "
    invoked from within
"if {[winfo exists $w.$kind.b]} { 
	    global busy
	    incr busy
	    global feedback
	    set feedback [list $w "Expanding [set kind]s"]
  	    Theo ..."
    (procedure "TkTheoryViewer::expandkind" line 2)
    invoked from within
"TkTheoryViewer::expandkind .topwin1 definition"
    invoked from within
"$menu invoke $i"
    invoked from within
"if {$i != "none"} {
	tk_mbUnpost
	update idletasks
	$menu invoke $i
    }"
    (procedure "tk_invokeMenu" line 3)
    invoked from within
"tk_invokeMenu .topwin1.menu.view.m"
    (command bound to event)

Michael.
X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: a new definition not reflected in GUI's listing 
In-reply-to: Your message of "Fri, 17 Mar 1995 14:39:07 GMT."
             <9503171439.AA24658@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

> 
> However, despite the use of words like new_definition_Notify in the
> snatch of Tcl code, nothing seemed to happen to my list of
> definitions.  Hiding it away and re-opening with the triangle didn't
> help either.  Ah no, something has brought it to light, but it's not
> in the right place in the otherwise sorted list;  it's been appended
> to the end. 
> 

Yes, this is a bug.  The list should be resorted (I'll do it just
now).

I've fixed a fair few bugs, so might install a new version soonish.

Thanks,
Don

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 17 Mar 1995 15:15:51 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA24732;
          Fri, 17 Mar 95 15:15:42 GMT
Date: Fri, 17 Mar 95 15:15:42 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503171515.AA24732@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: load_theory not intercepted all the time

If I write something like:

loadt `foo`;;

where foo is sufficiently large that HOL doesn't respond immediately,
and then while I'm waiting for it to come back, if I type 
  load_theory `cholera` 
it seems to be completely ignored.

A normal expression typed at this point does eventually get done
though. 

Michael.
Return-Path: <wwong@Comp.HKBU.Edu.HK>
Delivery-Date: 
Received: from pistis.comp.hkbu.edu.hk (actually wwong@pistis.comp01.hkbc.hk !OR! wwong@Comp.HKBU.Edu.HK) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Mon, 20 Mar 1995 04:13:58 +0000
Received: by pistis.comp.hkbu.edu.hk (8.6.11/8.6.11) id MAA10356;
          Mon, 20 Mar 1995 12:12:41 +0800
Date: Mon, 20 Mar 1995 12:12:41 +0800
From: "Dr. Wai Wong" <wwong@Comp.HKBU.Edu.HK>
Message-Id: <199503200412.MAA10356@pistis.comp.hkbu.edu.hk>
To: Donald.Syme@cl.cam.ac.uk
Cc: wwong@pistis.comp.hkbu.edu.hk
In-reply-to: <"swan.cl.cam.:171540:950307223410"@cl.cam.ac.uk> (message from Donald Syme on Tue, 07 Mar 1995 22:33:50 +0000)
Subject: Re: TkHolWorkbench 0.2 available for beta testing

Hi, Donald,

	I was trying to ftp your TkHolWorkbench 0.2b, but the transfer
was interrupted after about 2Mbyte. Since we are very far away
networkwise from Cambridge, transfering large files is very
difficult. Would it be possible for you to split the package into a
number of small files? I notice that you include Tcl and Tk in your
distribution. We already have Tcl7.3 and tk3.6 installed in our
systems. You could leave them out if TkHolWorkbench 0.2b works with
the standard Tcl/Tk. It would be very helpful if you could provide a
patch if changes to Tcl/Tk are required.

	Thank you very much.

Wai
X-Mailer: exmh version 1.5.2 12/21/94
To: "Dr. Wai Wong" <wwong@Comp.HKBU.Edu.HK>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Mon, 20 Mar 1995 12:12:41 +0800."
             <199503200412.MAA10356@pistis.comp.hkbu.edu.hk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------


Dear Wai,

I am, by the way, sitting in your old office here in Cambridge,
if it helps to provide a context!  I think I have inherited
some of your manuals and papers, some of which are proving 
quite useful.

> 
> 	I was trying to ftp your TkHolWorkbench 0.2b, but the transfer
> was interrupted after about 2Mbyte. Since we are very far away
> networkwise from Cambridge, transfering large files is very
> difficult. Would it be possible for you to split the package into a
> number of small files? I notice that you include Tcl and Tk in your
> distribution. We already have Tcl7.3 and tk3.6 installed in our
> systems. You could leave them out if TkHolWorkbench 0.2b works with
> the standard Tcl/Tk. It would be very helpful if you could provide a
> patch if changes to Tcl/Tk are required.

Yes, I will arrange this, probably for when I release the real
version 0.2 in a week or so.  I need to make an alteration
which checks for the presence of Tcl and Tk separately to looking
for Expect.

No patches are needed for Tcl/Tk any longer (they were for 0.1b).
I will try to arrange for patch files to allow you to update 
between versions of TkHolWorkbench.

Thanks for trying to download it.  I remember what a hassle it is
to try and get big packages from the U.S.A or U.K. to Australia.

Cheers,
Don

Return-Path: <wwong@Comp.HKBU.Edu.HK>
Delivery-Date: 
Received: from pistis.comp.hkbu.edu.hk (actually wwong@pistis.comp01.hkbc.hk !OR! wwong@Comp.HKBU.Edu.HK) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Tue, 21 Mar 1995 01:18:07 +0000
Received: by pistis.comp.hkbu.edu.hk (8.6.11/8.6.11) id JAA04067;
          Tue, 21 Mar 1995 09:17:24 +0800
Date: Tue, 21 Mar 1995 09:17:24 +0800
From: "Dr. Wai Wong" <wwong@Comp.HKBU.Edu.HK>
Message-Id: <199503210117.JAA04067@pistis.comp.hkbu.edu.hk>
To: Donald.Syme@cl.cam.ac.uk
Cc: wwong@pistis.comp.hkbu.edu.hk
In-reply-to: <"swan.cl.cam.:175590:950320124028"@cl.cam.ac.uk> (message from Donald Syme on Mon, 20 Mar 1995 12:40:16 +0000)
Subject: Re: TkHolWorkbench 0.2 available for beta testing

Hi, Donald,

	Thanks. I'm very gald if anything I left would be useful to you. 
If you have not rearranged the 0.2b tar file, please hold it. Since
you are going to make the real release soon, I can wait until
then. You could arrange the new release into small files.

Wai
X-Mailer: exmh version 1.5.2 12/21/94
To: "Dr. Wai Wong" <wwong@Comp.HKBU.Edu.HK>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Tue, 21 Mar 1995 09:17:24 +0800."
             <199503210117.JAA04067@pistis.comp.hkbu.edu.hk> 
Mime-Version: 1.0
Content-Type: text/plain
--------
> Hi, Donald,
> 
> 	Thanks. I'm very gald if anything I left would be useful to you. 
> If you have not rearranged the 0.2b tar file, please hold it. Since
> you are going to make the real release soon, I can wait until
> then. You could arrange the new release into small files.
> 
> Wai

Actually I've just finished the rearrangement and the distribution
is now available in three different formats:

total 6534
 888 TkHolWorkbench.0.2b.WithoutTclTk.tar.gz
 480 TkHolWorkbench.0.2b.WithoutTclTkExpect.tar.gz
2584 TkHolWorkbench.0.2b.tar.gz


If Tk/Tcl are installed in a "standard" place on your machine, like
/usr/lib/libtk.a, /usr/lib/libtcl.a and so on, then you
should be able to use the first.  If Expect is also installed in
a standard location then the second file is all you need.  If they
are installed in non-standard locations, then you will be able
to get away with using the reduced versions but may have to
hack around a bit to get things to work.

BTW, I don't expect many changes before the releasing 0.2.

Cheers,
Don

Return-Path: <matla@ida.liu.se>
Delivery-Date: 
Received: from ida.liu.se (actually portofix.ida.liu.se !OR! matla@ida.liu.se) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Thu, 23 Mar 1995 08:36:35 +0000
Received: from brut51 by ida.liu.se (5.65b/ida.minimaster-V1.0b6d5) id AA02093;
          Thu, 23 Mar 95 09:36:27 +0100
Received: by brut51 (4.1/ida.slave-V1.0b6d6) id AA00366;
          Thu, 23 Mar 95 09:36:27 +0100
Message-Id: <9503230836.AA00366@brut51>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Cc: matla@ida.liu.se
Subject: Re: TkHolWorkbench 0.2 available for beta testing
In-Reply-To: Your message of "Tue, 07 Mar 1995 22:33:50 GMT." <"swan.cl.cam.:171540:950307223410"@cl.cam.ac.uk>
Date: Thu, 23 Mar 1995 09:36:27 +0100
From: Mats Larsson <mla@ida.liu.se>

Hi Donald

I've been experimenting with your TkHol stuff but I've had a few problems that I
thought you might just help me sort out.

First, you say:
> Basically, this means TkHolWorkbench looks just like your ordinary HOL
> session, since it's stdin/stdout behave just like an ordinary HOL process.  

When I start it with

	tkholhelper -hol hol_peq -holtype hol90

in a shell window I get a 'dead' hol90. By dead I mean not connected to the
terminal. Do you mean that what I should do is to create a tkholshell from the
tkholhelper 'packages' menu and that this will behave as an ordinary HOL process?

Then you say:
> A window will appear as well displaying your current theory - ignore it if you
> want, but sooner or later you just might find yourself using the functionality
> it provides.  The start up time is only a few seconds slower than normal HOL.

The start-up time for the hol process seems to be only a few seconds slower than
normal HOL but the window displaying my theory takes minutes to appear. I
actually thought it had died and was trying to figure out how to kill the hol
process when this window suddenly popped up. Is this normal or is there
something wrong with my installation?

Performance is a problem for me too. When I use the tkholshell everything takes
about 2 to 3 times longer than when I run hol in a shell window. I have a
sparc10 with 32 Mbyte on the desk so one doesn't expect it to be causing bad
performance. What else could give me this effect?

I've had problems turning the whole thing off. What is the best way to kill
everything in a orderly manner? 

Sorry if I'm only complaining but I think it looks as a really neat tool so I'd
like to use it if I can.

cheers, Mats
X-Mailer: exmh version 1.5.2 12/21/94
To: Mats Larsson <mla@ida.liu.se>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Thu, 23 Mar 1995 09:36:27 +0100."
             <9503230836.AA00366@brut51> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> Hi Donald
> 
> 
> When I start it with
> 
> 	tkholhelper -hol hol_peq -holtype hol90
> 
> in a shell window I get a 'dead' hol90. By dead I mean not connected to the
> terminal. Do you mean that what I should do is to create a tkholshell from the
> tkholhelper 'packages' menu and that this will behave as an ordinary HOL process?
> 
> The start-up time for the hol process seems to be only a few seconds slower than
> normal HOL but the window displaying my theory takes minutes to appear. I
> actually thought it had died and was trying to figure out how to kill the hol
> process when this window suddenly popped up. Is this normal or is there
> something wrong with my installation?
> 
> Performance is a problem for me too. When I use the tkholshell everything takes
> about 2 to 3 times longer than when I run hol in a shell window. I have a
> sparc10 with 32 Mbyte on the desk so one doesn't expect it to be causing bad
> performance. What else could give me this effect?
> 

Thanks for taking the time to report back.  This may be a tricky one
to get working, and I'd appreciate your help in working out what's
happening.

Hmm... this is all very strange.  The stdin/stdout is meant 
to behave like a normal hol90 process, from both emacs and the command
line, but this obviously isn't happening.  The only reason I
can think of at the moment is that you might be
running emacs in SML mode.  If this is the case you will need to change
the prompt recogniser from "-" to "hol90 -".  I will get the
information off Richard Boulton as to how to do this and include
it in the startup notice.

But that longshot doesn't solve the problem of the startup time and the
time delays in computation.  Could you do the following for me?

	1. Send me the output from a "ps -aux" while 
	tkholhelper is running.  I'd like to see the 
	memory consumption of the Tk process.

	2. Send me the output from running "stty -a" from your emacs
	buffer.  I'd like to see if there are some strange terminal
	settings which might be killing the communication to tkholhelper.

	3. Run tkholhelper with the "vanilla" hol90, from 
	the command line.  Does the stdin/stdout work any 
	better there?  Is performance still noticeably worse?

	4. Do the same from the command line with your "hol_peq".
	Any difference?

	5. Try running 
		tkholhelper -hol hol_peq -trace
	This will show you what is happening in the HOL session 
	underneath and give an idea of where the delays are.


Startup time for me really is only a few seconds slower (about 13
seconds for the window to appear), and I'm running on a similar
setup.  (Sparc 20, with more memory though, using an X-terminal).

Thinking about it now I could take a stab at what is causing the
slow startup times.  On startup the TkTheoryViewer expands
out the theory tree to a depth of 3 by default.  If your
theory tree is sufficiently wide, this could result in a very large
blowout, in both display-time and memory consumption.  The
stats from the "ps -aux" above should indicate if this has happened.

Another cause of the delay may be the number of theorems and
definitions in the top theory of "hol_peq".  If there are
a very large number then it will take a while to get them all.

Another (unlikely) cause is that for some reason or another 
tkholhelper is loading the "TRS" library at startup.  This should
only be the case if you set this option under the Options menu and
then saved your options.  Running with the -trace option will
tell you if this is the case.

Cheers,
Don


------------ a little later -----------------------

I have just installed a new patch with some fixes which might help
your problems.  In particular:

	- You can now specify the initial expansion depth both as
an option under the "Options" menu and as a command line option:
		tkholhelper -theoryTreeInitialExpand 1

	- Normally you would exit by pressing Ctrl-D or using "exit()"
from the hol90 prompt.  You can now exit from TkTheoryViewer as well
in case the stdin/stdout isn't working.


You will to download the package again to acquire these changes,
though you shouldn't need to recompile Tcl, Tk and Expect if
you install in the same place.  BTW, you can now download in smaller
components:

 888 TkHolWorkbench.0.2b.WithoutTclTk.tar.gz
 480 TkHolWorkbench.0.2b.WithoutTclTkExpect.tar.gz
2584 TkHolWorkbench.0.2b.tar.gz

Between minor versions you will just need the smallest of these.

I hope all of this helps. 

Cheers,
Donald


X-Mailer: exmh version 1.5.2 12/21/94
To: Mats Larsson <mla@ida.liu.se>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Thu, 23 Mar 1995 09:36:27 +0100."
             <9503230836.AA00366@brut51> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

Hi Mats,

This section in my last post may have made you wonder:

>Thinking about it now I could take a stab at what is causing the
>slow startup times.  On startup the TkTheoryViewer expands
>out the theory tree to a depth of 3 by default.  If your
>theory tree is sufficiently wide, this could result in a very large
>blowout, in both display-time and memory consumption.  The
>stats from the "ps -aux" above should indicate if this has happened.

given that the tree is only ever displayed to a depth of 1 in
any case.  This was a bug - the tree was being *computed* to a depth
of 3 but the computed information was not being displayed!

I have fixed this now, but it is not yet in the release file.  I
think I will change the default depth to 2.

Cheers,
Don


Return-Path: <matla@ida.liu.se>
Delivery-Date: 
Received: from ida.liu.se (actually portofix.ida.liu.se !OR! matla@ida.liu.se) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Thu, 23 Mar 1995 17:31:44 +0000
Received: from brut51 by ida.liu.se (5.65b/ida.minimaster-V1.0b6d5) id AA11760;
          Thu, 23 Mar 95 18:31:04 +0100
Received: by brut51 (4.1/ida.slave-V1.0b6d6) id AA01899;
          Thu, 23 Mar 95 18:31:04 +0100
Message-Id: <9503231731.AA01899@brut51>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Cc: matla@ida.liu.se
Subject: Re: TkHolWorkbench 0.2 available for beta testing
In-Reply-To: Your message of "Thu, 23 Mar 1995 13:36:38 GMT." <"swan.cl.cam.:285590:950323133654"@cl.cam.ac.uk>
Date: Thu, 23 Mar 1995 18:31:03 +0100
From: Mats Larsson <mla@ida.liu.se>

> The only reason I can think of at the moment is that you might be running emacs
> in SML mode. 

In fact I'm not running hol under emacs at all.

>	1. Send me the output from a "ps -aux" while 
>	tkholhelper is running.  I'd like to see the 
>	memory consumption of the Tk process.
 
A log is appended to this mail.

>	2. Send me the output from running "stty -a" from your emacs
>	buffer.  I'd like to see if there are some strange terminal
>	settings which might be killing the communication to tkholhelper.

I'm not running emacs but I've run 'stty -a' in an xterm with the following
result:

brut51-59% stty -a
speed 9600 baud, 58 rows, 80 columns
-parenb -parodd cs8 -cstopb -hupcl cread -clocal -crtscts 
-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc 
ixon -ixany -ixoff imaxbel 
isig iexten icanon -xcase echo echoe echok -echonl -noflsh -tostop 
echoctl -echoprt echoke 
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel 
erase  kill   werase rprnt  flush  lnext  susp   intr   quit   stop   eof
^?     ^U     ^W     ^R     ^O     ^V     ^Z/^Y  ^C     ^\     ^S/^Q  ^D     

>	3. Run tkholhelper with the "vanilla" hol90, from 
>	the command line.  Does the stdin/stdout work any 
>	better there?  Is performance still noticeably worse?
 
This is what happens: 
After 20 sec: Hol appears in the shell window and prompts: 

	The library "HOL" is loaded.
	- 
	hol90 -

After 1.5 min:	It says "Initializing TkTRS"
After 2 min:	It says "Display Theory HOL"
Then nothing happens for three minutes and then the TkHolHelper window appears.

The stdin/stdout works as follows (which is the same as before). Everything I
write to it is echoed but nothing is returned. So I when write 2+2;<RET> it
makes a newline a nothing more.

>	4. Do the same from the command line with your "hol_peq".
>	Any difference?

My impression is that the same thing happens.

>	5. Try running 
>		tkholhelper -hol hol_peq -trace
>	This will show you what is happening in the HOL session 
>	underneath and give an idea of where the delays are.

I haven't done this and I have to leave now.

Hope this helps.

/Mats

PS TkHolShell doesn't work very well for me either but I'll get back to you on
   that when I have more time.
--------------------------------------------------------------------------------
brut51-12% ps -aux
USER       PID %CPU %MEM   SZ  RSS TT STAT START  TIME COMMAND
matla      168  1.6  3.6 2184 1004 co S    07:46   3:04 /usr/local/X11R5/bin/Xsun :0 -auth /home/asterix4/ida/matla/.xnews.brut51:0
root         1  0.0  0.0   52    0 ?  IW   06:16   0:00 /sbin/init -
root       104  0.0  0.0   52    0 ?  IW   06:16   0:00 rpc.statd
root         2  0.0  0.0    0    0 ?  D    06:16   0:04 pagedaemon
root        53  0.0  0.4   68  100 ?  S    06:16   0:01 portmap
bin         56  0.0  0.0   36    0 ?  IW   06:16   0:00 ypbind
matla      149  0.0  0.0   36    0 co IW   06:16   0:00 /bin/sh /home/asterix4/ida/matla/bin/startx -server Xsun
matla      178  0.0  1.1  336  316 co S    07:46   0:11 twm
root        58  0.0  0.0   40    0 ?  IW   06:16   0:00 keyserv
root        79  0.0  0.0   16    0 ?  I    06:16   0:01  (biod)
root        78  0.0  0.0   16    0 ?  I    06:16   0:01  (biod)
root         0  0.0  0.0    0    0 ?  D    06:16   0:03 swapper
root        80  0.0  0.0   16    0 ?  I    06:16   0:01  (biod)
root        93  0.0  0.0   60    0 ?  IW   06:16   0:00 syslogd
root       105  0.0  0.0   72    0 ?  IW   06:16   0:00 rpc.lockd
root       111  0.0  0.9  148  244 ?  S    06:16   0:35 automount -f /etc/auto.master
root       115  0.0  0.9  148  244 ?  S <  06:16   0:00 xntpd -b -f /etc/ntp.drift
root       136  0.0  0.0   12    8 ?  D    06:16   0:58 update
root       139  0.0  0.0   56    0 ?  IW   06:16   0:00 cron
root       131  0.0  0.0   16    0 ?  IW   06:16   0:00 screenblank -f /dev/cgsix0
root       141  0.0  0.4   40  104 ?  S    06:16   0:49 in.rwhod
root       143  0.0  0.0   48    0 ?  IW   06:16   0:00 inetd
root        81  0.0  0.0   16    0 ?  I    06:16   0:01  (biod)
matla      180  0.0  0.5  184  152 co S    07:46   0:02 xbiff -g 120x80-1+122
matla      167  0.0  0.0   40    0 co IW   07:46   0:00 /usr/local/X11R5/bin/xinit -- /usr/local/X11R5/bin/Xsun :0 -auth /home/asterix4/ida/matla/.xnews.brut51:0
root       146  0.0  0.0   52    0 ?  IW   06:16   0:00 /usr/lib/lpd
matla      169  0.0  0.0   28    0 co IW   07:46   0:00 sh .xinitrc
matla      179  0.0  0.5  188  140 co S    07:46   0:01 xclock -g 120x120-1+1
root       182  0.0  0.0  232    0 co IW   07:46   0:00 xterm -n Console -C -fn 6x10 -rv -bw 1 -sb -sl 500 -g 80x8+1+1 -ls
matla      183  0.0  0.0  312    0 p0 IW   07:46   0:00 -tcsh (tcsh)
matla      187  0.0  1.1  388  304 co S    07:46   0:35 xmh
matla      261  0.0  1.0 1396  276 co S    08:41   0:37 emacs19 -geometry 81x50 -fn -adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1
root       251  0.0  4.7  964 1324 co S    08:35   0:00 xterm -g 80x58+1-5 -fn -adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1 -T text-shell -n Text-
matla      264  0.0  0.0  280    0 p2 IW   08:41   0:00 -csh (tcsh)
root       263  0.0  0.0  364    0 co IW   08:41   0:01 xterm -g 81x26-129-5 -fn -adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1 -T hol90-shell -n HO
matla      252  0.0  2.1  340  584 p1 S    08:35   0:00 -csh (tcsh)
matla      394  0.0  0.0  192    0 co IW   09:57   0:00 /home/asterix4/labs/cadlab/hol90/tools/Xhelp/xholhelp -geometry 604x498+1-5
matla      304  0.0  0.0  296    0 p3 IW   09:02   0:00 -csh (tcsh)
root       303  0.0  0.0  364    0 co IW   09:02   0:00 xterm -g 81x26-129-5 -fn -adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1 -T hol90-shell -n HO
matla      328  0.0  0.025236    0 p4 IW   09:11   3:43 hol_peq
matla      326  0.0  0.0   40    0 p3 IW   09:11   0:00 /bin/sh /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/bin/tkholhelper -hol hol_peq -holtype h
matla      327  0.0  2.2 1404  620 p3 S    09:11   1:22 /usr/local/bin/expectk -f /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/bin/runpackages.tcl -
root       762  0.0  0.0  368    0 co IW   13:01   0:04 xterm -g 80x58 -fn -adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1 -T tin -n tin -e tin
matla     1072  0.0  1.8  260  508 p1 R    14:46   0:00 ps -aux
matla      763  0.0  0.0 2956    0 p5 IW   13:01   1:00 tin
X-Mailer: exmh version 1.5.2 12/21/94
To: Mats Larsson <mla@ida.liu.se>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Thu, 23 Mar 1995 18:31:03 +0100."
             <9503231731.AA01899@brut51> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

> >	3. Run tkholhelper with the "vanilla" hol90, from 
> >	the command line.  Does the stdin/stdout work any 
> >	better there?  Is performance still noticeably worse?
>  
> This is what happens: 
> After 20 sec: Hol appears in the shell window and prompts: 
> 
> 	The library "HOL" is loaded.
> 	- 
> 	hol90 -
> 
> After 1.5 min:	It says "Initializing TkTRS"
> After 2 min:	It says "Display Theory HOL"
> Then nothing happens for three minutes and then the TkHolHelper window appears.
> 
> The stdin/stdout works as follows (which is the same as before). Everything I
> write to it is echoed but nothing is returned. So I when write 2+2;<RET> it
> makes a newline a nothing more.
> 
> >	4. Do the same from the command line with your "hol_peq".
> >	Any difference?
> 
> My impression is that the same thing happens.
> 
> >	5. Try running 
> >		tkholhelper -hol hol_peq -trace
> >	This will show you what is happening in the HOL session 
> >	underneath and give an idea of where the delays are.
> 
> I haven't done this and I have to leave now.
> 

Hmmm... I'm really surprised by this problem.  Running with -trace
should show what's taing so long.  Could you send me an output after
you've done this, with an indication where the long pauses are?  
Also send me your version number (from TkHolWorkbench.0.2b/version.tcl),
and you hol-init.sml if you have one. BTW, I presume you're using hol90.7. 

> PS TkHolShell doesn't work very well for me either but I'll get back to you on
>    that when I have more time.

If you are using 0.2bp0 it will be a bit flaky, but 0.2bp1
should be better.  I'll appreciate your comments either way!

Thanks.  It would be good to nail down what's going wrong.

Don

X-Mailer: exmh version 1.6.1 5/23/95
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 24 Mar 1995 09:00:28 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA04313;
          Fri, 24 Mar 95 09:00:19 GMT
Date: Fri, 24 Mar 95 09:00:19 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503240900.AA04313@guillemot.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHolHelper 

When just starting up using hol2.03 I get this error.  I don't
see any window at all, and the shell requires two <RET>s to 
'see' any input. 

Fri Mar 24 09:00:15 GMT 1995
mn200 got an error
TkHolHelper 0.2bp5
TK version 3.6
TCL version 7.3
SunOS guillemot 4.1.3_U1 5 sun4c

evaluation failed     lisp error
evaluation failed     load -- /usr/groups/hol/interfaces/TkHolWorkbench.0.2b/Ho
lTheoryNotification/theory_notify

Return-Path: <matla@ida.liu.se>
Delivery-Date: 
Received: from ida.liu.se (actually portofix.ida.liu.se !OR! matla@ida.liu.se) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Fri, 24 Mar 1995 09:04:06 +0000
Received: from brut51 by ida.liu.se (5.65b/ida.minimaster-V1.0b6d5) id AA03769;
          Fri, 24 Mar 95 10:03:56 +0100
Received: by brut51 (4.1/ida.slave-V1.0b6d6) id AA02914;
          Fri, 24 Mar 95 10:03:55 +0100
Message-Id: <9503240903.AA02914@brut51>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Cc: matla@ida.liu.se
Subject: Re: TkHolWorkbench 0.2 available for beta testing
In-Reply-To: Your message of "Thu, 23 Mar 1995 18:14:57 GMT." <"swan.cl.cam.:124140:950323181517"@cl.cam.ac.uk>
Date: Fri, 24 Mar 1995 10:03:54 +0100
From: Mats Larsson <mla@ida.liu.se>

The trace is appended to this mail. There are no delays anywhere really. It
seems to produce a result every 10 seconds or so and it doesn't stop anywhere.
The time it took to start was again 5 minutes.

My version number is 0.2bp0 and I am running hol90.7 without a hol-init file.

About the TkHolShell the problems I have is that the Alt key on my keyboard
doesn't work which means I can't write things like [,],{,},` and |. The other
problem has to do with cutting and pasting. My problem is that as soon as I
press the left button on the mouse I get a (lightblue) marker. Unfortunately I
can't 'unmark' this place again and the TkHolShell is forever without a cursor.
I can go on working but then only by pasting things from another buffer and
pressing the execute button. Ctrl-Return has no effect. So what I've done is to
start a new TkHolShell everytime I've happened to press the left button and
closed the old one. Not very convenient. I also wonder why I get different
prompts and if this is significant. Sometimes my prompt looks like this '-\' but
if I do ';<Ret>' I get back the normal `-` prompt. Looks like a debug mode or
something.


cheers, Mats

--------------------------------------------------------------------------------
brut51-18% tkholhelper -hol hol_peq -holtype hol90 -trace


          HHH                 LL
          HHH                  LL
          HHH                   LL
          HHH                    LL
          HHH          OOOO       LL
          HHHHHHH     OO  OO       LL
          HHHHHHH     OO  OO       LLL
          HHH          OOOO        LLLL
          HHH                     LL  LL
          HHH                    LL    LL
          HHH                   LL      LL
          HHH                  LL        LL90.7

Created on Thu Mar 23 08:53:53 MET 1995
using: Standard ML of New Jersey, Version 0.93, February 15, 1993


val it = () : unit
- System.Control.primaryPrompt := "hol90 - ";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
- val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - System.Control.secondaryPrompt := "hol90 = ";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - 
hol90 - use "/home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/TkHolSlave/fconcatl.sml";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
[opening /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/TkHolSlave/fconcatl.sml]
val concatl = fn : string list -> string
val string_list_to_tcl_list = fn : string list -> string
val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - fun tcl s = ((curry output) std_out) ("\nSTARTTCL\n{" ^ s ^ "}\n" ^ "ENDTCL\n");
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val tcl = fn : string -> unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - fun interface_on () = tcl "newwin TkTheoryViewer";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val interface_on = fn : unit -> unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - fun interface_off () = tcl "foreach win [info commands .?*] { catch {if {[winfo toplevel $win]!={.}} { catch {destroy [winfo toplevel $win]} } }}";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val interface_off = fn : unit -> unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - val really_exit = exit;
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val really_exit = fn : unit -> 'a
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - fun exit () = tcl "global busy; incr busy; exit";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val exit = fn : unit -> unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - use "/home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/theory_notify.sig";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
[opening /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/theory_notify.sig]
signature TheoryNotification_sig =
  sig
    type client
    val add_client : string -> client -> unit
    val remove_client : string -> string -> unit
    val mk_client : string * (string -> string -> thm -> unit)
                    * (string -> string -> thm -> unit)
                    * (string -> string -> thm -> unit)
                    * (string -> string -> unit) * (string -> string -> unit)
                    -> client
    val define_type : {fixities:fixity list, name:string,
                       type_spec:term frag list}
                      -> thm
    val new_definition : string * term -> thm
    val new_specification : {consts:{const_name:string, fixity:fixity} list,
                             name:string, sat_thm:thm}
                            -> thm
    val save_thm : string * thm -> thm
    val test : unit -> bool
  end
signature TclTheoryNotification_sig =
  sig
    type client
    type selection
    val on_new_thm : selection
    val on_new_definition : selection
    val on_new_axiom : selection
    val on_new_const : selection
    val on_new_type : selection
    val mk_client : string * string * selection list -> client
    val add_client : string -> client -> unit
    val remove_client : string -> client -> unit
  end
val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - use "/home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/theory_notify.sml";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
[opening /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/theory_notify.sml]
structure TheoryNotification : TheoryNotification_sig
structure TclTheoryNotification : TclTheoryNotification_sig
val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - use "/home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/current_theory_notify.sig";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
[opening /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/current_theory_notify.sig]
signature CurrentTheoryNotification_sig =
  sig
    type client
    val add_client : client -> unit
    val remove_client : string -> unit
    val mk_client : string * (string -> unit) * (string -> unit)
                    * (bool -> unit)
                    -> client
    val extend_theory : string -> unit
    val new_theory : string -> unit
    val load_theory : string -> unit
    val close_theory : unit -> unit
    val new_parent : string -> unit
    val load_library : {lib:lib, theory:string} -> unit
    val test : unit -> bool
  end
signature TclCurrentTheoryNotification_sig =
  sig
    type client
    val mk_client : string * string -> client
    val add_client : client -> unit
    val remove_client : client -> unit
  end
val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - use "/home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/current_theory_notify.sml";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
[opening /home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/HolTheoryNotification/current_theory_notify.sml]
structure CurrentTheoryNotification : CurrentTheoryNotification_sig
structure TclCurrentTheoryNotification : TclCurrentTheoryNotification_sig
val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - open TheoryNotification;
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
open TheoryNotification
val add_client = fn : string -> client -> unit
val remove_client = fn : string -> string -> unit
val mk_client = fn
  : string * (string -> string -> thm -> unit)
    * (string -> string -> thm -> unit) * (string -> string -> thm -> unit)
    * (string -> string -> unit) * (string -> string -> unit)
    -> client
val define_type = fn
  : {fixities:fixity list, name:string, type_spec:term frag list} -> thm
val new_definition = fn : string * term -> thm
val new_specification = fn
  : {consts:{const_name:string, fixity:fixity} list, name:string, sat_thm:thm}
    -> thm
val save_thm = fn : string * thm -> thm
val test = fn : unit -> bool
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - open CurrentTheoryNotification;
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
open CurrentTheoryNotification
val add_client = fn : client -> unit
val remove_client = fn : string -> unit
val mk_client = fn
  : string * (string -> unit) * (string -> unit) * (bool -> unit) -> client
val extend_theory = fn : string -> unit
val new_theory = fn : string -> unit
val load_theory = fn : string -> unit
val close_theory = fn : unit -> unit
val new_parent = fn : string -> unit
val load_library = fn : {lib:lib, theory:string} -> unit
val test = fn : unit -> bool
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - Globals.library_path := 
("/home/asterix4/labs/cadlab/interfaces/TkHolWorkbench.0.2b/TkTRS/trs90/" 
:: (!Globals.library_path));
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
hol90 = hol90 = val it = () : unit
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - find_library "trs";
 ((curry output) std_out) "\nTCLML_DONE\nTCLML_STARTRESULT\n{ }\nTCLML_ENDRESULT\n";
val it =
  library name: trs
  description:
  Theorem Retrieval Library, by Richard Boulton, ported by Donald Syme
  parents: [HOL]
   : lib
hol90 - 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(current_theory())
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
peq
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(current_theory())
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
peq
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(string_list_to_tcl_list (parents "peq"))
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{value} {HOL} 
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(current_theory())
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
peq
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(string_list_to_tcl_list (parents "value"))
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{List} {lang} 
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(string_list_to_tcl_list (parents "List"))
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{operator} 
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(string_list_to_tcl_list (parents "lang"))
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{value} {string} {HOL} 
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(string_list_to_tcl_list (parents "peq"))
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{value} {HOL} 
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclCurrentTheoryNotification.add_client 
(TclCurrentTheoryNotification.mk_client("ParentsFrame",
".topwin1.parents.b"))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(if (not (null (theorems "peq"))) then "1" else "0")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
0
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(if (not (null (definitions "peq"))) then "1" else "0")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
0
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(if (not (null (axioms "peq"))) then "1" else "0")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
0
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(if (not (null(constants "peq"))) then "1" else "0")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
0
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(if (not (null(types "peq"))) then "1" else "0")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
0
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(if (draft_mode()) then "1" else "0")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
1
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(string_list_to_tcl_list (ancestry (current_theory())))
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ascii} {string} {lang} {pair} {num} {BASIC_HOL} {prim_rec} {arithmetic} {list} {tree} {ltree} {rec_type} {one} {combin} {sum} {min} {bool} {restr_binder} {HOL} {operator} {List} {value} 
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(current_theory())
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
peq
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclTheoryNotification.add_client "peq" 
(TclTheoryNotification.mk_client("TheoremsFrame",
".topwin1.axiom.b",[TclTheoryNotification.on_new_axiom]))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclTheoryNotification.add_client "peq" 
(TclTheoryNotification.mk_client("TheoremsFrame",
".topwin1.theorem.b",[TclTheoryNotification.on_new_thm]))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclTheoryNotification.add_client "peq" 
(TclTheoryNotification.mk_client("TheoremsFrame",
".topwin1.definition.b",[TclTheoryNotification.on_new_definition]))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
(current_theory())
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
peq
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclCurrentTheoryNotification.add_client 
(TclCurrentTheoryNotification.mk_client("TkTheoryViewer",
".topwin1"))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - 2+2;

After 10 minutes kill the process with Ctrl-C (It doesn't react to Ctrl-D)

^C
Press Ctrl-C again to kill TkHolHelper.
  (NOTE: You may also use Ctrl-C to interrupt HOL computations )
  (TkHolHelper just wants to make sure you aren't trying to do that)
^C((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclCurrentTheoryNotification.remove_client 
(TclCurrentTheoryNotification.mk_client("ParentsFrame",
".topwin1.parents.b"))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclTheoryNotification.remove_client "peq" 
(TclTheoryNotification.mk_client("TheoremsFrame",
".topwin1.axiom.b",[TclTheoryNotification.on_new_axiom]))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - ((curry output) std_out) 
(concatl ["\nTCLML_DONE\nTCLML_STARTRESULT\n",
((TclTheoryNotification.remove_client "peq" 
(TclTheoryNotification.mk_client("TheoremsFrame",
".topwin1.theorem.b",[TclTheoryNotification.on_new_thm]))); "{ }")
,"\nTCLML_ENDRESULT\n"]);
hol90 = hol90 = hol90 = hol90 = hol90 = 
TCLML_DONE
TCLML_STARTRESULT
{ }
TCLML_ENDRESULT
val it = () : unit
hol90 - brut51-19% 
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 24 Mar 1995 09:04:53 +0000
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA04332;
          Fri, 24 Mar 95 09:04:49 GMT
Date: Fri, 24 Mar 95 09:04:49 GMT
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503240904.AA04332@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: oops

It seems I've done you a disservice, at least in part; the input is
seen properly after this bug, but I've lost the tk window, so this is
still pretty serious. :-)

Michael.
X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: drs1004
In-reply-to: Your message of "Fri, 24 Mar 1995 09:00:19 GMT."
             <9503240900.AA04313@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

>When just starting up using hol2.03 I get this error.  I don't
>see any window at all, and the shell requires two <RET>s to 
>'see' any input. 


I've now fixed this problem - I no longer compile the
relevant ML file.  I thought the problem would be the other
way round, i.e. that it wouldn't work with 2.02 but would
with 2.03, given that I compiled them against the hol 2.03
lisp sources. 

But now I think about it I used the 2.02 hol88 as the compiler,
which would be a problem...

Oh well.  It should work with 2.03 now, only it will be a tiny bit slower
at startup.

Thanks as always,
Don


X-Mailer: exmh version 1.6.1 5/23/95
To: Mats Larsson <mla@ida.liu.se>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Fri, 24 Mar 1995 10:03:54 +0100."
             <9503240903.AA02914@brut51> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

Hi again Mats,

Thanks again for helping me debug these problems.

> About the TkHolShell the problems I have is that the Alt key on my keyboard
> doesn't work which means I can't write things like [,],{,},` and |. The other
> problem has to do with cutting and pasting. My problem is that as soon as I
> press the left button on the mouse I get a (lightblue) marker. Unfortunately I
> can't 'unmark' this place again and the TkHolShell is forever without a cursor.
> I can go on working but then only by pasting things from another buffer and
> pressing the execute button. Ctrl-Return has no effect. So what I've done is to
> start a new TkHolShell everytime I've happened to press the left button and
> closed the old one. Not very convenient. I also wonder why I get different
> prompts and if this is significant. Sometimes my prompt looks like this '-\' but
> if I do ';<Ret>' I get back the normal `-` prompt. Looks like a debug mode or
> something.

Ah, at last something I can help you with!  The left button/selection 
problem is fixed from 2bp1 onwards.
The different prompts I have also fixed, but I'm not 100%
certain as I haven't had the bug in the same form you describe.

The "[,],{,},`,!" problem I don't understand - do you normally need
the Alt key to generate these key characters?  Is your keyboard
mapped differently (perhaps for Swedish?).  If that's the case I should
support some key mapping by default which allows you to type these
characters.  I can do this if you let me know how you would normally type
them (even better: let me know the X-Events you use, e.g. by using
"xev")

> The trace is appended to this mail. There are no delays anywhere really. It
> seems to produce a result every 10 seconds or so and it doesn't stop anywhere.
> The time it took to start was again 5 minutes.

Running two session of TkHolWorkbench on a Sun IPC with 16MB of real memory
I managed to get a startup time of about 3 minutes.  With one
session it was about 1 minute.
I think I will support a -quick option in the next release which 
will try to minimize startup time, perhaps at the expense of some 
functionality.
I'm not really consuming much in the way of system resources (1-2 meg),
but the startup time should be less.

BTW, my claim about "a few seconds extra startup time" was really
for hol88.  Maybe I should have said that explicitly!  When
we get separate compilation for hol90 (when, oh when?) the
startup times should be comparable.

However the fact that the stdin/stdout input prompt doesn't work at all for 
your system still makes me think that something else might be
causing the problem.  But what??!  Let's check a few more things.
I presume you are using Expect-5.7, tk3.6 and tcl7.3 which came with
the package.  I am also presuming you never hit the "Save" or "Reset"
buttons from one of the Option menus, and thus you have no
~/.tkholwb-defaults file.  

You should be able to run the following script in a plain hol90 or
hol90_peq session.  It is essentially exactly what the Tk process
pipes into the stdin of the hol process (I cut out the output portions
from the trace you sent me).  I would be interested in knowing
how long this takes to execute.  (BTW, if the script doesn't
run just chop out the offending command and try again!)

Other things you might try:
	- comment out line 84 of "TkHolWorkbench.0.2b/TkHolSlave/HolSlave.tcl"
by putting a "#" in front of it.

84: #		set stty_init "-echo -onlcr"

	- change the global timeout used for communications by deleting
line 91 of the same file and replacing it with:
		
91:		global timeout
91:		set timeout 5

I think the default timeout is 10 seconds, which might correlate with the
10 second pauses you observed.  Maybe.

Cheers,
Don


--------------------- Begin SML code to run ----------------------

.................

X-Mailer: exmh version 1.6.1 5/23/95
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Mon, 27 Mar 1995 12:51:10 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA07365;
          Mon, 27 Mar 95 12:51:00 BST
Date: Mon, 27 Mar 95 12:51:00 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503271151.AA07365@guillemot.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHolHelper 

 I had a theory with no theorems and then proved a theorem 
from the shell window.  This updated the theorems window in 
the TKhelper, but I had to open the triangle to see my new
theorem. 

Unfortunately, my new theorem was the second listed.  Above 
it was something I could click on (though it had no name, 
and was an empty space.)  When I did click on the empty
space, this happened. 

Mon Mar 27 12:50:52 BST 1995
mn200 got an error
TkHolHelper 0.2bp5
TK version 3.6
TCL version 7.3
SunOS guillemot 4.1.3_U1 5 sun4c

ill-typed phrase: ()
has an instance of type  void
which should match type  thm
1 error in typing
typecheck failed     


Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 28 Mar 1995 13:02:26 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA08328;
          Tue, 28 Mar 95 13:02:22 BST
Date: Tue, 28 Mar 95 13:02:22 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503281202.AA08328@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: selection bug in TRS window

Your "theorems containing" in the TkTRS window doesn't accept pastes,
(middle mouse click presses).  It would be quite nice to be able to
have stuff selected and paste it in to a box. 

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 28 Mar 1995 13:07:40 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA08338;
          Tue, 28 Mar 95 13:07:32 BST
Date: Tue, 28 Mar 95 13:07:32 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503281207.AA08338@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: more on searching and stuff

Your search result windows don't provide a close button of their own,
forcing the user to rely on window manager functionality to get rid of
them.  

Would it be possible to have a standard "definitional" search button
in the TkTRS that looked only in a theory's definitions, and only for
things of the form 
   !x1..xn. <foo> ... = (......)  ?

where <foo> is the thing you're interested in.  (Presuming that the
TRS package gives you this sort of ability.)

If I want to look up a definitional theorem, you could perhaps figure
out some nice way of linking to this from within theorem display
windows so I can click on a constant, and get back something defining
it. 

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 28 Mar 1995 13:14:46 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA08351;
          Tue, 28 Mar 95 13:14:41 BST
Date: Tue, 28 Mar 95 13:14:41 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503281214.AA08351@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: option setting windows

If you resize them to get a better look at the help text which
explains what the various options are, the text window doesn't resize
properly, and you don't get a better view of the text after all. 

Michael.

X-Mailer: exmh version 1.6.1 5/23/95
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 28 Mar 1995 13:17:39 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA08364;
          Tue, 28 Mar 95 13:17:34 BST
Date: Tue, 28 Mar 95 13:17:34 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503281217.AA08364@guillemot.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHolHelper 

 I tried to set a goal in the Proof window, and upon hitting
the Set Goal button, this happened. 

Tue Mar 28 13:17:26 BST 1995
mn200 got an error
TkHolHelper 0.2bp5
TK version 3.6
TCL version 7.3
SunOS guillemot 4.1.3_U1 5 sun4c

can't read "HolRichText_flags(tmpfile)": no such variable
    while executing
...........
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 28 Mar 1995 16:44:12 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA08723;
          Tue, 28 Mar 95 16:44:07 BST
Date: Tue, 28 Mar 95 16:44:07 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9503281544.AA08723@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: silly message boxes
Comments: Hyperbole mail buttons accepted, v3.18.2.

Having done nothing to the program except start it going, when I go
into the load_theory dialogue box, I get a little box saying "Scanning
<such and such a> directory" for the first time.  Subsequent directory
accesses all put the message on the bottom of the window, as they
should.  Perhaps the first message doesn't have an established window
to go to. 

Michael.
Return-Path: <shaw@cs.ucdavis.edu>
Delivery-Date: 
Received: from toadflax.cs.ucdavis.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 28 Mar 1995 22:54:14 +0100
Received: from ice.cs.ucdavis.edu by toadflax.cs.ucdavis.edu (4.1/UCD.CS.2.6) 
          id AA02234; Tue, 28 Mar 95 13:53:50 PST
Received: by ice.cs.ucdavis.edu (5.65/UCD.CS.2.6) id AA10730;
          Tue, 28 Mar 1995 13:54:14 -0800
Date: Tue, 28 Mar 1995 13:54:14 -0800
From: shaw@cs.ucdavis.edu (Rob Shaw)
Message-Id: <9503282154.AA10730@ice.cs.ucdavis.edu>
To: Donald.Syme@cl.cam.ac.uk
Subject: TkHolWb comments



Howdy, I've just looked at TkHolWb for the first time, and have some 
questions/comments. I only tried a simple define_type...

It looks interesting, and I could easily see myself using it -- though 
more for proving than theory development, I think. I appreciate that you
are working on a GUI.

Is there a notion of an underlying .ml file being built up which can be 
given to HOL directly? (Perhaps this is what logging is for, I didn't 
look there). There's two reasons why I ask:

I like to use Makefiles to keep everything up to date, so I'd need more than
the .holsig and .thms files. For instance, if I make a change in a theory, 
I just run make to rebuild all the needed theories by firing up HOL on the
.ml files. I'd like the workbench to leave me with an .ml file of what I did.

Also, to correct errors within a theories definitions, I need to get back to
the source. If I realize that I've made a mistake in a type definition, it
seems that I would have to cut the old definition somehow and paste it into 
the window in the define_type tool. Assuming, that my mistake was in an 
earlier HOL session, so I don't have the typedef source already in the window.
Again, I need the .ml file to do this, or my source is gone.

How do I change my fonts? I tried lines like:

tkHolWb*labelsFont:     helvetica_bold14
tkHolWb*menusFont:      helvetica14
tkHolWb*buttonsFont:    helvetica14
tkHolWb*feedbackFont:   helvetica12

in my .Xdefaults file, but nothing happened. Is tkHolWb the wrong application
name? (I tried tkholwb also)
I also tried to make changes via the GUI, but nothing happened when I
chose Save All in that window with all the font names, it didn't write me a
new ~/.tkholwb-defaults file. I cheated and edited the file directly even
though it says not to.

How do I make the results from define_type window go away?? I has no buttons,
and typing 'q' doesn't work.

The dialog box that asks for fixities went off the bottom of my screen 
because of the number of constructor functions and the font size I was using.
I have a virtual desktop, so I was able to pane down and get to the buttons.
With a normal window manager I think I would've been stuck. I'd suggest 
moving the buttons to the top of that box.

I'll say more after I try proving some things maybe next week....

Thanx!

Rob
X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: option setting windows 
In-reply-to: Your message of "Tue, 28 Mar 1995 13:14:41 -0000."
             <9503281214.AA08351@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> If you resize them to get a better look at the help text which
> explains what the various options are, the text window doesn't resize
> properly, and you don't get a better view of the text after all. 
> 

Fixed.  Thanks.


X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: selection bug in TRS window 
In-reply-to: Your message of "Tue, 28 Mar 1995 13:02:22 -0000."
             <9503281202.AA08328@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> Your "theorems containing" in the TkTRS window doesn't accept pastes,
> (middle mouse click presses).  It would be quite nice to be able to
> have stuff selected and paste it in to a box. 
> 

This should now work (when I install the change, which will be today).
Let me know if it is not satisfactory.  BTW, Ctrl-Y should work
also, as with most Emacs bindings.

>
>Your search result windows don't provide a close button of their own,
>forcing the user to rely on window manager functionality to get rid of
>them.  
>

Fixed.  The code was there, but wasn't being called.  I've also
put close buttons on the Script window and the result window
for TkDefineType.

>Would it be possible to have a standard "definitional" search button
>in the TkTRS that looked only in a theory's definitions, and only for
>things of the form 
>   !x1..xn. <foo> ... = (......)  ?
>
>where <foo> is the thing you're interested in.  (Presuming that the
>TRS package gives you this sort of ability.)
>
>If I want to look up a definitional theorem, you could perhaps figure
>out some nice way of linking to this from within theorem display
>windows so I can click on a constant, and get back something defining
>it. 


I think I will rewrite the search window.  How about the following?
	- a dropdown select box to choose the type of search
(e.g. 	Theorems Containing a Term... 
	Theorems Matching a Term...
	Theorem Names Matching...
	Rewrites of a Term...
	Definition of a Constant...
	An Arbitrary TRS pattern...)
where choosing each causes a different set of entry fields to appear
depending on what extra information is needed.  It might be possible to
make this partially extensible withot Tcl programming.

I like your idea about bringing up definitions quickly.  Sometimes I
also think one wants to treat a derived theorem as the "defining 
property" of a constant, but that means introducing some classification
of theorems (or just searching in a smarter fashion?)

Don


X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: silly message boxes 
In-reply-to: Your message of "Tue, 28 Mar 1995 16:44:07 -0000."
             <9503281544.AA08723@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------
> Having done nothing to the program except start it going, when I go
> into the load_theory dialogue box, I get a little box saying "Scanning
> <such and such a> directory" for the first time.  Subsequent directory
> accesses all put the message on the bottom of the window, as they
> should.  Perhaps the first message doesn't have an established window
> to go to. 
> 

Your guess at why it does this is correct.  The popup message box
will appear from time to time when TkHolWorkbench can't work out
where else to put the feedback.  I will work on reducing
unnecessary occurrences of this.

Thanks,
Don

X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: drs1004
In-reply-to: Your message of "Mon, 27 Mar 1995 12:51:00 -0000."
             <9503271151.AA07365@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------



> I had a theory with no theorems and then proved a theorem 
>from the shell window.  This updated the theorems window in 
>the TKhelper, but I had to open the triangle to see my new
>theorem. 
>
>Unfortunately, my new theorem was the second listed.  Above 
>it was something I could click on (though it had no name, 
>and was an empty space.)  When I did click on the empty
>space, this happened. 

I've fixed this now.  Thanks as usual.  You still have to press on the
triangle though.  I might fix this sometime as it is a little annoying.

Don

X-Mailer: exmh version 1.5.2 12/21/94
To: shaw@cs.ucdavis.edu (Rob Shaw)
cc: 
Subject: Re: TkHolWb comments 
In-reply-to: Your message of "Tue, 28 Mar 1995 13:54:14 -0800."
             <9503282154.AA10730@ice.cs.ucdavis.edu> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

Hi Rob,

Thanks very much for trying TkHolWorkbench out.  I'm glad
you got it installed OK.  BTW, what platform are you running on?
I'd be interested to know if things seem particularly slow, especially
with the stdin/stdout, as I've been having problems with one
person using it on a slightly smaller machine than mine.
His startup-time when using "tkholhelper -hol hol90" was 10 minutes!

> 
> Howdy, I've just looked at TkHolWb for the first time, and have some 
> questions/comments. I only tried a simple define_type...
> 
> It looks interesting, and I could easily see myself using it -- though 
> more for proving than theory development, I think. I appreciate that you
> are working on a GUI.
> 
> Is there a notion of an underlying .ml file being built up which can be 
> given to HOL directly? (Perhaps this is what logging is for, I didn't 
> look there). There's two reasons why I ask:
> 
> I like to use Makefiles to keep everything up to date, so I'd need more than
> the .holsig and .thms files. For instance, if I make a change in a theory, 
> I just run make to rebuild all the needed theories by firing up HOL on the
> .ml files. I'd like the workbench to leave me with an .ml file of what I did.
> 
> Also, to correct errors within a theories definitions, I need to get back to
> the source. If I realize that I've made a mistake in a type definition, it
> seems that I would have to cut the old definition somehow and paste it into 
> the window in the define_type tool. Assuming, that my mistake was in an 
> earlier HOL session, so I don't have the typedef source already in the window.
> Again, I need the .ml file to do this, or my source is gone.
> 

Yes, a log file is produced, but at the moment this is very crude, and
hard to direct in the way you might like. 

Your way of working is very close to the standard model I want to support.
I will be working on proof/definition replay over the coming months,
but it might be a while before something really robust and usable 
appears.  In the meantime I will provide better support for redirecting
and viewing the logged output.  What I would really love is to integrate
with your favourite editor, automatically updating the display
of the file that is being worked on, but neither emacs or vi provide the
necessary functionality to allow this.  Continued feedback on this
is welcomed!

> How do I change my fonts? I tried lines like:
> 
> tkHolWb*labelsFont:     helvetica_bold14
> tkHolWb*menusFont:      helvetica14
> tkHolWb*buttonsFont:    helvetica14
> tkHolWb*feedbackFont:   helvetica12
> 
> in my .Xdefaults file, but nothing happened. Is tkHolWb the wrong application
> name? (I tried tkholwb also)
> I also tried to make changes via the GUI, but nothing happened when I
> chose Save All in that window with all the font names, it didn't write me a
> new ~/.tkholwb-defaults file. I cheated and edited the file directly even
> though it says not to.
>

At the moment I will only be supporting the options in the
.tkholwb-defaults file, so it is probably best not to use
a .Xdefaults.  I know this is non-standard - sorry.  It may work
to use the class name "Tk" (this is a bug in Tk version 3.6 which
I can't avoid).

The bug is that you have to hit "Return" after making a change to
options which are one-line entry fields (before the 
application will take notice of the change).  I have fixed this now - 
thanks for reminding me to do this!
 
> How do I make the results from define_type window go away?? I has no buttons,
> and typing 'q' doesn't work.
> 

My window manager (mwm) has a destroy button in the top left corner (ala
MS Windows), so I made the mistake of leaving a Close button off some
of the windows.  I've now fixed this, and if you download a new copy
from tomorrow the fix will be included.

> The dialog box that asks for fixities went off the bottom of my screen 
> because of the number of constructor functions and the font size I was using.
> I have a virtual desktop, so I was able to pane down and get to the buttons.
> With a normal window manager I think I would've been stuck. I'd suggest 
> moving the buttons to the top of that box.
> 

Good point (I'd never tried out a large example...).  I'll rewrite the
box to have the constructors in a scrollable listbox.  For the moment
I'll do as you suggest.

> I'll say more after I try proving some things maybe next week....
> 

I'll look forward to your comments.

Thanks again,
Don

-----------------------------------------------------------------------------
At the lab:							     At home:
The Computer Laboratory                                      c/o Trinity Hall
New Museums Site                                                      CB2 1TJ
University of Cambridge                                         Cambridge, UK
CB4 3BD
Cambridge, UK
-----------------------------------------------------------------------------

X-Mailer: exmh version 1.5.2 12/21/94
To: Michael.Norrish@cl.cam.ac.uk
cc: 
Subject: Re: new infix definitions don't appear 
In-reply-to: Your message of "Mon, 10 Apr 1995 16:02:29 -0000."
             <9504101502.AA19743@guillemot.cl.cam.ac.uk> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

> >> If I do a new_infix_definition in my hol shell, this is not
> >> reflected in the Definitions window at all.  (new_definition works
> >> fine.)
> 
> > Yes, this is a bug.  Thanks (it's easy for me to fix).
> 
> I figured it would be; at a guess you're watching the input for
> certain key phrases and doing appropriate things as you see them,
> right? 
> 

Sort of.  I redefine functions with side effects on things
I display, such as new_definition and so on.  The facility allows
an arbitrary number of "clients" to register themselves as
being interested in knowing when changes occur to a piece of
state.  The clients are my interface components, and the
HOL session acts like a data server.

> > If you use hol90, you will get to use the really nifty subterm
> > selection work I'm just doing now....
> 
> Let me guess, you're not going to do it for HOL88, providing yet
> another compelling reason why I should Make The Change(tm) :-)
> 

Well, you're right on that one. I could implement it in hol88, 
but I don't really want to have to.  The main problem is that
the implementation itself would be so different given the
way hol88 does pretty printing.

Don


Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Mon, 10 Apr 1995 15:50:53 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA19722;
          Mon, 10 Apr 95 15:50:48 BST
Date: Mon, 10 Apr 95 15:50:48 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9504101450.AA19722@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: new infix definitions don't appear
Comments: Hyperbole mail buttons accepted, v3.18.2.

If I do a new_infix_definition in my hol shell, this is not reflected in
the Definitions window at all.  (new_definition works fine.)

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Mon, 10 Apr 1995 16:02:40 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA19743;
          Mon, 10 Apr 95 16:02:29 BST
Date: Mon, 10 Apr 95 16:02:29 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9504101502.AA19743@guillemot.cl.cam.ac.uk>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Subject: Re: new infix definitions don't appear
In-Reply-To: <"swan.cl.cam.:206070:950410145608"@cl.cam.ac.uk>
References: <9504101450.AA19722@guillemot.cl.cam.ac.uk> <"swan.cl.cam.:206070:950410145608"@cl.cam.ac.uk>
Comments: Hyperbole mail buttons accepted, v3.18.2.

>>>>> "Donald" == Donald Syme <Donald.Syme@cl.cam.ac.uk> writes:

>> If I do a new_infix_definition in my hol shell, this is not
>> reflected in the Definitions window at all.  (new_definition works
>> fine.)

> Yes, this is a bug.  Thanks (it's easy for me to fix).

I figured it would be; at a guess you're watching the input for
certain key phrases and doing appropriate things as you see them,
right? 

> If you use hol90, you will get to use the really nifty subterm
> selection work I'm just doing now....

Let me guess, you're not going to do it for HOL88, providing yet
another compelling reason why I should Make The Change(tm) :-)

> Coming to Fitzbillies?  See you then.

Yeah, see you then.

Michael.


Return-Path: <chet@watson.ibm.com>
Delivery-Date: 
Received: from watson.ibm.com (no rfc931) by nene.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 11 Apr 1995 15:39:12 +0100
Received: from WATSON by watson.ibm.com (IBM VM SMTP V2R3) with BSMTP id 5315;
          Tue, 11 Apr 95 10:38:40 EDT
Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0" id 4143;
          Tue, 11 Apr 1995 10:38:40 EDT
Received: from lusitania.watson.ibm.com 
          by yktvmv.watson.ibm.com (IBM VM SMTP V2R3) with TCP;
          Tue, 11 Apr 95 10:38:39 EDT
Received: from localhost by lusitania.watson.ibm.com (AIX 3.2/UCB 5.64/930311) 
          id AA06170; Tue, 11 Apr 1995 10:38:38 -0400
Message-Id: <9504111438.AA06170@lusitania.watson.ibm.com>
X-Mailer: exmh version 1.5.3 12/28/94
To: Donald.Syme@cl.cam.ac.uk
Subject: Re: SML and Tcl/Tk
In-Reply-To: Your message of 11 Apr 1995 12:16:18 GMT. <3mdrui$93c@lyra.csx.cam.ac.uk>
Mime-Version: 1.0
Date: Tue, 11 Apr 1995 10:38:37 -0400
From: Chet Murthy <chet@watson.ibm.com>



> Perhaps the Caml-Tk people could port Caml-Tk
> to NJML when this is possible.

I doubt that this will happen.  SML/NJ is a rather large and topheavy
beast.  CAML is light and simple, and after having written a *lot*
of code in both (I write Nuprl in SML, and a concurrent, thread-safe,
SUNRPC/XDR stack too, to run Nuprl in a distributed, concurrent fashion,
and the new Coq V5.10 in caml-light), I can attest to the fact that
caml-light is simply a better development/prototyping environment.

But they're both dead meat -- C++ has won.

--chet--

X-Mailer: exmh version 1.5.2 12/21/94
To: info-hol@leopard.cs.byu.edu
cc: stuart@dcs.gla.ac.uk
Subject: TkHolWorkbench 0.2 now available
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------


TkHolWorkbench 0.2 is now available for ftp.  This version is identical
to TkHolWorkbench 0.2 (beta) patch 7. 

Thanks to Michael Norrish, Mike Benjamin, Wai Wong, Mats Larsson, Rob Shaw,
Paul Curzon and Mark Staples for taking the time to report
bugs and problems in the beta release.

The list of bug fixes since TkHolWorkbench 0.2b patch 0 is shown below.

Site: ftp.cl.cam.ac.uk
Choose one of:
 	hvg/contrib/TkHolWorkbench/TkHolWorkbench.0.2.tar.gz
 	hvg/contrib/TkHolWorkbench/TkHolWorkbench.0.2.WithoutTclTk.tar.gz
	hvg/contrib/TkHolWorkbench/TkHolWorkbench.0.2.WithoutTclTkExpect.tar.gz

(The latter files are smaller files if you already have Tcl/Tk and/or
Expect installed on your system.  You may discover this by trying
to run the programs "wish" (for tcl/tk) and "expectk" (for Expect).)

At Cambridge TkHolWorkbench may be run by executing
        /usr/groups/hol/interfaces/TkHolWorkbench/bin/tkholhelper


Version 0.2bp7 (released Tue Apr  4 17:37 BST 1995):

	-  When  a  type  was  defined using TkDefineType, the
	wrong  theorem  and definition names were appearing in
	the   TkTheoryViewer.   A  more  general  notification
	scheme has now been introduced to fix this.

	-  The  SearchResults windows now have a close button.
	So  do  the  result  window  from TkDefineType and the
	script window from TkGoalProof.
	
	-  The  help text in each of the "Options" windows now
	resizes properly.
	
	-   An   empty   definition/theorem/axiom   no  longer
	appears  at  the  top  of  a  list  of such objects in
	TkTheoryViewer.  This  was  happening  when  the  list
	itsel  was  meant  to  be  completely empty. Thanks to
	Michael Norrish for reporting this bug.
	
	-  Backups  in  TkGoalProof  past  the  first goal now
	allow  you  to  re-edit  the  original  goal. This now
	works for both hol88 and hol90.

	-   Added   assumption   numbering  (and  option)  and
	assumption  ordering  (first  on  top/first on bottom)
	(and option).

	-  Reintroduced  automatic  HOL_ERR  checking for most
	computations in hol90. Why did I ever take this out?

	-  Added  automatic  CHANGED_TAC  around  each  tactic
	that  is  applied  so  an  error is raised if the goal
	does not change. There is an option to turn this off.

Version 0.2bp6:
	-  Fixed  initial  expansion  of  the theory tree. The
	tree  was  being  computed  but  not  drawn. Also made
	default  initial  expansion  depth  0.  Also  made the
	list  of  theories  at  which  to  prune  the  initial
	expansion a configuration option.

Version 0.2bp5:
	
	-  you  can  now  specify  the initial expansion depth
	both  as  an  option under the "Options" menu and as a
	command line option:
		tkholhelper -theoryTreeInitialExpand 1

	-  Normally  you  would  exit  by  pressing  Ctrl-D or
	using  "exit()"  from  the  hol90  prompt. You can now
	exit   from   TkTheoryViewer   as  well  in  case  the
	stdin/stdout isn't working.

Version 0.2bp4:

	- Fixed bug added accidently in 0.2bp3.

Version 0.2bp3:

	-  Added  store_thm  to  the functions modified so the
	interface can track changes to the theory files.
	
Version 0.2bp1:

	-   Only   the   goal   window   now  expands  when  a
	TkGoalProof window is resized.
	
	-   Fixed  bug  with  "Reset"  on  option  menu.  This
	cleared the option database when it shouldn't have.

	- Added tactic history list/menu to TkGoalProof

	-  TkTheoryViewer  parents  frame no longer resurrects
	itself  even  when it has been collapsed when a theory
	changes.

	-   "shell"   widgets   (Tcl   and  Hol)  now  support
	selection   and   pasting  better.  Initial  focus  on
	shells  also  works  better. Pasting into text widgets
	is also a little less flaky.

	-  Fixed  some  bugs  with feedback lines and blocking
	windows.  When  executng commands from the HOL command
	line,  the  windows  will  in  general now block. Also
	the focus is grabbed when the application is busy.

	- Added feedback lines to most top-level windows.

	-  Mail  reports  can  now  use "mail" and not just MH
	"send". Mail reports are now a decent size as well.

	-  Added  a  menu  entry  to  mail  a  bug  report (an
	explicit Tcl error is no longer necessary).

	-    Fixed    most    packing    problems   with   the
	TkTheoryViewer  window.  Collapsed  boxes  should  now
	not  take  up more space than they ought after the mai
	nwindow has been expanded.
	
Return-Path: <schubert@cs.pdx.edu>
Delivery-Date: 
Received: from cs.pdx.edu (user root (mailer)) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 18 Apr 1995 17:59:00 +0100
Received: from draco.cs.pdx.edu (draco.cs.pdx.edu [131.252.21.201]) 
          by cs.pdx.edu (8.6.10/CATastrophe-12/23/94-P) with ESMTP id JAA07921;
          Tue, 18 Apr 1995 09:58:32 -0700 for <Donald.Syme@cl.cam.ac.uk>
Received: from localhost (localhost.cs.pdx.edu [127.0.0.1]) 
          by draco.cs.pdx.edu (8.6.10/CATastrophe-9/18/94-C) with ESMTP 
          id JAA00393; Tue, 18 Apr 1995 09:58:21 -0700 
          for <Donald.Syme@cl.cam.ac.uk>
Message-Id: <199504181658.JAA00393@draco.cs.pdx.edu>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Subject: Re: TkHolWorkbench 0.2 available for beta testing
Date: Tue, 18 Apr 1995 09:58:15 -0700
From: Tom Schubert <schubert@cs.pdx.edu>

Don,

I am trying to install TkHolWorkbench for use with hol88, but am running into
a few configuration problems.  I believe this is due to my use of lucid common
lisp, which creates object files with a ".lbin" rather than ".o" suffix.
At this point, I have modified the following files to compensate for this
difference: 

	configure
	HolRichText/Makefile
        TkHolSlave/Makefile
        TkHolSlave/HolSlave.tcl

Are there any other changes that you believe would be necessary?

-Tom
X-Mailer: exmh version 1.5.2 12/21/94
To: Tom Schubert <schubert@cs.pdx.edu>
cc: 
Subject: Re: TkHolWorkbench 0.2 available for beta testing 
In-reply-to: Your message of "Tue, 18 Apr 1995 09:58:15 PDT."
             <199504181658.JAA00393@draco.cs.pdx.edu> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

Hi Thomas,

> I am trying to install TkHolWorkbench for use with hol88, but am running into
> a few configuration problems.  I believe this is due to my use of lucid common
> lisp, which creates object files with a ".lbin" rather than ".o" suffix.
> At this point, I have modified the following files to compensate for this
> difference: 
> 
> 	configure
> 	HolRichText/Makefile
>         TkHolSlave/Makefile
>         TkHolSlave/HolSlave.tcl
> 
> Are there any other changes that you believe would be necessary?
> 
> -Tom

Thanks for this information - I'll change my configuration manager
and make the lisp compiler and its obj suffix configuration options.

While I can't think of other changes that will be needed offhand,
I have hacked some lisp files
substantially to get Richtext printing working - you can see
the changes for yourself in the files under HolRichText/lisp.
The code I am most concerned about is code which uses "concatl".
For example, "f-tcl-format.l" contains flush-output-buffer (new
and old shown below).  I think my implementation of this is gross,
since I'm sure I don't have to do an nreverse, cons and concatl
each time flush-output-buffer gets called.  But I haven't 
yet found out from a lisp expert how this should
be done.

I don't know as much lisp as I should given the number
of changes I made, and so while I see no reason why the changes shouldn't
work, I am speaking from a position of ignorance.
Unfortunately, nothing much will work
if the lisp changes don't.  I'd be glad to hear if you get it up and 
running.

Cheers,
Don Syme


The TkHolWorkbench verison of flush-output-buffer is:

(defun flush-output-buffer nil
   ;; Some data types (e.g. streams) cannot be catenated in franz, so
   ;; print out items in buffer separately.
   (cond (%catching-output 
            (setq %caught-output (concatl (cons %caught-output (nreverse 
%output-buffer)))))
         (t
            #+franz (mapc #'llprinc (nreverse %output-buffer))
            #-franz (llprinc (apply #'catenate (nreverse %output-buffer)))
   ))
   (setq %output-buffer nil))

which has replaced

(defun flush-output-buffer nil
   ;; Some data types (e.g. streams) cannot be catenated in franz, so
   ;; print out items in buffer separately. 
   #+franz (mapc #'llprinc (nreverse %output-buffer))
   #-franz (llprinc (apply #'catenate (nreverse %output-buffer)))
   (setq %output-buffer nil))


Return-Path: <root@andromeda.fmi.uni-passau.de>
Delivery-Date: 
Received: from kirk.fmi.uni-passau.de (user [sk2t+5la+r0I+9+PMFH+4All1SIK81ay] !OR! root@andromeda.fmi.uni-passau.de) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Fri, 21 Apr 1995 09:13:24 +0100
Received: from andromeda.grass (andromeda.fmi.uni-passau.de) 
          by kirk.fmi.uni-passau.de with SMTP id AA22642 (5.65c8/IDA-1.4.4 
          for <Donald.Syme@cl.cam.ac.uk>); Fri, 21 Apr 1995 09:40:11 +0200
Received: by andromeda.grass (5.x/SMI-SVR4) id AA07152;
          Fri, 21 Apr 1995 09:39:29 +0200
From: root@andromeda.fmi.uni-passau.de (0000-Admin\(0000\))
Message-Id: <9504210739.AA07152@andromeda.grass>
Subject: problems with TkHolWorkbench
To: Donald.Syme@cl.cam.ac.uk
Date: Fri, 21 Apr 1995 09:39:28 +0200 (MET DST)
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text


Dear Mr. Syme,

today, I have installed TkHolWorkbench 0.2b under
SunOS Release 5.4 (Solaris).

First, I had to install expectk (I had to add -lsocket to the 
expect Makefile in order to link expectk successfully).

Then, everything could be compiled and linked. As mentioned in your
INSTALL file, I tried  ./bin/tkholhelper with the followin result:





aldebaran 160> bin/tkholhelper
Making tclIndex for /mount/project.andromeda/TkHolWorkbench.0.2b/listedit...
couldn't open "stedit.tcl": No such file or directory
    while executing
"open $file"
    invoked from within
"set f [open $file]..."
    invoked from within
"if $error {
            set code $errorCode
            set info $errorInfo
            catch {close $f}
            cd $oldDir
            error $msg $info $code
        }"
    ("foreach" body line 13)
    invoked from within
"foreach file [eval glob $args] {
        set f ""
        set error [catch {
            set f [open $file]
            while {[gets $f line] >= 0} {
                if [regexp {^proc[      ]+([^  ..."
    (procedure "auto_mkindex" line 13)
    invoked from within
"auto_mkindex $packagedir *.tcl"
    invoked from within
"if {$gui_flags(mkindex) || ![file exists $packagedir/tclIndex]} {
        puts "Making tclIndex for $packagedir..."
        auto_mkindex $packagedir *.tcl
   ..."
    ("foreach" body line 2)
    invoked from within
"foreach packagedir $packagedirs {
    if {$gui_flags(mkindex) || ![file exists $packagedir/tclIndex]} {
        puts "Making tclIndex for $packagedir. ..."
    (file "/mount/project.andromeda/TkHolWorkbench.0.2b/bin/runpackages.tcl" line 133)
 

Unfortunately, I am not familiar with TCL, TK or EXPECT.
Is there any help for me?

Sincerely,

   Matthias Mutz

   (mutz@fmi.uni-passau.de)
X-Mailer: exmh version 1.5.2 12/21/94
To: root@andromeda.fmi.uni-passau.de (0000-Admin\(0000\))
cc: mutz@fmi.uni-passau.de
Subject: Re: problems with TkHolWorkbench 
In-reply-to: Your message of "Fri, 21 Apr 1995 09:39:28 +0200."
             <9504210739.AA07152@andromeda.grass> 
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
--------

Dear Matthias,

Thanks for reporting back to me with the problem you have encountered.
Unfortunately I don't have a "quick fix", but it doesn't look unfixable.
Bear with me!

> Making tclIndex for /mount/project.andromeda/TkHolWorkbench.0.2b/listedit...
> couldn't open "stedit.tcl": No such file or directory
>    while executing
> "open $file"
>     invoked from within
> "set f [open $file]..."
>     invoked from within

When you run tkholhelper for the first time, it has to 
make "indexes" all the Tcl files in the distribution.  Something
is going wrong with this.  While I don't understand why the indexing
routine is looking for "stedit.tcl" (which seems to be a mutilated
version of "listedit.tcl" which is in the given directory), the
following points may be helpful:

	- When you run "tkholhelper" for the first time, you need to have 
read/write access to the directories within the TkHolWorkbench installation.

	- You may need to adjust your root directory
"/mount/project.andromeda..." to a path that is not automounted.
You will need to do this if the pathname varies from machine to machine.
Do this using ./setup.

What I think is most likely is that your files have got 
corrupted somehow, since the program is finding "stedit.tcl" in the
directory but is unable to read it.  (Or perhaps you just don't
have read permission and the name has got jumbled in the error
message).  I would suggest you:

	- download a new version (the easy solution)

	- if the problem occurs again, or if you or fairly sure
the files have not been corrupted at all, then could you "talk" me on:
		drs1004@albatross.cl.cam.ac.uk
Perhaps send some email to arrange a time (we are one hour
earlier here I believe).  I will ask you to do some checks for me and
we should be able to sort out the problem in no time at all.  I am at
my computer most of the time...

Cheers,
Don Syme
-----------------------------------------------------------------------------
At the lab:							     At home:
The Computer Laboratory                                      c/o Trinity Hall
New Museums Site                                                      CB2 1TJ
University of Cambridge                                         Cambridge, UK
CB4 3BD
Cambridge, UK
                        email: Donald.Syme@cl.cam.ac.uk
-----------------------------------------------------------------------------

Return-Path: <mutz@fmi.uni-passau.de>
Delivery-Date: 
Received: from kirk.fmi.uni-passau.de (user [f54TviCQqvj3c5HYPUTvJUTZ0jdLUaUK] !OR! mutz@fmi.uni-passau.de) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) outside ac.uk;
          Fri, 21 Apr 1995 16:01:33 +0100
Received: from uhura.fmi.uni-passau.de by kirk.fmi.uni-passau.de with SMTP 
          id AA28424 (5.65c8/IDA-1.4.4 for <Donald.Syme@cl.cam.ac.uk>);
          Fri, 21 Apr 1995 17:01:16 +0200
From: Matthias Mutz <mutz@fmi.uni-passau.de>
Message-Id: <199504211501.AA28424@kirk.fmi.uni-passau.de>
Subject: Re: problems with TkHolWorkbench
To: Donald.Syme@cl.cam.ac.uk (Donald Syme)
Date: Fri, 21 Apr 1995 17:00:00 +0200 (MET DST)
In-Reply-To: <"swan.cl.cam.:123640:950421122706"@cl.cam.ac.uk> from "Donald Syme" at Apr 21, 95 01:26:49 pm
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 199


Donald,

thank you for your hint. The problems seemed to occur with expectk.
After getting and installing it once more everything works.

Your tool seems to be great... I will try it...

Matthias.

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Mon, 1 May 1995 13:57:23 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA08665;
          Mon, 1 May 95 13:57:11 BST
Date: Mon, 1 May 95 13:57:11 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9505011257.AA08665@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: another tkholwb idea

Can you keep track of all the lets done at the top level?  If so,
would it not be a nice thing to have a sorted list of all these
available to be perused by the user?  You could presumably include the
text of their definitions, allowing someone to check up on function
definitions conveniently, and perhaps cut and paste slightly new
versions into their shell.

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from auk.cl.cam.ac.uk (user mn200 (rfc931)) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) to cl; Tue, 16 May 1995 16:35:14 +0100
Received: by auk.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA27562;
          Tue, 16 May 95 16:35:01 BST
Date: Tue, 16 May 95 16:35:01 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9505161535.AA27562@auk.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: load library option in tkholwb

Wouldn't it be possible to have the load library action in the File
menu bring up a dialog box with a list of files in it?  After all, you
know the value of the variable containing the library pathname. 

As it is you have to type in the name of the library which seems
painful. 

Michael.
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Tue, 30 May 1995 16:20:10 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA28523;
          Tue, 30 May 95 16:20:06 BST
Date: Tue, 30 May 95 16:20:06 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9505301520.AA28523@guillemot.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: have I complained to you about this before? :-)

You can't start tkholwb in the background and have it work.  It would
be quite nice if you could have it start up in a quiet mode so that
you didn't have to give it an entire (interactive) shell of its own.
Could you spawn a sub-shell and make it run HOL within that?  Do the
interpreters (HOL88 and 90) require active ttys to write down or
something? 

Michael.
Return-Path: <windley@cs.byu.edu>
Delivery-Date: 
Received: from leopard.cs.byu.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 30 May 1995 20:05:20 +0100
Received: from bobcat.cs.byu.edu by leopard.cs.byu.edu 
          with ESMTP (1.37.109.15/16.2) id AA037620634;
          Tue, 30 May 1995 13:03:55 -0600
Received: from cs.byu.edu (localhost) 
          by bobcat.cs.byu.edu (1.37.109.15/CS-Client) id AA220010617;
          Tue, 30 May 1995 13:03:38 -0600
Message-Id: <199505301903.AA220010617@bobcat.cs.byu.edu>
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Subject: Re: Adding TkHolWorkbench to the HOL information page
In-Reply-To: Your message of Tue, 30 May 1995 19:52:16 +0100. <"swan.cl.cam.:213510:950530185230"@cl.cam.ac.uk>
Date: Tue, 30 May 1995 13:03:37 -0600
From: Phil Windley <windley@cs.byu.edu>


On Tue, 30 May 1995 19:52:16 +0100 Donald Syme writes
+--------------------
| In the HOL information page (http://lal.cs.byu.edu/lal/hol-documentation.htm
| you have a section for CHOL.  Could you add a section for
| TkHolWorkbench?  Something like the following:

Paul, will you take care of this?  Thanks.

--phil--
Return-Path: <black@lal.cs.byu.edu>
Delivery-Date: 
Received: from leopard.cs.byu.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 30 May 1995 21:28:18 +0100
Received: from jaguar.cs.byu.edu by leopard.cs.byu.edu 
          with ESMTP (1.37.109.15/16.2) id AA075465623;
          Tue, 30 May 1995 14:27:04 -0600
From: Paul "E." Black <black@lal.cs.byu.edu>
Received: by jaguar.cs.byu.edu (1.37.109.15/CS-Client) id AA020985564;
          Tue, 30 May 1995 14:26:04 -0600
Date: Tue, 30 May 1995 14:26:04 -0600
Message-Id: <199505302026.AA020985564@jaguar.cs.byu.edu>
To: Donald.Syme@cl.cam.ac.uk
Subject: Re: Adding TkHolWorkbench to the HOL information page

I added a reference to TkHolWorkbench.  Thank you ever so much for
sending HTML; it is much easier to integrate it.  In keeping with
the other entries, I didn't put the author's (your) name in it.
I looked the TkHolWorkbench page.  You have links to Cambridge
and the Computer Laboratory, but none to your own home page.

-paul-

P.S. Hope to see you at |-HOL'95
X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <eisen@fzi.de>
Delivery-Date: 
Received: from relay.xlink.net (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Wed, 31 May 1995 08:48:27 +0100
Received: from gate.fzi.de by relay.xlink.net id <39104-0@relay.xlink.net>;
          Wed, 31 May 1995 09:47:56 +0000
Received: from ACID0.fzi.de by gate.fzi.de with SMTP (PP) 
          id <03183-0@gate.fzi.de>; Wed, 31 May 1995 09:47:53 +0200
Received: from fzi.de by acid0.fzi.de id <28792-0@acid0.fzi.de>;
          Wed, 31 May 1995 09:47:48 +0200
To: Donald.Syme@cl.cam.ac.uk
Date: Wed, 31 May 1995 09:47:48 +0200
From: Dirk Eisenbiegler <eisen@fzi.de>
Sender: eisen@fzi.de
Message-ID: <"acid0.fzi..376:31.04.95.07.47.50"@fzi.de>
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHolHelper 

 

I have installed the package, but it doesn't jet work. I'm using HOL90.
After entering

  tkholwb -holtype hol90 -hol /tools/provers/bin/hol

a window is raised and I am told that some packages are initialized and then 
HOL90 is started. Afterwards the error occurs.
I guess, the system tries to use the package "trs" although - as I read
in your THANKS-file - this library does not exist for HOL90.
I am not sure, that this is the reason why it fails.

How to get the real reason for this error? (The HOL_ERR is not printed)
Can you help me?

Thanks, Dirk

Wed May 31 09:47:41 MET DST 1995
eisen got an error
TkHolHelper 0.2bp7
TK version 3.6
TCL version 7.3
SunOS fangorn 4.1.3 2 sun4m

uncaught exception HOL_ERR

    while executing
"error $errval"
    invoked from within
"if {$error} { 
	    error $errval
	}"
    invoked from within
"if {$run} {
       	global expect_out
	set return 0
	set error 0
	TkHolSlave::SIGINT_effects_slave
	incr busy
	set old_log_user [log_user]
	log_user [ ..."
    (procedure "ML" line 108)
    invoked from within
"ML -toplevel 1 "find_library [ml_string trs]""
    invoked from within
"if [hol90] {
	    ML -toplevel 1 "Globals.library_path := \n([ml_string 
$TkTRS_library/trs90/] \n:: (!Globals.library_path))"
	    ML -toplevel 1 "fin ..."
    (procedure "TkTRS::InitialisePackage" line 6)
    invoked from within
"[set package]::InitialisePackage"
    invoked from within
"if [llength [info commands [set package]::InitialisePackage]]==1 {
    	        [set package]::InitialisePackage
	    }"
    ("foreach" body line 13)
    invoked from within
"foreach package $packagenames {
	    if {[info exists busy] && !$raised_busy} {
	        incr busy
		set raised_busy 1
	    } 
	    set feedback [list ..."

Return-Path: <eisen@fzi.de>
Delivery-Date: 
Received: from relay.xlink.net (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Wed, 31 May 1995 11:56:07 +0100
Received: from gate.fzi.de by relay.xlink.net id <33371-0@relay.xlink.net>;
          Wed, 31 May 1995 12:55:39 +0000
Received: from ACID0.fzi.de by gate.fzi.de with SMTP (PP) 
          id <10849-0@gate.fzi.de>; Wed, 31 May 1995 12:55:38 +0200
Received: from fzi.de by acid0.fzi.de with SMTP (PP) id <24301-0@acid0.fzi.de>;
          Wed, 31 May 1995 12:55:33 +0200
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
In-reply-to: Your message of "Wed, 31 May 1995 11:25:53 BST." <"swan.cl.cam.:288850:950531102613"@cl.cam.ac.uk>
X-Mailer: exmh version 1.4.1 7/21/94
Date: Wed, 31 May 1995 12:55:31 +0200
From: Dirk Eisenbiegler <eisen@fzi.de>
Message-ID: <"acid0.fzi..303:31.04.95.10.55.36"@fzi.de>

> 
Hi Don,

thanks for your fast support.

> I think the problem may be that you have not run
> 	make hol90
> from the top directory.  I just installed the package from scratch 
> without doing this and got exactly the error you describe.  Or maybe
> something has gone wrong with the make - run it again and send me the
> output if this is the case.

Although I ran "make hol90", the error remains the same.
"make hol90" produced the following output:

(cd HolRichText; make hol90)
(cd TkHolSlave; make hol90)
(cd HolTheoryNotification; make hol90)
(cd cmldecls; make)
(cd TkTRS/trs90; make hol90)
echo 'val trs_lib_path = "/tools/provers/TkHolWorkbench.0.2b/TkTRS/trs90/";' \
     'use "trs_lib.sig";' \
     'use "trs_lib.sml";' \
     'exit();'  | 

"make" did not work, since the system intended to target HOL88, which
I do not have.

Dirk


X-Mailer: exmh version 1.6.1 5/23/95
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from guillemot.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Mon, 5 Jun 1995 14:32:37 +0100
Received: by guillemot.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA00683;
          Mon, 5 Jun 95 14:32:25 BST
Date: Mon, 5 Jun 95 14:32:25 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9506051332.AA00683@guillemot.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHolHelper 

I started it going on an executable which I had saved to disk
and in which I had done an open Psyntax.  By the looks of the
top of the error message it then tried to use 
Rsyntax.dest_const and failed miserably.

Michael.

Mon Jun  5 14:32:20 BST 1995
mn200 got an error
TkHolHelper 0.2p0
TK version 3.6
TCL version 7.3
SunOS guillemot 4.1.3_U1 5 sun4c

operator and operand don't agree (record labels)
  operator domain: {Name:'Y, '...Z}
  operand:         string * hol_type
  in expression:
    (fn {Name=Name,...} => Name) (dest_const const)
..............

Return-Path: <eisen@fzi.de>
Delivery-Date: 
Received: from relay.xlink.net (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 6 Jun 1995 09:24:24 +0100
Received: from gate.fzi.de by relay.xlink.net id <41136-0@relay.xlink.net>;
          Tue, 6 Jun 1995 10:24:05 +0000
Received: from ACID0.fzi.de by gate.fzi.de with SMTP (PP) 
          id <01778-0@gate.fzi.de>; Tue, 6 Jun 1995 10:23:51 +0200
Received: from fzi.de by acid0.fzi.de with SMTP (PP) id <21526-0@acid0.fzi.de>;
          Tue, 6 Jun 1995 10:23:37 +0200
X-Mailer: exmh version 1.6 4/21/95
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
In-reply-to: Your message of "Fri, 02 Jun 1995 15:12:52 BST." <"swan.cl.cam.:099840:950602141307"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Tue, 06 Jun 1995 10:23:33 +0200
From: Dirk Eisenbiegler <eisen@fzi.de>
Message-ID: <"acid0.fzi..529:06.05.95.08.23.39"@fzi.de>

> Any luck with getting TkHol to work?  

YES!!!!!!!!!!!!!!!

We finally succeeded. The problem was, that the installation of the TRS-
library failed.
Please have a look at the Makefile in TkHolWorkbench.0.2b/TkTRS/trs90.
On our system 


trs.hol_lib: trs_lib.sig trs_lib.sml
	echo 'val trs_lib_path = "$(INSTALL_DIR)/TkTRS/trs90/";' \
	     'use "trs_lib.sig";' \
	     'use "trs_lib.sml";' \
	     'exit();'  | ${HOL90}


only produced an output on the screen, rather than introducing the library.
So I added 

val trs_lib_path = "/tools/provers/TkHolWorkbench.0.2b/TkTRS/trs90/";
use (trs_lib_path^"trs_lib.sig");
use (trs_lib_path^"trs_lib.sml");

to my hol-init file and know we are through.

My first impression is, that the system looks very good! 

Thanks for your support,

Yours, Dirk




 -----------------------------------------------------------------
 Dirk Eisenbiegler			Tel.:   +49 (721) 9654-452
 Forschungszentrum Informatik (FZI)	Fax:    +49 (721) 9654-459
 Haid-und-Neu-Str. 10-14		Email:  eisen@fzi.de
 76131 Karlsruhe
 -----------------------------------------------------------------

Return-Path: <eisen@fzi.de>
Delivery-Date: 
Received: from relay.xlink.net (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 6 Jun 1995 12:47:16 +0100
Received: from gate.fzi.de by relay.xlink.net id <53550-0@relay.xlink.net>;
          Tue, 6 Jun 1995 13:46:26 +0000
Received: from ACID0.fzi.de by gate.fzi.de with SMTP (PP) 
          id <10971-0@gate.fzi.de>; Tue, 6 Jun 1995 13:46:17 +0200
Received: from fzi.de by acid0.fzi.de with SMTP (PP) id <23788-0@acid0.fzi.de>;
          Tue, 6 Jun 1995 13:45:57 +0200
X-Mailer: exmh version 1.6 4/21/95
To: Donald Syme <Donald.Syme@cl.cam.ac.uk>
In-reply-to: Your message of "Tue, 06 Jun 1995 09:56:24 BST." <"swan.cl.cam.:089650:950606085631"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Tue, 06 Jun 1995 13:45:52 +0200
From: Dirk Eisenbiegler <eisen@fzi.de>
Message-ID: <"acid0.fzi..791:06.05.95.11.45.59"@fzi.de>

> If you have time, I would be interested in knowing if changing 
> ${HOL90} to $(HOL90) helps.  The second is far more standard - I
> don't know why I used the first.

I tried $(HOL90).
It worked and I do not need any more the extra lines in my hol-init file.
Thanks,

Dirk

Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from cormorant.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 8 Jun 1995 16:00:32 +0100
Received: by cormorant.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA07701;
          Thu, 8 Jun 95 16:00:25 BST
Date: Thu, 8 Jun 95 16:00:25 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9506081500.AA07701@cormorant.cl.cam.ac.uk>
To: Don <Donald.Syme@cl.cam.ac.uk>
Subject: couple of tkholwb comments

When loading a theory it can take a good long time before the
interface comes back to say it's doing anything.  In the case I most
recently observed, I think the problem may have arisen because it was
about to do a heap expansion.  Eventually, I did get a message to this
effect, but I was a "user in the dark" for too long.

Secondly, in some theories, there are a lot of automatic
theorems/definitions generated that I am not going to want to look at.
(Check out ~mn200/Work/thesis/chol_type.thms for an example of this.)
It would be nice if we could somehow specify that certain forms of
name should stop theorems with names of that form from being
displayed.  (In the case of chol_type, omitting theorems with names
beginning with int_ or joint_ would make the definitions section much
cleaner.)

Clearly you'd want to turn this behaviour off if necessary, but I
think of it as a form of pretty printing, and there's lots of crap
generated that I don't want to see -- the results of the nested_rec
type generation in this case.

Michael.
X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Paul.Curzon@cl.cam.ac.uk>
Delivery-Date: 
Received: from woodcock.cl.cam.ac.uk (user pc (rfc931)) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) to cl; Thu, 13 Jul 1995 12:35:27 +0100
To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol
Date: Thu, 13 Jul 1995 12:35:24 +0100
From: Paul Curzon <Paul.Curzon@cl.cam.ac.uk>
Message-ID: <"swan.cl.cam.:261920:950713113538"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain

 


Thu Jul 13 12:35:21 BST 1995
pc got an error
TkHol 0.3ap2
TK version 3.6
TCL version 7.3
SunOS woodcock. 4.1.3 35 sun4m

can't set "feedback": grab failed: another application has grab
    while executing
"set feedback [list $w "Please wait..."]"
    (procedure "hierarchy::expandnoden" line 21)
    invoked from within
....
X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from merganser.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 13 Jul 1995 12:56:28 +0100
Received: by merganser.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA24981;
          Thu, 13 Jul 95 12:56:19 BST
Date: Thu, 13 Jul 95 12:56:19 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9507131156.AA24981@merganser.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol 

 after clicking on Goal 2, I got the following:


Thu Jul 13 12:56:16 BST 1995
mn200 got an error
TkHol 0.3ap2
TK version 3.6
TCL version 7.3
SunOS merganser 4.1.3_U1 1 sun4m

Exception raised at GoalTrees.last_operation:
bad focus

uncaught exception HOL_ERR

X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Michael.Norrish@cl.cam.ac.uk>
Delivery-Date: 
Received: from merganser.cl.cam.ac.uk (user mn200 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Thu, 13 Jul 1995 12:58:20 +0100
Received: by merganser.cl.cam.ac.uk (4.1/SMI-3.0DEV3) id AA25004;
          Thu, 13 Jul 95 12:58:17 BST
Date: Thu, 13 Jul 95 12:58:17 BST
From: Michael.Norrish@cl.cam.ac.uk
Message-Id: <9507131158.AA25004@merganser.cl.cam.ac.uk>
To: Donald.Syme@cl.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain

To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol 

 I didn't fill in an ML identifier for the name
but I only wanted to see the script of the proof, and it got
really shirty with me -- to wit:

Thu Jul 13 12:58:13 BST 1995
mn200 got an error
TkHol 0.3ap2
TK version 3.6
TCL version 7.3
SunOS merganser 4.1.3_U1 1 sun4m

can't read "title": no such variable
    while executing
"newwin toplevel -withfeedback 0 -title $title..."
    invoked from within
"set newwin [newwin toplevel -withfeedback 0 -title $title]..."
    invoked from within
"if $view_script {                  
                global gui_flags
                set newwin [newwin toplevel -withfeedback 0 -title $title]
       ..."
    ("Ok" arm line 34)
    invoked from within
"switch -- [lindex $vals($w,waiter) 0] Ok {
            set save [lindex $vals($w,waiter) 1]
            set savename [lindex $vals($w,waiter) 2]
      ..."
    (procedure "TkGoalProof::save" line 7)
    invoked from within
"TkGoalProof::save $w"
    invoked from within
"if $is_proved {
            TkGoalProof::save $w
        }"
    (procedure "TkGoalProof::ApplyML" line 62)
    invoked from within
"TkGoalProof::ApplyML .topwin4 [.topwin4.nexttac.b.tac text get 1.0 end]"
    invoked from within
".topwin4.nexttac.b.controls.b2 invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "button_invoke" line 13)
    invoked from within
"button_invoke $w"
    invoked from within
"if {$w == $button_priv(current,$screen)} {
                        button_invoke $w
                }"
    invoked from within
"if {[info exists button_priv(current,$screen)]} {
                if {$w == $button_priv(current,$screen)} {
                        button_invoke $w
 ..."
    (procedure "button_release" line 8)
    invoked from within
"button_release .topwin4.nexttac.b.controls.b2"
    (command bound to event)
...


X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Mark.Staples@cl.cam.ac.uk>
Delivery-Date: 
Received: from albatross.cl.cam.ac.uk (user ms204 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 14 Jul 1995 19:15:36 +0100
To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol
Date: Fri, 14 Jul 1995 19:15:33 +0100
From: Mark Staples <Mark.Staples@cl.cam.ac.uk>
Message-ID: <"swan.cl.cam.:183630:950714181543"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain

 
was doing a proof, couldn't remember what symbol to use
for implication (!! it's been a while...), so looked in bool, "COND_DEF", which
started loading a library (holpp_to_tcl) giving some nifty
advice about including it as a compiled thing, and then
this bug appeared.

(BTW, is the trace below this bug report included in my mail
to you?  I assume so, so I'm not also including it here...)

Mark


Fri Jul 14 19:15:31 BST 1995
ms204 got an error
TkHol 0.3ap4
TK version 3.6
TCL version 7.3
SunOS albatross 4.1.3_U1 1 sun4m

use failed: open_in "/usr/groups/hol/interfaces/TkHolWorkbench.0.3a/hol90/richt
ext/src/../pp/hol.pp.destructors.sig": openf failed, No such file or directory]

X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Mark.Staples@cl.cam.ac.uk>
Delivery-Date: 
Received: from albatross.cl.cam.ac.uk (user ms204 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 14 Jul 1995 19:20:16 +0100
To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol
Date: Fri, 14 Jul 1995 19:20:13 +0100
From: Mark Staples <Mark.Staples@cl.cam.ac.uk>
Message-ID: <"swan.cl.cam.:185240:950714182021"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain

 Well, got implication sorted out (I turned rich text off in the theorem 
display thing until I found one with ==>) and tried to do a little proof.

However!  the proof also caused an abortive load of the pp library thingo.  
(Because rich text was set by default.)  Shouldn't rich text only be set as 
the default if the library is already loaded?

BTW, (just a little thing) when using this editor, I'd like
the down arrow to go to the end of line if I'm at the bottom
of the screen...

Mark


Fri Jul 14 19:20:11 BST 1995
ms204 got an error
TkHol 0.3ap4
TK version 3.6
TCL version 7.3
SunOS albatross 4.1.3_U1 1 sun4m

use failed: open_in "/usr/groups/hol/interfaces/TkHolWorkbench.0.3a/hol90/richt
ext/src/../pp/hol.pp.destructors.sig": openf failed, No such file or directory]

X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Mark.Staples@cl.cam.ac.uk>
Delivery-Date: 
Received: from albatross.cl.cam.ac.uk (user ms204 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 14 Jul 1995 19:22:51 +0100
To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol
Date: Fri, 14 Jul 1995 19:22:47 +0100
From: Mark Staples <Mark.Staples@cl.cam.ac.uk>
Message-ID: <"swan.cl.cam.:186070:950714182254"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain


Dunno what happened - I just turned rich text off in the proof
window, and got that replay library loading message again.
Does the replay library reply on rich text of some sort?
Or am I completely confused?


Mark


Fri Jul 14 19:22:45 BST 1995
ms204 got an error
TkHol 0.3ap4
TK version 3.6
TCL version 7.3
SunOS albatross 4.1.3_U1 1 sun4m

use failed: open_in "/usr/groups/hol/interfaces/TkHolWorkbench.0.3a/hol90/richt
ext/src/../pp/hol.pp.destructors.sig": openf failed, No such file or directory]

X-Mailer: exmh version 1.5.2 12/21/94
Return-Path: <Mark.Staples@cl.cam.ac.uk>
Delivery-Date: 
Received: from albatross.cl.cam.ac.uk (user ms204 (rfc931)) 
          by swan.cl.cam.ac.uk with SMTP (PP-6.5) to cl;
          Fri, 14 Jul 1995 19:26:05 +0100
To: Donald.Syme@cl.cam.ac.uk
Subject: error TkHol
Date: Fri, 14 Jul 1995 19:26:01 +0100
From: Mark Staples <Mark.Staples@cl.cam.ac.uk>
Message-ID: <"swan.cl.cam.:187550:950714182608"@cl.cam.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain

It all happened again - I guess this is the result of some
configuration error or something.
 
When I get the Helpful Hint message the cursor doesn't change to a clock.  
Maybe it shouldn't?  i.e. should I be able to close that window, even though I 
may have a clock wait thing in the parent proof window?

Mark


Fri Jul 14 19:25:59 BST 1995
ms204 got an error
TkHol 0.3ap4
TK version 3.6
TCL version 7.3
SunOS albatross 4.1.3_U1 1 sun4m

use failed: open_in "/usr/groups/hol/interfaces/TkHolWorkbench.0.3a/hol90/richt
ext/src/../pp/hol.pp.destructors.sig": openf failed, No such file or directory]

