Re: [isabelle-dev] Problem in AFP near 16e7d42ef7f4

2015-06-25 Thread Larry Paulson
I took a look, and it all runs perfectly well, except here:

show xs ∈ T⇩c ∧ ys ∈ T⇩c ∧
  ipurge_tr_rev I⇩c id u xs = ipurge_tr_rev I⇩c id u ys ⟶
  {x. u = x ∧ xs @ [x] ∈ T⇩c} = {x. u = x ∧ ys @ [x] ∈ T⇩c}
(* The following proof step performs an exhaustive case distinction over 
all traces and domains,
   and then can take long to be completed. *)
by (simp add: T⇩c_def I⇩c_def, rule impI, (erule conjE)+, cases u,
 (((erule disjE)+)?, simp, blast?)+)

The comment doesn’t tell us whether to wait minutes or hours. Clearly this is a 
fragile step. Any sort of change could break this.

Larry

 On 25 Jun 2015, at 14:00, Florian Haftmann 
 florian.haftm...@informatik.tu-muenchen.de wrote:
 
 isabelle: 19c277ea65ae tip
 afp: 16e7d42ef7f4 tip
 
 Running Noninterference_Generic_Unwinding ...
 *** Timeout
 Noninterference_Generic_Unwinding FAILED
 (see also
 /mnt/home/haftmann/data/isabelle/master/heaps/polyml-5.5.2_x86-linux/log/Noninterference_Generic_Unwinding)
 
 val it = (): unit
 Loading theory GenericUnwinding
 Proofs for inductive predicate(s) rel_induct_auxp
  Proving monotonicity ...
  Proving the introduction rules ...
  Proving the elimination rules ...
  Proving the induction rule ...
  Proving the simplification rules ...
 ### theory GenericUnwinding
 ### 1.941s elapsed time, 11.008s cpu time, 0.136s GC time
 
 Any hints what could have gone wrong?
 
   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


[isabelle-dev] Fwd: [isabelle] find_theorems and locales

2015-06-25 Thread Larry Paulson
Nobody has commented on this issue, and I would like to re-raise it, as it 
affects the development version.

It simply doesn’t make sense that fundamental axioms such as dist_norm are 
concealed from find_theorems. I imagine it would be very easy to change this 
behaviour.

Larry

 Begin forwarded message:
 
 From: Larry Paulson l...@cam.ac.uk
 Subject: Re: [isabelle] find_theorems and locales
 Date: 19 June 2015 16:22:53 BST
 To: Florian Haftmann florian.haftm...@informatik.tu-muenchen.de
 Cc: Bertram Felgenhauer bertram.felgenha...@googlemail.com, 
 cl-isabelle-us...@lists.cam.ac.uk
 
 I've stumbled across a related issue with find_theorems that certainly seems 
 wrong. I was searching for the theorem 
 Real_Vector_Spaces.dist_norm_class.dist_norm, which is introduced as a type 
 class axiom here:
 
 class dist_norm = dist + norm + minus +
  assumes dist_norm: dist x y = norm (x - y)
 
 Calling find_theorems with suitable patterns, such as 
 
   dist norm (_-_)”
 
 does not return this theorem among the results, but clearly it should.
 
 Larry

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


[isabelle-dev] Problem in AFP near 16e7d42ef7f4

2015-06-25 Thread Florian Haftmann
isabelle: 19c277ea65ae tip
afp: 16e7d42ef7f4 tip

Running Noninterference_Generic_Unwinding ...
*** Timeout
Noninterference_Generic_Unwinding FAILED
(see also
/mnt/home/haftmann/data/isabelle/master/heaps/polyml-5.5.2_x86-linux/log/Noninterference_Generic_Unwinding)

val it = (): unit
Loading theory GenericUnwinding
Proofs for inductive predicate(s) rel_induct_auxp
  Proving monotonicity ...
  Proving the introduction rules ...
  Proving the elimination rules ...
  Proving the induction rule ...
  Proving the simplification rules ...
### theory GenericUnwinding
### 1.941s elapsed time, 11.008s cpu time, 0.136s GC time

Any hints what could have gone wrong?

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


Re: [isabelle-dev] Problem in AFP near 16e7d42ef7f4

2015-06-25 Thread Florian Haftmann
Maybe this is hitting the concrete wall set by hardware constraints.

I am building on lxbroy10; relevant settings might include

 ISABELLE_BUILD_JAVA_OPTIONS=-Xmx4096m -Xss2m
 ISABELLE_PLATFORM32=x86-linux
 ISABELLE_JAVA_SYSTEM_OPTIONS=-server -Dfile.encoding=UTF-8 
 -Disabelle.threads=0
 ISABELLE_PLATFORM64=x86_64-linux
 ISABELLE_PLATFORM=x86-linux
 ISABELLE_SCALA_BUILD_OPTIONS=-encoding UTF-8 -nowarn -target:jvm-1.7 
 -Xmax-classfile-name 130

In my view lxbroy10 still has some status as a reference machine, and I
am seriously concerned as soon as resources appear to be too tiny there.

Anybody else experiencing similar problems?

Florian

Am 25.06.2015 um 15:00 schrieb Florian Haftmann:
 isabelle: 19c277ea65ae tip
 afp: 16e7d42ef7f4 tip
 
 Running Noninterference_Generic_Unwinding ...
 *** Timeout
 Noninterference_Generic_Unwinding FAILED
 (see also
 /mnt/home/haftmann/data/isabelle/master/heaps/polyml-5.5.2_x86-linux/log/Noninterference_Generic_Unwinding)
 
 val it = (): unit
 Loading theory GenericUnwinding
 Proofs for inductive predicate(s) rel_induct_auxp
   Proving monotonicity ...
   Proving the introduction rules ...
   Proving the elimination rules ...
   Proving the induction rule ...
   Proving the simplification rules ...
 ### theory GenericUnwinding
 ### 1.941s elapsed time, 11.008s cpu time, 0.136s GC time
 
 Any hints what could have gone wrong?
 
   Florian
 
 
 
 ___
 isabelle-dev mailing list
 isabelle-...@in.tum.de
 https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
 

-- 

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


Re: [isabelle-dev] Problem in AFP near 16e7d42ef7f4

2015-06-25 Thread Florian Haftmann
Hi Larry,
thanks for finding out so quickly!

Florian
Am 25.06.2015 um 16:02 schrieb Larry Paulson:
 This does it nicely (20s):
 
apply (simp add: T⇩c_def I⇩c_def)
apply clarify
apply (cases u; elim disjE; simp; blast)
 
 
 Larry
 
 On 25 Jun 2015, at 14:52, Larry Paulson l...@cam.ac.uk wrote:

 I took a look, and it all runs perfectly well, except here:

show xs ∈ T⇩c ∧ ys ∈ T⇩c ∧
  ipurge_tr_rev I⇩c id u xs = ipurge_tr_rev I⇩c id u ys ⟶
  {x. u = x ∧ xs @ [x] ∈ T⇩c} = {x. u = x ∧ ys @ [x] ∈ T⇩c}
(* The following proof step performs an exhaustive case distinction over 
 all traces and domains,
   and then can take long to be completed. *)
by (simp add: T⇩c_def I⇩c_def, rule impI, (erule conjE)+, cases u,
 (((erule disjE)+)?, simp, blast?)+)

 The comment doesn’t tell us whether to wait minutes or hours. Clearly this 
 is a fragile step. Any sort of change could break this.

 Larry

 On 25 Jun 2015, at 14:00, Florian Haftmann 
 florian.haftm...@informatik.tu-muenchen.de wrote:

 isabelle: 19c277ea65ae tip
 afp: 16e7d42ef7f4 tip

 Running Noninterference_Generic_Unwinding ...
 *** Timeout
 Noninterference_Generic_Unwinding FAILED
 (see also
 /mnt/home/haftmann/data/isabelle/master/heaps/polyml-5.5.2_x86-linux/log/Noninterference_Generic_Unwinding)

 val it = (): unit
 Loading theory GenericUnwinding
 Proofs for inductive predicate(s) rel_induct_auxp
 Proving monotonicity ...
 Proving the introduction rules ...
 Proving the elimination rules ...
 Proving the induction rule ...
 Proving the simplification rules ...
 ### theory GenericUnwinding
 ### 1.941s elapsed time, 11.008s cpu time, 0.136s GC time

 Any hints what could have gone wrong?

 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
 

-- 

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


Re: [isabelle-dev] Problem in AFP near 16e7d42ef7f4

2015-06-25 Thread Larry Paulson
This does it nicely (20s):

   apply (simp add: T⇩c_def I⇩c_def)
   apply clarify
   apply (cases u; elim disjE; simp; blast)


Larry

 On 25 Jun 2015, at 14:52, Larry Paulson l...@cam.ac.uk wrote:
 
 I took a look, and it all runs perfectly well, except here:
 
show xs ∈ T⇩c ∧ ys ∈ T⇩c ∧
  ipurge_tr_rev I⇩c id u xs = ipurge_tr_rev I⇩c id u ys ⟶
  {x. u = x ∧ xs @ [x] ∈ T⇩c} = {x. u = x ∧ ys @ [x] ∈ T⇩c}
(* The following proof step performs an exhaustive case distinction over 
 all traces and domains,
   and then can take long to be completed. *)
by (simp add: T⇩c_def I⇩c_def, rule impI, (erule conjE)+, cases u,
 (((erule disjE)+)?, simp, blast?)+)
 
 The comment doesn’t tell us whether to wait minutes or hours. Clearly this is 
 a fragile step. Any sort of change could break this.
 
 Larry
 
 On 25 Jun 2015, at 14:00, Florian Haftmann 
 florian.haftm...@informatik.tu-muenchen.de wrote:
 
 isabelle: 19c277ea65ae tip
 afp: 16e7d42ef7f4 tip
 
 Running Noninterference_Generic_Unwinding ...
 *** Timeout
 Noninterference_Generic_Unwinding FAILED
 (see also
 /mnt/home/haftmann/data/isabelle/master/heaps/polyml-5.5.2_x86-linux/log/Noninterference_Generic_Unwinding)
 
 val it = (): unit
 Loading theory GenericUnwinding
 Proofs for inductive predicate(s) rel_induct_auxp
 Proving monotonicity ...
 Proving the introduction rules ...
 Proving the elimination rules ...
 Proving the induction rule ...
 Proving the simplification rules ...
 ### theory GenericUnwinding
 ### 1.941s elapsed time, 11.008s cpu time, 0.136s GC time
 
 Any hints what could have gone wrong?
 
  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

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


Re: [isabelle-dev] Euclidean Ring

2015-06-25 Thread Manuel Eberl
Hallo,

thanks for all the good work. It's nice to finally see my work
integrated so neatly into HOL.


 1. Normalization. Currently, there is normalization_factor such that a
 div normalization_factor a yields the normalized elements. My impression
 is that the latter should be an operation on its own, say normalize, and
 that normalization_factor is a misleading name since it suggests that
 actually a * normalization_factor a is the normalized element. Have we
 any other plausible name, say »orientation«? The idea is that normalize
 and orientation work on integers like abs and sgn.
I do not remember why I chose to do it that way. I do remember weighing
normalization_factor against a ‘normalize’ operation and deciding for
the former. I take it that you have worked with the definitions for a
while now, so if, after that, you think that a ‘normalize’ operation is
better, I defer to your judgement.

As for the terminology, I think I did not find this concept in the
literature and just invented names that seemed reasonable to me at the
time. I agree that normalization_factor perhaps gives the wrong idea; if
you want to change it to something else, I have no objections, but I do
think ‘orient’ sounds a bit strange, especially for rings like the
polynomials.


 2. A generic lcm definition. In ordinary lattices, inf and sup are dual
 to each other and there is little reason to prefer one over that other.
 Concerning gcd and lcm, I have the strong impression that gcd is the
 more primitive one and lcm should be solely derived from it. This is
 supported by the observation that instantiation proofs get horrible if
 you have to derive the characteristic properties of gcd and lcm on, say,
 nat, simultaneously. Hence I argue that the specification of
 semiring_gcd should contain a plain definition of lcm. Since the plain
 semiring_gcd is not supposed to know anything about normalization, this
 would lead to a plain »lcm a b = a * b div gcd a b«, in contrast to the
 current »lcm a b = a * b div gcd a b div normalization_factor (a * b)«.
 Do you foresee any difficulties here?

I think so. With this definition, ‘lcm (2X²) (2X²)’ would return ‘4X²’,
which is certainly not what we want. If you put this definition in
semiring_gcd, you cannot change it later either. Or am I missing
something here?

 3. Gcd/Lcm. In your Gcd/Lcm approach, Lcm is the »more primitive«
 definition.  Did you just take this over from src/HOL/GCD.thy, or is
 there a deeper reason to do it this way round?
I don't remember. I remember that it took me quite a long time to make
this definition work; the case of what to do when you want to take the
Gcd/Lcm of an infinite set was tricky. I think I was under the
impression that handling the case of infinitely many elements was easier
to handle in Lcm, but I do not remember why. I may also be mistaken.


 A further observation concerns algebraic closedness of normalized
 elements. The properties »normalization_factor 1 = 1« and
 »normalization_factor (a * b) = normalization_factor a *
 normalization_factor b« state that normalized elements form a
 multiplicative group. I did not find a reasonable characterization for
 the additive behaviour, i.e. a way to enforce that for int normalization
 goes for positive elements only and not a funny mixture like 1, -2, 3,
 4, 5, -6, 7, -8. The tempting option to demand closedness under addition
 does not work for polynomials, since x + x = 2 * x is not normalized any
 longer. On the other hand, the theory works without any such enforcement.
Well, normalisation can be seen as a map sending a ring element to the
equivalence class of all associated elements. In the case of units,
there is an obvious candidate for a canonical representative for this
equivalence class, namely 1. For other equivalence classes, I do not
think that is the case. One could intuitively argue that, in the ring of
polynomials, X is a better representative than -X. In other rings,
like the ring of Gaussian integers, things are not so clear. What should
be the representative of the associated elements {1+i, 1-i, i-1, -1-i}?
I do not think there is an obvious candidate.

I therefore think that the choice of what is normalised and what is not
is somewhat arbitrary and it is therefore not possible to find a
restriction that does what you want to do in general. Again, I could be
wrong about this; it has been one and a half years since I last worked
on this.



I am wondering about changeset f2f1f6860959, ‘generalized to definition
from literature, which covers also polynomials’. Where did you find this
in the literature? What does it achieve?


Cheers,

Manuel

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