Search code examples
isabelle

Is rule method with assumption discharge deprecated in Isabelle?


I profit of this occassion to promote this webpage explaining very nicely the inner workings of rule, erule, drule and frule.

However, I noticed that method rule(k) seems to not work in current Isabelle (in contrast to for instance drule(k). Take the example:

lemma "A ⟹ A ∨ B" apply (rule(1) disjI1)


Solution

  • The manual (Isar-ref) for Isabelle 2020, section 9.2, states that the method rule accepts exactly one argument thms. However, the methods erule, drule and frule have an additional optional argument (nat):

    The optional natural number argument (default 0) specifies additional assumption steps to be performed here.