Re: [isabelle-dev] sets and code generation

2012-03-23 Thread Lukas Bulwahn

On 03/23/2012 11:45 AM, Jesus Aransay wrote:

I know there is an alternative way to get that, by means of sparse
matrices (SparseMatrix.thy), but it demands translating every
operation over the matrix type to its equivalent version for sparse
matrices, which may be sometimes hard work.

Code generation often requires translating or transfering every 
operation from one type to another. At the moment, users have to do this 
manually (which can be hard work as you said), but we are working on a 
mechanism that should soon automate this.



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


Re: [isabelle-dev] sets and code generation

2012-03-23 Thread Makarius

On Fri, 23 Mar 2012, Christian Sternagel wrote:


Maybe the AFP entry for executable matrix operations is useful for you.

http://afp.sourceforge.net/entries/Matrix.shtml


(HOL/Matrix/Matrix.thy).


Note that in current Isabelle/08c22e8ffe70 HOL/Matrix is actually called 
HOL/Matrix_LP, in order to avoid a name clash of the AFP/HOL-Matrix 
session (the latter was introduced later, but AFP names are not so easy to 
change as I understand it).


Technically, the motivation is to get globally unique session names for 
official Isabelle + AFP sessions.  Then when we eventually get a decent 
build system (based on Isabelle/Scala), the user can refer to sessions 
robustly without tinkering IsaMakefiles or funny search paths.



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


Re: [isabelle-dev] Quotient.invariant

2012-03-23 Thread Tobias Nipkow
Absolutely, thanks. Constants should be hidden if they are internal to some
package. Especially with such a universal name as invariant.

Tobias

Am 23/03/2012 17:34, schrieb Makarius:
 Just a note on the following changeset:
 
 changeset:   47095:3ea48c19673e
 user:kuncar
 date:Fri Mar 23 14:25:31 2012 +0100
 files:   src/HOL/Quotient.thy src/HOL/Tools/Quotient/quotient_def.ML
 src/HOL/Tools/Quotient/quotient_term.ML 
 src/HOL/Tools/Quotient/quotient_type.ML
 description:
 generation of a code certificate from a respectfulness theorem for constants
 lifted by the quotient_definition command  setup_lifting command: setups
 Quotient infrastructure from a typedef theorem
 
 
 It introduces a constant called invariant in main HOL.  It might be a
 candidate for hide_const (open).  Some experts on the Isabelle/HOL library 
 can
 probably say more.
 
 
 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] Quotient.invariant

2012-03-23 Thread Ondřej Kunčar

On 03/23/2012 05:34 PM, Makarius wrote:

Just a note on the following changeset:

changeset: 47095:3ea48c19673e
user: kuncar
date: Fri Mar 23 14:25:31 2012 +0100
files: src/HOL/Quotient.thy src/HOL/Tools/Quotient/quotient_def.ML
src/HOL/Tools/Quotient/quotient_term.ML
src/HOL/Tools/Quotient/quotient_type.ML
description:
generation of a code certificate from a respectfulness theorem for
constants lifted by the quotient_definition command  setup_lifting
command: setups Quotient infrastructure from a typedef theorem


It introduces a constant called invariant in main HOL. It might be a
candidate for hide_const (open). Some experts on the Isabelle/HOL
library can probably say more.


At this point it's not clear if this constant will be used only for 
internal purposes. The original idea was to allow users to write 
definitions like this one:


quotient_type 'a foo = 'a bar / invariant P

If it turns out that we need this constant only internally, it will be 
hidden.


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


Re: [isabelle-dev] Quotient.invariant

2012-03-23 Thread Gerwin Klein
If it turns out that the constant is not internal-only, it should get a more 
specific name. invariant really is a name that should be available to users 
without shadowing. 

Cheers,
Gerwin

On 24/03/2012, at 4:06, Ondřej Kunčar kun...@in.tum.de wrote:

 On 03/23/2012 05:34 PM, Makarius wrote:
 Just a note on the following changeset:
 
 changeset: 47095:3ea48c19673e
 user: kuncar
 date: Fri Mar 23 14:25:31 2012 +0100
 files: src/HOL/Quotient.thy src/HOL/Tools/Quotient/quotient_def.ML
 src/HOL/Tools/Quotient/quotient_term.ML
 src/HOL/Tools/Quotient/quotient_type.ML
 description:
 generation of a code certificate from a respectfulness theorem for
 constants lifted by the quotient_definition command  setup_lifting
 command: setups Quotient infrastructure from a typedef theorem
 
 
 It introduces a constant called invariant in main HOL. It might be a
 candidate for hide_const (open). Some experts on the Isabelle/HOL
 library can probably say more.
 
 At this point it's not clear if this constant will be used only for internal 
 purposes. The original idea was to allow users to write definitions like this 
 one:
 
 quotient_type 'a foo = 'a bar / invariant P
 
 If it turns out that we need this constant only internally, it will be hidden.
 
 Ondrej
 ___
 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