[isabelle-dev] simproc divide_cancel_factor produces error

Lars Noschinski noschinl at in.tum.de
Thu Sep 15 16:34:12 CEST 2011


Hi everyone,

in the following snippet, applying the simplifier causes an error:

------------------------------------------
theory Scratch
   imports Complex_Main
begin

lemma
   shows "(3 / 2) * ln n = ((6 * k * ln n) / n) * ((1 / 2 * n / k) / 2)"
apply simp
------------------------------------------

outputs

------------------------------------------
Proof failed.
(if n = 0 then 0 else 6 * (k * ln n) / 1) * 2 / (4 * k) =
2 * (Numeral1 * (if n = 0 then 0 else 6 * (k * ln n) / 1)) / (2 * (2 * k))
  1. n ≠ Numeral0 ⟶ k * (ln n * (2 * 6)) / (k * 4) = k * (ln n * 12) / 
(k * 4)
1 unsolved goal(s)!
The error(s) above occurred for the goal statement:
(if n = 0 then 0 else 6 * (k * ln n) / 1) * 2 / (4 * k) =
2 * (Numeral1 * (if n = 0 then 0 else 6 * (k * ln n) / 1)) / (2 * (2 * k))
------------------------------------------

This is caused by the simproc divide_cancel_factor; when removing this 
simproc, the error goes away:

   apply (tactic {* simp_tac (Simplifier.delsimprocs (@{simpset},
     [nth Numeral_Simprocs.cancel_factors 6])) 1 *})

BTW: Is there a nicer way to remove one these old simprocs from the simpset?

   -- Lars


More information about the isabelle-dev mailing list