日本語 · English(未訳)

ADR-47: 窓列への周期ラベル——segmentBy の labels: cycle 形

判断: segmentBylabels: の値位置に周期形 cycle リスト anchor: 実日 を採用する (発報層還流 第 5 便 §3〈第 3 の適用ドメイン=暦注・周期暦法〉の実需を受けた候補設計 draft §1.28=4 視点並列検証済み・設計者裁定 3 件〈2026-07-25〉を経た ADR 化。ADR-39〈窓列への並行 ラベル列〉の器の拡張であり、静的 labels: の同長性要求が ADR-46 の静的ソース原則〈式は静的・ データは実行時解決〉と衝突する穴——covering が伸びるたびにラベル列の改稿が要る——を塞ぐ)。

  1. 設計の核=窓束縛 cycle(ADR-03/30)の意味論の再利用。「anchor の属する窓が先頭 ラベル」——ラベル(窓 i) = list[(i − i₀) mod N](i=窓列序数〈ADR-39〉・i₀=anchor の 属する窓の序数・N=リスト長・負の差は法で正規化=F65 規約)。新語彙ゼロcycleanchor: とも既存語)。用途は「窓列=暦の単位・ラベル=固定周期」の形すべて(節切り月の 十二支・月家九星〈逆行は逆順リスト〉・月星座の 12 宮)。

  2. 形と位置: labels: cycle (リスト | リスト束縛名) anchor: 実日。anchor: は形の一部 (必須・カンマで切らない——切ると segmentBy の未知引数に化けるため専用文言で導く)。 segmentBy の named-arg 限定——テーブルリテラルの labels: には入れない(テーブルは点への 1 対 1。周期を貼りたい点列は「テーブルでなく cycle」の既存誘導が立つ)。premise 層の窓生成語 cycle の named-arg 値位置への出現は位置依存のキーワード解釈(ADR-42 の統一原理)。 リスト値域は静的形と対称(リテラルまたはリスト束縛名=ADR-39 判断 1・型域は ADR-34 判断 3。 裁定 2026-07-25)。

  3. 同長性検査は課さない——周期は任意の窓数を覆う(リスト長の倍数である必要もない)。 位相保存は端の増減に限る: 覆域の延伸・過去側切り詰めは i と i₀ が同数ずれて差が不変 (数学的保証)。i₀ はマーカー列基準で計算する——実体化範囲・評価範囲に依存しない正確な 数え方(ADR-39 判断 2 の原則の継承)。

  4. anchor の所属要件(評価時検査・窓束縛の評価と同時=external では解決後): anchor は 窓列のいずれかの窓に区間所属する実日(空窓〈empties: keep〉も序数を消費し anchor を 受ける=ADR-39 の空窓読み口と同一規約。境界日は半開区間で新窓側・最終窓は覆域端まで)。 頭側・範囲外は一般評価エラー(裁定 2026-07-25——供給エラーには乗せない。解決は成功して おり式側の宣言と新データの不整合だから、式の更新を促す明示エラーが筋。文言に同位相の 付け替え候補〈リスト周期 N 窓分先の対応実日へ進めれば全ラベル不変〉を含める)。マーカー点 との一致は要求しない(属する窓で決まる=cycle と同じ)。

  5. 締めの継承(ADR-39 判断 4): edges: clipempties: droplabel: 同居・規則マーカー (無限窓列——周期ラベルは窓束縛 cycle へ・既存誘導文言も書き分け)は静的エラー。マーカー 覆域が全マーカーを包む単一の無註釈区間であることも継承——根拠は「窓数確定」から「位相 確定」に読み替える(註釈域内の未知マーカーは全ラベルを黙ってずらす)。あわせて named-arg の重複指定を静的エラーに一般化(従来は先勝ちの黙殺——ADR-39「黙って捨てない」の残り穴)。

  6. 窓インスタンス参照 W(v): 周期ラベルは非一意キー——全マッチ和(ADR-42。覆域が 1 周期 未満でリスト内未出現のラベルは正当な空)。リストは cycle 形の静的な全値域——リスト外の 値引数は域外の静的エラー(ADR-42 判断 7 (g) の適用)。

  7. 守備範囲の較正(裁定 2026-07-25=トレードオフ受け入れ): cycle 形が守るのは位相の宣言 のみ。同長性検査(F62 の器)を持たないため、(a) マーカーの中途挿入・欠落は片側の全ラベルが 黙って回り、(b) 非周期列への誤用(旧暦月番号——閏月は前月番号の繰り返し)は閏のたび永続 ずれが累積する——いずれも照合相手のリストが存在せず機械検出は原理的に不可能(静的 labels: なら同長性検査が割れていたクラス)。中身と周期性の照合は doctest・coincides の 分担(ADR-39 判断 6「守るのは長さのみ」の対——cycle 形では「守るのは位相のみ」)。 reference には使い分け(周期→cycle 形・非周期データ→静的 labels:)と誤用時の症状を必置する。

経緯: 候補設計(draft §1.28)→ 4 視点並列検証(整合性・コーパス・実装可能性・敵対=指摘 32 件 全反映。コーパス実証=節切り十二支・月家九星〈非倍数周期 9∤12・負 mod〉・月星座の 3 用途全一致・ covering 3 年延伸で式不変)→ 設計者裁定 3 件 → ADR 化・実装(テスト 15 本)。検証の副産物として reference/cycle.md 落とし穴の既存誤り(「リストを書き換えても anchor が同じなら同一の暦」——実装・ spec と矛盾)を検出し訂正した(2026-07-25)。却下案=cycle のオペランド拡張(窓列 cycle […]): 窓(windows 値・暦法純粋の律動)と窓列(データ由来のストリーム)の型差を跨ぎ、cycle の I8 の 性格を壊すため不採用(第 5 便裁定)。