問題
roll の着地先が見つからず結果が空になるとき、Kairos は「なぜ空か」を出力の形で区別する。 次の 2 つの評価(どちらも点ゼロ)の出力の違いと、それぞれの運用上の読みを述べよ。
【A】軸データの covering が 2026 年で尽きている(2027 年分は未取得):
sekkiA = [2026-02-04, 2026-05-05] covering: 2026..2026
([2027-03-01] covering: ..) |> roll(Following, on: sekkiA)
【B】軸データの covering が開端(2026-01-01..=それ以降は完結の主張):
sekkiB = [2026-02-04, 2026-05-05] covering: 2026-01-01..
([2027-03-01] covering: ..) |> roll(Following, on: sekkiB)
正答
- 【A】=空+範囲外註釈(評価範囲が sekkiA の実効被覆域の外)。読み: 「着地先は未知—— データを更新すれば点が出るかもしれない。供給の更新が要る」。
- 【B】=空・註釈なし(正当な空)。読み: 「2026-05-05 より後に軸点が無いことは確定—— 該当なしが答えであり、データ更新を待つ必要はない」。
解説
同じ「点ゼロ」に三つの顔がある(ADR-37 判断 6/8 の三分岐): ①実体化地平線(計算範囲
to+400 日の端に当たった——horizon-clip 警告で知らせる・言語の地平線ではない)・
②実効被覆域の外(未知——範囲外註釈が並走)・③完結データの正当な尽き(該当なし——
何も付かない空。ADR-15「事故の空と正当な空の区別」)。運用の分岐がそのまま対応する:
①は評価範囲の設計を見直す・②は供給を更新する・③は何もしない。「空だから何かがおかしい」でも
「空だから正常」でもなく、空の種類を出力が語る——これを読み分けるのが 1 級の運用意味論。
覆域末尾の開端(2026-01-01..)が「以降ずっと完結」という強い主張である点にも注意(安易に
付けると③の顔で嘘をつく)。②③は下の検証で実出力を照合済み・①は警告面のため検証対象外
(doctest 規約では #~> が担う)。impl 実走検証済み(2026-08-02・公開 HEAD d1085ee)。
検証
【A】実効被覆域の外=空+註釈:
# eval: 2027-01-01..2027-06-01
premise JP {
calendar-system: Gregorian
tz: "Asia/Tokyo"
wkst: Mon
}
@JP
sekkiA = [2026-02-04, 2026-05-05] covering: 2026..2026
([2027-03-01] covering: ..) |> roll(Following, on: sekkiA)
# ⚠ 範囲外 2027-01-01..2027-06-01(sekkiA covering 2026-01-01..2026-12-31)
# 被覆サマリ
# (無名テーブル) covering ..(完結主張) 残走路 ∞
# sekkiA covering 2026-01-01..2026-12-31 残走路 -151 日
【B】完結データの正当な尽き=註釈なしの空:
# eval: 2027-01-01..2027-06-01
premise JP {
calendar-system: Gregorian
tz: "Asia/Tokyo"
wkst: Mon
}
@JP
sekkiB = [2026-02-04, 2026-05-05] covering: 2026-01-01..
([2027-03-01] covering: ..) |> roll(Following, on: sekkiB)
# 被覆サマリ
# (無名テーブル) covering ..(完結主張) 残走路 ∞
# sekkiB covering 2026-01-01..(完結主張) 残走路 ∞