suffices

suffices は、数学でよくある「~を示せば十分である」という推論を行うタクティクです。

ゴールが ⊢ P であるときに suffices Q from を実行すると、

  • suffices Q from のブロック内では、仮定に this: Q が追加され、
  • suffices Q from 以降では、ゴールが ⊢ Q に書き換えられます。

apply と似ていますが、apply と違って「十分条件になっていること」の証明が明らかでないときにも使うことができます。

suffices Q from ... という形式の場合は、証明を直接構成することが必要です。suffices Q from by ... とすると、タクティクによって証明を構成するモードになります。

import Mathlib.Data.Nat.Order.Lemmas -- 除算 `∣` を使うため

example : 13 ∣ (2 ^ 70 + 3 ^ 70) := by
  -- 余りがゼロであることを示せば十分
  suffices (2 ^ 70 + 3 ^ 70) % 13 = 0 from by
    exact Iff.mpr (Nat.dvd_iff_div_mul_eq (2 ^ 70 + 3 ^ 70) 13) rfl

  rfl