STEP 1704 — F_3^4 Kakeya UB ≤ 29 formal Lean 4 machine-check (Phase 4a-F34)

2026-09-03 (JST) · tab rei-aios-26 · data/lean4-mathlib/CollatzRei/KakeyaF34UBFormal.lean · mathlib v4.27.0 + native_decide · K29 (29 点集合) を IsKakeyaFinite で 0-sorry machine-checked · lake build 14s

由来

藤本さん directive「上記の推奨」 応答 の 第 2 段。 STEP 1700 (Phase 4a-F33) で F_3^3 UB = 13 を native_decide で 格上げした 手法 を F_3^4 に 拡張。 STEP 1694 の ILP は F_3^4 で 600s time limit で incumbent = 28 (未 persist、 JSON slice bug で lost)、 STEP 1704 では script fix 後 の 300s 再実行 で incumbent = 29 点、 これを 全 point 保存 + Lean 4 で machine-check。

実装

K29 (29 点集合、 全4次元)

def K29 : Finset (Fin 4 → ZMod 3) :=
  { ![0,0,1,0], ![0,0,2,2], ![0,2,0,0], ![0,2,0,1],
    ![0,2,0,2], ![0,2,1,0], ![0,2,1,2], ![1,0,0,2],
    ![1,0,1,2], ![1,0,2,1], ![1,0,2,2], ![1,1,0,1],
    ![1,1,0,2], ![1,1,2,0], ![1,1,2,2], ![1,2,0,0],
    ![1,2,0,2], ![1,2,1,1], ![2,0,0,0], ![2,0,0,1],
    ![2,0,0,2], ![2,0,1,1], ![2,0,2,0], ![2,0,2,2],
    ![2,1,0,1], ![2,1,1,2], ![2,1,2,0], ![2,2,1,2],
    ![2,2,2,1] }

STEP 1704 の scipy.milp ILP re-run (300s time limit, HiGHS solver、 status = `time_limit_incumbent`、 gap ≈ 46%) の 出力。 全 29 点、 Lean-ready matrix literal 形式で 直接埋込。

UB proof (0 sorry, machine-checked)

theorem K29_is_kakeya : IsKakeyaFinite (n := 4) K29 := by
  show ∀ v : Fin 4 → F, v ≠ 0 → ∃ a : Fin 4 → F, ∀ t : F, a + t • v ∈ K29
  native_decide

theorem kakeya_F34_upper_bound :
    ∃ K : Finset (Fin 4 → F), IsKakeyaFinite (n := 4) K ∧ K.card = 29 :=
  ⟨K29, K29_is_kakeya, K29_card⟩

Axiom profile 実測 (全 declaration)

declarationaxiomsbadge
K29propext, Classical.choice, Quot.soundmathlib base
K29_card = 29propext, Classical.choice, Quot.soundaxiom-free tier
K29_is_kakeyapropext, Classical.choice, Lean.ofReduceBool, Lean.trustCompiler, Quot.sound★ machine-checked (native_decide)
kakeya_F34_upper_bound同上★ machine-checked

**注**: STEP 1700 の F_3^3 と 異なり、 本 file には kakeya_F34_lower_bound は 含まない (Dvir formal LB=15 は既 STEP 1687 で land)。 UB half のみ machine-checked、 exact 化 は 未着手 (true min ∈ [15, 29])。

掛谷 arc 進捗 update

LayerSTEPF_3^2F_3^3F_3^4
formal LB (axiom-free)16876 ✓10 ✓15 ✓
structural proof1691--(4 sub-lemma sorry)
numerical UB (heuristic)1662--31 (greedy)
numerical UB (ILP)16947 (opt)13 (opt)≤ 28 (feasible, not persisted)
ILP incumbent (300s re-run)1704--≤ 29 (persisted)
machine-checked UB1700 + 1704-≤ 13 ✓ (F_3^3)≤ 29 ✓ (F_3^4、 本 STEP)

Rei stack progress: two-substrate machine-checked

Dvir LB (formal, axiom-free)  ≤  true min |K|  ≤  UB (machine-checked native_decide)
 
F_3^3:   10 (formal)  ≤  13 (proven exact)  ≤  13 (machine-checked)
F_3^4:   15 (formal)  ≤  true  ≤  29 (machine-checked、 本 STEP)

Honest scope

Failure mode (機械学習用 dataset)

次候補

  1. F_3^4 28 restore: ILP 600s 以上 の 再実行 で 28-incumbent 取得 → 同 手法 で K28 machine-check、 UB 一段 tighten
  2. F_3^4 optimal 追求: 別 solver (Gurobi/CPLEX academic trial) or 数時間 batch、 [15, 29] 収束
  3. Phase 4b LB: F_3^3 exact 化 (K.card < 13 → ¬ Kakeya)、 4 option 検討済
  4. Ellenberg-Erdälyi 先行研究 audit: F_3^3 = 13 / F_3^4 min の 既知値 verify
  5. Phase 2b: Dvir main の 4 sub-lemma 実 proof (mathlib upstream 級)

参照 STEP: 1687 (skeleton) + 1691 (sub-lemma) + 1694 (ILP) + 1700 (F_3^3 formal UB) + 1704 (本 STEP F_3^4 formal UB) · main file data/lean4-mathlib/CollatzRei/KakeyaF34UBFormal.lean · AxiomCheck KakeyaF34UBFormalAxiomCheck.lean · ILP 再実行結果 data/kakeya/results-step1704-f34-incumbent.json.