Re: [isabelle-dev] Nominal and FinFuns from the AFP

2012-05-31 Thread Makarius

On Sun, 13 May 2012, Florian Haftmann wrote:

c) I strongly object to clutter the HOL syntax even more than now by 
incorporating just another fancy syntax.  I would prefer the lattice 
solution (delete syntax immediately after use and provide a library 
theory to optionally include it later), or maybe it is also possible to 
use context blocks for this (another nice case study).


This is indeed still the canonical solution to the syntax problem for 
library material, and I see it now in Isabelle/d60f6b41bf2d for FinFun.


At some point, when I have bundles ready to work with the existing 
notation commands, we can fine-tune this scheme further, to allow users to 
'include' syntax in local situations.



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


Re: [isabelle-dev] Nominal and FinFuns from the AFP

2012-05-31 Thread Andreas Lochbihler

Hi Makarius,


At some point, when I have bundles ready to work with the existing
notation commands, we can fine-tune this scheme further, to allow users to
'include' syntax in local situations.
I tried to implement the new syntax for FinFuns with bundles and Brian's 
notation attribute 
(https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/2012-April/002585.html), 
but it was not satisfactory.


There were two show stoppers:

1. I did not know how to get dynamic bundles, i.e., how to add declarations one 
after the other to a bundle. Hence, I would have to introduce all the notation 
in a single place before which all constants must have been defined.


2. Theory-level commands like interpretation do not work inside an auxiliary 
context and neither can they cope wth includes. Hence, I cannot use such 
pretty syntax in the parameter instantiations for interpretation. This possibly 
also applies to the where clause although I did not need that for FinFun.


Andreas

--
Karlsruher Institut für Technologie
IPD Snelting

Andreas Lochbihler
wissenschaftlicher Mitarbeiter
Am Fasanengarten 5, Geb. 50.34, Raum 025
76131 Karlsruhe

Telefon: +49 721 608-47399
Fax: +49 721 608-48457
E-Mail: andreas.lochbih...@kit.edu
http://pp.info.uni-karlsruhe.de
KIT - Universität des Landes Baden-Württemberg und nationales Forschungszentrum 
in der Helmholtz-Gemeinschaft

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


Re: [isabelle-dev] Nominal and FinFuns from the AFP

2012-05-31 Thread Brian Huffman
On Thu, May 31, 2012 at 1:36 PM, Makarius makar...@sketis.net wrote:
 On Thu, 31 May 2012, Andreas Lochbihler wrote:

 At some point, when I have bundles ready to work with the existing
 notation commands, we can fine-tune this scheme further, to allow users
 to
 'include' syntax in local situations.

 I tried to implement the new syntax for FinFuns with bundles and Brian's
 notation attribute
 (https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/2012-April/002585.html),
 but it was not satisfactory.


 I did not have time yet to look more closely at that.

 Note that notation is based on syntax declarations of the local theory
 infrastructure, which is slightly different from what you have in
 attributes.  So notation as attributes is a bad idea.

Makarius:

If you want to call one of my ideas a bad idea, then I hope you have
a better justification for this statement.

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


Re: [isabelle-dev] Nominal and FinFuns from the AFP

2012-05-31 Thread Makarius

On Thu, 31 May 2012, Brian Huffman wrote:


On Thu, May 31, 2012 at 1:36 PM, Makarius makar...@sketis.net wrote:

On Thu, 31 May 2012, Andreas Lochbihler wrote:


At some point, when I have bundles ready to work with the existing
notation commands, we can fine-tune this scheme further, to allow users
to
'include' syntax in local situations.


I tried to implement the new syntax for FinFuns with bundles and Brian's
notation attribute
(https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/2012-April/002585.html),
but it was not satisfactory.



I did not have time yet to look more closely at that.

Note that notation is based on syntax declarations of the local theory
infrastructure, which is slightly different from what you have in
attributes.  So notation as attributes is a bad idea.


Makarius:

If you want to call one of my ideas a bad idea, then I hope you have
a better justification for this statement.


Formally, if you look what notation does, it is not like an attribute, but 
a syntax declaration.  This can be seen immediately in the sources.


What is not immediately visible is the long history around it, but quite a 
bit of it was discussed even on this mailing list in the past few years. 
Right now I don't have time to sort out the details, but I also don't want 
to waste time repeating mistakes from the past that are already known by 
the veterans on these mechanisms.


Anyway, there is nothing wrong with bad ideas.  Most of my own ideas are 
bad. One merely needs to sort them out and isolate the good ones from the 
many ideas that are floating around.



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


Re: [isabelle-dev] Nominal and FinFuns from the AFP

2012-05-13 Thread Florian Haftmann
Hi all,

   In the short term, we could move the FinFun theory into the HOL library 
   of the development version after Isabelle 2012 and the AFP 2012 has been 
   released, if we agree that this moves this contribution in the right 
   direction.

some remarks on my behalf:

a) Ideally, tools and library theories span a product space: tools
should provide configuration means such that theories »not forseen by
the author« can be integrated into its scope, typically by a series of
declarations.  AFP library theories are a nice case study for this – if
the AFP infrastructure would not allow for such organization
(dependencies etc.), it does not fullfil its promise.

b) In the particular case of FinFun, more and more tools seem to regard
this as so fundamental (or fundamentally helpful) that incorporation
into the distribution could indeed be the answer.  Nevertheless, I would
like to see explicit statements on this.

For the moment, we have a claim for Nominal.  I want to add that I would
like to see a type for executable mappings in the distribution, and
FinFuns seems to be the most reasonable candidate.  More claims?

c) I strongly object to clutter the HOL syntax even more than now by
incorporating just another fancy syntax.  I would prefer the lattice
solution (delete syntax immediately after use and provide a library
theory to optionally include it later), or maybe it is also possible to
use context blocks for this (another nice case study).

d) In personal conversation Alex and I discussed whether it would be
preferable to swap FinFun.thy into HOL-Main and Map.thy into
HOL-Library, but I don't recall the arguments in particular.

Cheers,
Florian

-- 

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



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


[isabelle-dev] Nominal and FinFuns from the AFP

2012-05-10 Thread Christian Urban

Dear All,

In Nominal I am usually relying on types that are defined
in HOL or that I define myself. However, I now came across 
the FinFun development in the AFP by Andreas Lochbihler (thanks 
to Larry). The finfun type seems to be rather useful to Nominal 
users, since it has finite support, in contrast to the function 
type, which in general hasn't.

My question is how I should I interface with something that 
is in the AFP and with something that is (eventually) in the
distribution? The problem is that Nominal always needs a wrapper 
infrastructure for types, such as a definition of a permutation. 

How should I write this wrapper, especially what should the import 
paths be, so that users can conveniently use FinFuns and Nominal?

Should this wrapper be part of the AFP entry (in which case
the paths are clear, but then Nominal users have to fetch the
AFP explicitly and no Nominal example in the distribution can
depend on it)?

Or should the wrapper be part of Nominal (in which case I
can use it in examples, but I have no idea what the import
paths should be...the AFP can be anywhere)?

Or, should FinFun be part of the distribution (which would
make my life normal again)?

Is there any received wisdom for this problem?

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


Re: [isabelle-dev] Nominal and FinFuns from the AFP

2012-05-10 Thread Lukas Bulwahn

Hi Christian,


For code generation purposes and especially Quickcheck, it is necessary 
that the FinFun theory would be imported by any user.
With the new developments lifting and transfer, we are getting very 
close that FinFun can be used without any further ado.
I do have some latest experiments and patches in the shelf to be 
published after the release.


Therefore, I am also in strong favour for moving the AFP entry FinFun 
into the distribution.

In the long run, it should probably even become part of the HOL-Main image.

In the short term, we could move the FinFun theory into the HOL library 
of the development version after Isabelle 2012 and the AFP 2012 has been 
released, if we agree that this moves this contribution in the right 
direction.


As Andreas has access to the Isabelle development and can freely change 
and contribute the entry, I do not see any further difficulties.



Lukas


P.S.: The topic is interesting for isabelle-users as well in my opinion.


On 05/10/2012 05:09 PM, Christian Urban wrote:

Dear All,

In Nominal I am usually relying on types that are defined
in HOL or that I define myself. However, I now came across
the FinFun development in the AFP by Andreas Lochbihler (thanks
to Larry). The finfun type seems to be rather useful to Nominal
users, since it has finite support, in contrast to the function
type, which in general hasn't.

My question is how I should I interface with something that
is in the AFP and with something that is (eventually) in the
distribution? The problem is that Nominal always needs a wrapper
infrastructure for types, such as a definition of a permutation.

How should I write this wrapper, especially what should the import
paths be, so that users can conveniently use FinFuns and Nominal?

Should this wrapper be part of the AFP entry (in which case
the paths are clear, but then Nominal users have to fetch the
AFP explicitly and no Nominal example in the distribution can
depend on it)?

Or should the wrapper be part of Nominal (in which case I
can use it in examples, but I have no idea what the import
paths should be...the AFP can be anywhere)?

Or, should FinFun be part of the distribution (which would
make my life normal again)?

Is there any received wisdom for this problem?

Best wishes,
Christian
___
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