Surely   "a dvd b ==> b mod a = 0”   should not be a simple. It can’t be such a 
difficult change.

Larry

> On 7 Nov 2014, at 17:34, Tobias Nipkow <nip...@in.tum.de> wrote:
> 
> Thanks for finding this out. The theorem is
> 
> "a dvd b ==> b mod a = 0"
> 
> This applies to any term "a mod b" and creates a subgoal "a dvd b". Normally, 
> that is not too bad. But if a and b are numerals, this leads to a loop with 
> the rewrite rule Divides.dvd_eq_mod_eq_0_numeral:
> 
> (numeral ?x dvd numeral ?y) = (numeral ?y mod numeral ?x = 0)
> 
> The enormous runtimes where due to this loop. It was not an infinite loop 
> because the simplifier has a depth limit.
> 
> Clearly, we cannot have such a loop. Either mod can use dvd or the other way 
> around, but not both.
> 
> Thanks for simp_trace_new/Lars Hupel, it made it easy to find out what was 
> going on. [It would be nice if the trace could also show when the depth limit 
> is exceeded, it does not seem to].

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

Reply via email to