我正试图证明lemma mod_pres_succ {m n} (h : (m + 1) % n ≠ 0) : m % n + 1 = (m + 1) % n
。
我从cases (@trichotomous _ (<) _ m n) with h₁ h₂
开始,在这里我可以显示m < n
和m = n
。但是,在m > n
情况下(模数溢出),我陷入了困境。我通过对m的归纳进行了尝试,其中基本情况是微不足道的,但是归纳步骤处于以下状态:
n m : ℕ,
ih : (m + 1) % n ≠ 0 → n < m → m % n + 1 = (m + 1) % n,
h : (m + 1 + 1) % n ≠ 0,
h₃ : n < m + 1
⊢ (m + 1) % n + 1 = (m + 1 + 1) % n
我该如何进行?
注意:这是完整的(不完整的)证明,在这里我承认了一些简短的内容。
lemma mod_pres_succ {m n} (h : (m + 1) % n ≠ 0) : m % n + 1 = (m + 1) % n :=
begin
cases (@trichotomous _ (<) _ m n) with h₁ h₂,
{admit}, -- this I can show
{
cases h₂ with h₂ h₃,
{admit}, -- this I can show
{
induction m with m ih,
{cases h₃},
{
rw nat.succ_eq_add_one at *,
-- Completely stuck besides a random rw ← ih
}
}
}
end