Re: [isabelle-dev] sledgehammer

2013-09-02 Thread Makarius

On Sat, 31 Aug 2013, Lawrence Paulson wrote:


It doesn't always work in the panel either. Some lurking bugs maybe.


Can you be more specific?  The word bug has no meaning at all.

The sledgehammer panel has had only 1-2 rounds of refinements so far, and 
more precise observations by testers on this mailing list will be required 
to make it work smoothly for the coming release.




I'm not sure what you are allowed to do while sh is running.


You should be allowed to do anything you like -- it is fully asynchronous 
and stateless.  In the worst case the system will cancel some sledgehammer 
request when you edit the command span that it is attached to.  (There is 
a fine point here, since the white space after a command belongs to it, so 
editing that will remove the sledgehammer query operation as well.)


Problems that might be still there are most likely due to propagation of 
interrupts in the huge stack of tools and system layers we have piled up. 
So one needs to watch closely the status of top (or top -o cpu on Mac 
OS X), especially for E Prover processes (e-1.8 from Isabelle/2b5580da3874 
might have made this warning obsolete).



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] jEdit: re-checking of main buffer

2013-09-02 Thread Makarius

On Sat, 31 Aug 2013, Christian Sternagel wrote:

Assuming that the grayish background highlighting really indicates 
prover activity in the background


This is outdated_color (RGB=EEE3E3 by default).  It means that the 
asynchronous protocol is in an intermediate state where the editor has no 
confirmation from the prover about the last round of updates yet.


The prover needs to update certain internal administrative structures of 
the document model until this confirmation (the assignment) can be given 
back to the editor.  This requires usually a few milliseconds, but depends 
on availability of CPU resources, and can get into the range of 0.5..2 
seconds.  (What are your hardware parameters?)


Until recently (notably in Isabelle2013) these update -- assign cycles 
of the document model involved explicit cancellation of all running 
executions of the prover *before* doing anything.  There was a restart of 
transactions that were still needed in the next document version.  This 
was OK for the majority of quick proof commands, but noticable for slow 
things like 'fun' or heavy proof tools.  With the integration of 
sledgehammer etc. into the document model, the end of this approach was 
come: accidental cancellation and restart of big ATP jobs was not 
feasible.



So I reworked the whole approach quite substantially.  As a consequence 
the prover never stops, it merely refrains from starting new tasks. Then 
edits are applied on-line and old tasks are cancelled afterwards if they 
are no longer needed.


This means that there are fewer CPU resources available for doing the 
administrative update of document content.  Often it is just the protocol 
thread itself, which pretends to be another worker thread for this purpose 
(this guarantees progress, but a fully saturated worker farm might still 
work against it).


For my part, I've seen the change in behaviour and got used to it after a 
few days. It is just a matter of tradeoff between seeing more outdated 
text views vs. long-running tools continuing all the time undisturbed. I 
am not aware of a genuine problem -- if there is one you should report 
that again.




I recently noticed that sometimes a re-check of the whole buffer


An actual re-check would be something else: new execs assigned to 
existing command transactions, involving a change to pink and purple etc. 
This should not happen here, unless there is something wrong in the 
implementation.


In fact the new strictly monotonic model should involve fewer re-checks. 
In the past, a long-running proof step upwards in the buffer could cause a 
reset to that position with a fresh start of everything in between.



when I select the second by auto (typically S+Home, since the courser 
is positioned directly behind it after just having typed it) and then 
replace the selected region by something different, the whole buffer is 
highlighted (thus re-chekced or re-parsed?).


Re-parsed is yet another thing: whenever you do some physical edits on 
the buffer, Isabelle/Scala will check on its side if anything has 
structurally changed to tell the prover about it.  This requires some JVM 
resources, but it should not be visible in the editing process.  Vacous 
updates in that respect are ignored.


On the other hand, just scrolling around is a full update of the document 
model, and might cause brief appearance of the outdated color scheme. 
This is particularly relevant to the new print functions and query 
operations of the document model.  Uncovering parts of the text might 
cause the prover to do anything from plain 'print_state' to 'sledgehammer' 
(in its auto mode).



Makarius


___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] numpad doesn't work

2013-09-02 Thread Makarius

On Fri, 30 Aug 2013, Makarius wrote:

These days a numpad is relatively rare on keyboards.  (I have one at the 
big laptop at home, but it has quite different behaviour than the more 
regular numpads on old-style stand-alone keyboards.)


I have made some quick tests with my Sony Vaio at home, with its slightly
odd arrangement of cursor keys and numeric keypad. The *numeric* mode of 
it is indeed dead -- I am normally using it for cursor movement, in order 
to be able to use that keyboard at all.


This needs more investigation, but is probably due to the activation of 
some worarounds of jEdit that are explained in its sources like this:


/** Various hacks to get keyboard event handling to behave in a consistent 
manner
 * across Java implementations. This type of stuff should not be necessary, but
 * Java's keyboard handling is crap, to put it mildly.
 *
 * @author Slava Pestov
 */

It was probably a mistake to heed comments in code -- they are usually 
very unreliably source of information.


What did improve, though, was a situation with ESCAPE handling when 
tooltips compete with text selection.



Anyway, it looks like another dive into the depths of history of keyboard 
handling on Windows, Linux, Mac OS X -- the JVM has preserved all the old 
ways faithfully.



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] sledgehammer

2013-09-02 Thread Tobias Nipkow
Am 02/09/2013 11:18, schrieb Makarius:
 The sledgehammer panel has had only 1-2 rounds of refinements so far, and more
 precise observations by testers on this mailing list will be required to make 
 it
 work smoothly for the coming release.
 

Some observations:

- When clicking on the generated proof it is appended to the end of the proof
text preceding the invocation point. It would be better to insert a newline
first - otherwise the proof develops in a horizontal rather than the standard
vertical direction.

- Sometimes I click on the generated proof and it is not pasted into the theory
text. It just doesn't work, even if I click repeatedly.  I cannot reproduce this
reliably.

- Once one has clicked on a proposed proof and it has been pasted into the
theory window, this does two things:
  a) it stops the rest of the running atps.
  b) it disables all the proposed proofs, i.e. no more click-and-paste for any
of them.
Neither is desirable and I thought at least a) was not the case in the past.

Tobias
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] including raises Attempt to perform non-trivial merge of theories

2013-09-02 Thread Makarius

On Tue, 13 Aug 2013, Andreas Lochbihler wrote:

I get the error Attempt to perform non-trivial merge of theories when 
I include a bundle from another theory and there are at least two 
imports. In the attachment, there's an example.


This should work in Isabelle/ef65d5ee60cf.  Are there any remaining 
problems in the concrete application behind the example?



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] sledgehammer

2013-09-02 Thread Lawrence Paulson
I have also noticed the first issue you mention.

Regarding your other points, a) seems logical to me (you have made your 
choice), while b) possibly simplifies the implementation significantly 
(otherwise you need to remember to replace the previous choice rather than to 
append the text), and it is only necessary in the fairly unusual case where 
your first choice simply didn't work.

I agree that the generated proof should start on a fresh line, because these 
calls are often quite lengthy text strings.

Larry

On 2 Sep 2013, at 11:31, Tobias Nipkow nip...@in.tum.de wrote:

 - Sometimes I click on the generated proof and it is not pasted into the 
 theory
 text. It just doesn't work, even if I click repeatedly.  I cannot reproduce 
 this
 reliably.
 
 - Once one has clicked on a proposed proof and it has been pasted into the
 theory window, this does two things:
  a) it stops the rest of the running atps.
  b) it disables all the proposed proofs, i.e. no more click-and-paste for any
 of them.
 Neither is desirable and I thought at least a) was not the case in the past.

___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] including raises Attempt to perform non-trivial merge of theories

2013-09-02 Thread Andreas Lochbihler

Hi Makarius,

The error has already gone away in cb82606b8215 when Ondřej moved all the Quotient_... 
theories to Main, i.e., there was no non-trivial merge necessary any more. My concrete 
application works as expected at the moment.


Andreas

On 02/09/13 12:56, Makarius wrote:

On Tue, 13 Aug 2013, Andreas Lochbihler wrote:


I get the error Attempt to perform non-trivial merge of theories when I 
include a
bundle from another theory and there are at least two imports. In the 
attachment,
there's an example.


This should work in Isabelle/ef65d5ee60cf.  Are there any remaining problems in 
the
concrete application behind the example?


 Makarius

___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] sledgehammer

2013-09-02 Thread Tobias Nipkow
Am 02/09/2013 13:13, schrieb Lawrence Paulson:
 I have also noticed the first issue you mention.
 
 Regarding your other points, a) seems logical to me (you have made your 
 choice), while b) possibly simplifies the implementation significantly 
 (otherwise you need to remember to replace the previous choice rather than to 
 append the text), and it is only necessary in the fairly unusual case where 
 your first choice simply didn't work.

If you take asynhronous processing seriously you shouldn't have to wait until
the end before you make your choice but you should be able to revert your
decision if something better comes up. In such cases the user should be
responsibe for removing the first proof. But you are right, this could lead to
complications in the implementation.

Tobias

 I agree that the generated proof should start on a fresh line, because these 
 calls are often quite lengthy text strings.
 
 Larry
 
 On 2 Sep 2013, at 11:31, Tobias Nipkow nip...@in.tum.de wrote:
 
 - Sometimes I click on the generated proof and it is not pasted into the 
 theory
 text. It just doesn't work, even if I click repeatedly.  I cannot reproduce 
 this
 reliably.

 - Once one has clicked on a proposed proof and it has been pasted into the
 theory window, this does two things:
  a) it stops the rest of the running atps.
  b) it disables all the proposed proofs, i.e. no more click-and-paste for any
 of them.
 Neither is desirable and I thought at least a) was not the case in the past.
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


[isabelle-dev] conflict between code_identifier constant and module_name

2013-09-02 Thread Andreas Lochbihler
Two months ago, Florian replaced code_module with code_identifier (6646bb548c6b). Now, I 
am having trouble using the greater capabilities of code_identifier. I would like to 
assign a constant to a different module, say


code_identifier constant replicate \rightharpoonup (SML) My_Module.rep

Then, code generation works fine as long as there is no module_name involved:

definition test where test = replicate
export_code test in SML
export_code test in SML module_name foo (* fails due to module dependency 
cycles *)

Unfortunately, many idioms internally use module_name -- for example, all of the following 
raise errors due to module dependency cycles:


ML {* @{code test} *}
value [code] test 3 (0 :: nat)
lemma test = foo quickcheck

The same problem also occurs with type constructors. Therefore: What is the intended way 
of using code_identifier with constants?


Best,
Andreas


___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] The coming release

2013-09-02 Thread Makarius
The French summer vacation period has ended, so I've switched myself now 
into consolidation mode to put things into shape for release.


The first release candidates of Isabelle2013-1 will probably happen in the 
first or second week of October.



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] HOL iff notation

2013-09-02 Thread Tobias Nipkow
For uniformity I almost always use = and would not like to see it printed as 
--.

Tobias

Am 02/09/2013 16:24, schrieb Makarius:
 (This is just a side-track on HOL notation, which came to me when cleaning up
 theories with old ASCII replacement syntax like  | -- - Un Int etc. -- 
 which
 is very easy with explicit C+b completion in Isabelle/jEdit.)
 
 Isabelle/4379d46c8e13 (Oct 2005) introduces alternative iff syntax for 
 equality
 on booleans, with print_mode 'iff'.
 
 I can't remember a particular reason for the print mode, instead of having 
 that
 syntax always on. I find myself using the iff notation most of the time to
 make theories look nice.
 
 Are there clubs of iff vs. non-iff?  If almost everybody is a member of 
 the
 iff club we could just remove that print mode.  (We don't have to consider
 that for the coming release, to avoid any real-time pressure on this 
 question.)
 
 
 Makarius
 ___
 isabelle-dev mailing list
 isabelle-...@in.tum.de
 https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] The coming release

2013-09-02 Thread Tobias Nipkow
The earlier the better because, as I told you at ITP, I have a course starting
in the middle of October and they need to use a new Isabelle, in the worst case
a release candidate.

Tobias

Am 02/09/2013 15:37, schrieb Makarius:
 The French summer vacation period has ended, so I've switched myself now into
 consolidation mode to put things into shape for release.
 
 The first release candidates of Isabelle2013-1 will probably happen in the 
 first
 or second week of October.
 
 
 Makarius
 ___
 isabelle-dev mailing list
 isabelle-...@in.tum.de
 https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] HOL iff notation

2013-09-02 Thread Makarius

On Mon, 2 Sep 2013, Lawrence Paulson wrote:


I tend to use -, but I'm afraid I don't know what a print mode is.


A print mode allows to change the way how the system prints things; there 
are command line options -m MODE or Isabelle settings to various isabelle 
tools for that.


Sometimes print modes have a genuine purpose, e.g. for different 
protocols of the prover: Proof General, Isabelle Process, latex, HTML 
etc.


Sometimes print modes are just there to allow everyone's favourite syntax 
to coexist in the system.  (The latter is an aspect of very old Isabelle 
insider jokes that nobody remembers now.)



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] HOL iff notation

2013-09-02 Thread Makarius

On Mon, 2 Sep 2013, Makarius wrote:

I find myself using the iff notation most of the time to make theories 
look nice.


Are there clubs of iff vs. non-iff?  If almost everybody is a member of 
the iff club we could just remove that print mode.


I've forgotten to point out the relationship to this isabelle-users 
thread about Isabelle operator precedence:

https://lists.cam.ac.uk/mailman/htdig/cl-isabelle-users/2012-November/msg00020.html

Part of it was some confusion about infixl vs. infix of HOL eq and 
not_equal, which was coming from a bit too many variants being there, and 
some of them not quite right (it is probably right at 
Isabelle/b46e6cd75dc6).



Back then I wrote:

  I think the = notation is going back to a time even before the
  'infixl' / 'infixr' macros for the general mixfix form, and there were also 
some
  special tweaks for output and breaks unlike regular infixes. 'infix' is
  much younger than all that.

  In the last 10 years, there have been some slight reforms towards more
  regularity of notation for eq/not_equal in HOL. It might be worth trying
  again to make it all just plain infix 50, although just from the
  ancienticity of it it could cause some surprises in some dark corners.

Trying the latter, i.e. using just plain infix 50 for = and its negated 
version, reveals problems rather early.  For example in Set.thy:


  lemma subset_eq [no_atp]: A ≤ B = (∀x∈A. x ∈ B) by blast

So any of the infixes with priority 50 will cause problems that do not 
exist with the iff notation, since that has weaker priority.  The latter 
also allows to remove many parentheses.


The above example also has ≤ instead of ⊆ for sets, which is somehow 
related.  (Continuing that train of thought will inevitably expose cans of 
worms, so this speculative thread is definitely not relevant for the 
coming release.)



Makarius___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] HOL iff notation

2013-09-02 Thread Lawrence Paulson
To me, the ability to use = (on booleans) as an alternative to - is an 
artefact of HOL, rather than something to encourage. Almost always, - is more 
readable. At least that's my view.

Larry

On 2 Sep 2013, at 19:42, Florian Haftmann 
florian.haftm...@informatik.tu-muenchen.de wrote:

 Are there clubs of iff vs. non-iff?  If almost everybody is a member
 of the iff club we could just remove that print mode.  (We don't have
 to consider that for the coming release, to avoid any real-time pressure
 on this question.)
 
 I am definitely a member of the iff-club.  Partly for precedence
 reasons, but also because you can recognize predicate equations immediately.

___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] NEWS: Improved completion mechanism

2013-09-02 Thread Makarius

On Mon, 2 Sep 2013, Makarius wrote:

In Isabelle2013 the completion popup was not triggered when deleting 
characters (with backspace). Now this is the case and it seems to cause 
more frequent hangs for me (since deleting is typically done very fast). Is 
this behavior intentional, and if yes, what is the gain?


SideKick had a special flag for backspace treatment, which was off by 
default.  By not using SideKick anymore that behaviour came out naturally 
from the way things work.  I have observed the change myself, and started 
thinking if it is good or bad.  So far I consider it as good -- a more 
natural flow of typing, e.g. when potential completions are accidentally 
missed in the first attempt.


Generally, there is quite a difference in the completion behaviour with the 3 
options for it, and the possibility to do explicit completion via C+b.


Training my fingers a bit more, I've found that the backspace behaviour 
makes it hard to delete keywords that can be completed.  So I am 
considering to get rid of it again.  Missed completions can be completed 
via C+b after deletion of bad parts -- I actually did not have C+b when 
trying this at first.


The hangs are yet a different story to be sorted out.  I do want to know 
which bleeding edge Linux component is responsible for disrupting Java 
keyboard input.



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] HOL iff notation

2013-09-02 Thread Gerwin Klein

On 03/09/2013, at 12:24 AM, Makarius makar...@sketis.net wrote:

 Are there clubs of iff vs. non-iff?  If almost everybody is a member of 
 the iff club we could just remove that print mode.  (We don't have to 
 consider that for the coming release, to avoid any real-time pressure on this 
 question.)

I like both. I mostly use =, because it is less typing. I usually prefer 
output being equal to input, but I will use - for presentation occasionally 
(in that sense, the print mode is ideal for me).

I also still use == quite a bit, I never understood why it is discouraged so 
much. It has the better precedence, and I use it mostly for the difference 
between a definition and an equation, which non-Isabelle people seem to 
understand.

Cheers,
Gerwin




The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] HOL iff notation

2013-09-02 Thread Christian Sternagel
Same here. - cheers chris

Florian Haftmann florian.haftm...@informatik.tu-muenchen.de wrote:

 Are there clubs of iff vs. non-iff?  If almost everybody is a member
 of the iff club we could just remove that print mode.  (We don't have
 to consider that for the coming release, to avoid any real-time pressure
 on this question.)

I am definitely a member of the iff-club.  Partly for precedence
reasons, but also because you can recognize predicate equations immediately.

   Florian

-- 

PGP available:
http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de


___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] NEWS: Improved completion mechanism

2013-09-02 Thread Christian Sternagel

On 09/02/2013 06:30 PM, Makarius wrote:

On Sat, 31 Aug 2013, Christian Sternagel wrote:


First note that for me keyboard input to Isabelle/jEdit typically
hangs every 10 minutes or so, depending on how fast I type (but this
is an old and known issue).


I was hoping that it would have disappeared altogether.  So far the
speculation was that the hang is due to the window manager and its
built-in conflicts with JWindow etc. The popups are now done without
separate window, as plain Swing JComponent.  So the persisting hang
indicates some problem in more elementary key hangling or plain text
insertion into the text buffer.

I have myself done a lot of empirical tests recently on several quite
different systems, and I am also typing very fast, but did not see any
problem like that.
Just for the record: the above mentioned hand also sometimes happens 
when typing V ... E ... R ... Y ... slowly ;). It is just more frequent 
when typing faster (mainly because a hang only ever happens directly 
after having pressed a key).




It looks like we need to make another round in the game of guessing at
oddities that Fedora Linux might have installed.
Yes please. How can I be of assistance (as apparently the only person 
having this kind of issue ;) ... maybe I should just buy a new computer, 
however, Fedora Linux is my preferred Platform, so maybe as soon as I 
get my hands on a different machine having Fedora installed -- which 
might take some time -- I should check whether this is specific to *my* 
laptop or a general issue of Fedora; or did we establish an answer already)?


chris

___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev