ADR-26: テーブルリテラル——データの持ち込み口を言語に設ける
判断: 時点リテラルのリストを時間ストリーム定数とするテーブルリテラルを導入する。構文は値リスト
[…] と同一で、型は要素で決まる(数値要素→値リスト、時点要素→時間ストリーム)。列は昇順を要求し、
乱順・重複は静的エラー。テーブルリテラルを含む premise は source: 宣言必須寄り(ADR-16 の統治基準)、
版は asof: が担い、有効範囲(covering:・仮称)の外は「範囲外」の出自として評価註釈(ADR-15)に流す。
あわせて三点を明文化する——(1) premise 束縛の右辺には本体層のストリーム式を書ける(層またぎ。
ADR-25「語彙は共有」の帰結)、(2) on: の軸名は有効点ストリームに解決されるので導出ストリームを
そのまま軸に渡せる、(3) segmentBy の所属は要素の代表点(窓要素なら先頭点)で決まり、粒度を
揃えるにはマーカーを先に snapTo で落とす。外部供給宣言(socket。external(kind:, source:))は器の
方向だけ示し、確定しない。
背景: 表現力検証(40-examples)で、周期規則から生成できない列——官報告示の春分・秋分、朔(新月)、
二十四節気、調休の特例日、干支の位相(甲子日)——が繰り返し現れた。受け皿は既にある: ADR-07 は「月相の
ストリームで区切れば太陰暦」と明言し、segmentBy・結合子・カスケードはマーカーストリームさえあれば
機能する。欠けていたのはデータを premise に持ち込む口だけだった(綻び F5。ほか F6/F7/F10/F12/F13/
F19/F22/F25 が同根)。ADR-15 はデータ供給を言語から切り離したが、それは「真正性の判定と更新の主体」を
外に置く話であり、「確定済みのデータを式に書き写す」ことまで禁じる趣旨ではない。官報告示のような
小規模・確定済みの列は、出所と版を明示した上で言語内に書けなければならない——書けなければ天文暦
(旧暦・節気・月相)が全滅する。
暦法純粋(I8・ADR-20)との整理: I8 が禁じるのは「生成子がカレンダー(営業日・祝日という方針)に
依存する」ことであって、「暦法がデータに依存する」ことではない。朔で月を切る太陰太陽暦は、データに
位相を求める暦法(calendar-system)であり、営業日方針とは無関係——Gregorian が数学的モデルで
あるのは Gregorian の性質であって、暦法一般の要件ではない(ADR-19 の「基底座標を入力する管」に、asof・
TZ・粒度スケールと並んでデータ位相が加わるだけ)。データ依存の暦法は source:/asof: を帯び、その
評価は出自註釈で「どの出所・版に基づくか」を運ぶ。純粋性の区別は型でなく出自で付ける。
却下した案:
- 専用のテーブル構文(
table { … }等)を新設する案。値リスト[…](ADR-25 の値レイヤー)と型で 区別できるため、新構文はゼロで足りる。構文の節約を優先。 - データはすべて外部供給(socket)に限り、リテラルを許さない案。最小データ(春分 3 年分・特例日 6 日) にも供給系の構築を強いるのは過剰で、検証・教育・自己完結の記述が不可能になる。リテラルと socket は 「式に埋める/器で受ける」の使い分けであり、後者は供給モデルの宿題と連動するため先送り。
- 乱順を許して評価時に整列する案。無限ストリームとの結合(マージ)が有限列でも同じ整列則で成り立つ ことを静的に保証したい。書き手の錯誤(日付の打ち間違いによる乱順)の検出器にもなる。
帰結:
- 官報の春分秋分・朔・節気・特例日・調休が premise 内で自己完結に書ける(40-examples 01 §1.3/1.6/1.9、 03 §3.1/3.2/3.4 の形がそのまま合法になる)。
- データの尽きる端(未告示年)は「事故の空」と区別された範囲外として観測でき、ADR-15 の サイレント故障対策がデータ列にも及ぶ。
- premise 層と本体層の語彙共有が「束縛右辺に書ける式」のレベルで明文化され、旧暦(データで切る暦法)が 原始的定義として成立する。
- カレンダー実体は「非稼働日ストリーム+出所・版」の束と型が決まる(束の宣言構文は宿題継続)。
- 具体構文(
covering:・範囲リテラルa..b)は 30-syntax §1.15 で確定する。
改訂(2026-07-08・ADR-37): covering: の意味論と表現域を確定した。(1) covering は「範囲内は
完全・範囲外は未知」の二面の主張であり値には触れない(列の全要素は covering に包含=乱順・
重複と同格の静的検査)。(2) 「範囲外の出自」の実体は区間註釈とその輸送表(ADR-37 判断 3/4)。
(3) 表現域を拡張——開端 covering: 2021../..(完結主張・統治つき)と区間リスト
covering: 2020..2022, 2024..2027(中抜けの正直な申告)、および束縛への covering: 後置
(合成の明示被覆主張=相殺の唯一の口)。(4) covering: または日付テーブルを持つ premise は
tz: 宣言必須。詳細は ADR-37。
改訂 2(2026-07-13・ADR-45): 昇格規則を空リストへ拡張——[] は covering: が後置された
ときに限り時間ストリーム定数(空テーブル)に昇格する(「点ゼロだが覆域は主張したい」の一次形=
F98・発報層還流第一次)。covering の無い [] は従来どおり(値位置は空の値リスト・ストリーム位置は
静的エラー=誘導文言つき)。包含・昇順・labels: 同長の各検査は空虚に成立。整列は空虚適合の
第三状態(ADR-36 改訂 3)。詳細は ADR-45。
改訂 3(2026-07-14・ADR-46): 却下案で先送りした「リテラルと socket は『式に埋める/器で受ける』
の使い分け」を確定——外部供給宣言 external(実行時に解決されるテーブルリテラル)の採用により、
更新をデータ側で受ける口が立った。リテラルの意味論・統治は不変(解決値には本 ADR と同一の検査が
契約として掛かる)。詳細は ADR-46。