Re: [isabelle] [Isabelle2016-1-RC4] Simplification of numerals very slow when Primes is imported

Hi all,

after a short chat with Manuel I was able to pin down the offending simp

But I have to check first whether this causes any breakdown in the distro.


Am 08.12.2016 um 16:59 schrieb Stefan Berghofer:
> Dear all,
> while updating some of my theories to Isabelle2016-1, I noticed that
> simplification of some goals
> involving numerals is extremely slow when the "Primes" theory is
> imported. In the attachment, you
> can find a small theory containing two applications of "simp". When the
> Primes theory is loaded,
> the first application takes about a minute to complete, whereas the
> second one returns almost
> immediately. When importing Main instead of Primes, both invocations of
> simp are equally fast.
> I did not observe this behaviour with Isabelle2016. Does anyone have an
> idea what is going wrong?
> Perhaps the simpset got messed up during the recent update of the number
> theory library?
> Greetings,
> Stefan


PGP available:
# HG changeset patch
# Parent  3e20defb1e3cb9d3a774394c67e62741fa96f8b3
removed dangerous simp rule: prime computations can be excessively long

diff -r 3e20defb1e3c -r c4c943d25be5 src/HOL/Number_Theory/Factorial_Ring.thy
--- a/src/HOL/Number_Theory/Factorial_Ring.thy	Thu Dec 08 15:11:20 2016 +0100
+++ b/src/HOL/Number_Theory/Factorial_Ring.thy	Thu Dec 08 17:55:24 2016 +0100
@@ -451,7 +451,7 @@
 lemma prime_dvd_multD: "prime p \<Longrightarrow> p dvd a * b \<Longrightarrow> p dvd a \<or> p dvd b"
   by (intro prime_elem_dvd_multD) simp_all
-lemma prime_dvd_mult_iff [simp]: "prime p \<Longrightarrow> p dvd a * b \<longleftrightarrow> p dvd a \<or> p dvd b"
+lemma prime_dvd_mult_iff: "prime p \<Longrightarrow> p dvd a * b \<longleftrightarrow> p dvd a \<or> p dvd b"
   by (auto dest: prime_dvd_multD)
 lemma prime_dvd_power: 
@@ -1640,7 +1640,6 @@
        (insert nz False, auto simp: Gcd_factorial_eq_0_iff)
 qed (simp_all add: Gcd_factorial_def)
 lemma normalize_Lcm_factorial:
   "normalize (Lcm_factorial A) = Lcm_factorial A"
 proof (cases "subset_mset.bdd_above (prime_factorization ` A)")

Attachment: signature.asc
Description: OpenPGP digital signature

This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.