STEP 1573 — Tango 5 値 ↔ Rei D-FUMT₈ 8 値 mapping

STEP 1573 · Rei D-FUMT₈ 8 ⊃ Tango 5 proper superset argument + Rei 独自 3 値 hardware context · Rei-AIOS · 2026-08-30

要旨

Rei D-FUMT₈ 八値論理 {TRUE, FALSE, BOTH, NEITHER, INFINITY, ZERO, FLOWING, SELF} は、 Tango Controls (欧州シンクロトロン + 加速器施設で 数十年運用実績、 tango-controls.org) の 5 値 attribute quality flag {ATTR_VALID, ATTR_INVALID, ATTR_ALARM, ATTR_WARNING, ATTR_CHANGING}proper superset として含む。 Rei 独自 3 値 INFINITY / ZERO / SELF は hardware 領域で 未対応の semantic gap を埋める形になっている。

本 STEP は STEP 1569 (別 tab、 design-import register + Ophyd 読解) の tango 3-mapping table cell summary を、 5 → 8 全 mapping + rationale + hardware context に expand する 補完 doc。 実装ゼロ、 memory + site 反映 のみ。

Full mapping table (5 → 8)

Tango attr qualityRei D-FUMT₈Semantic rationale典型 emit context
ATTR_VALID TRUE measurement OK、 nominal operating range 内、 downstream 消費可 正常 read (default flag)
ATTR_INVALID NEITHER value undefined / uninterpretable、 「読めなかった」 明示 (not 単なる missing) sensor 起動前 / communication timeout / calibration 未完
ATTR_ALARM BOTH 閾値超過 = 値は取れた (TRUE 側) が safety violation (FALSE 側)、 同時保持 温度 min/max 超過、 pressure limit 突破
ATTR_WARNING FLOWING 正常 / alarm の 境界近傍、 「今は valid だが drift 中で 近いうちに alarm 化」 の trajectory 閾値の 90% 超過、 baseline drift 検出
ATTR_CHANGING FLOWING 過渡状態、 未安定、 measurement は取れているが settle time 未達 set 直後、 motor 移動中、 温度 ramping

注: ATTR_WARNINGATTR_CHANGING は 両者とも Rei FLOWING に mapping。 D-FUMT₈ 現状は 「境界近傍 (semantic drift)」 と 「過渡状態 (temporal transient)」 を FLOWING 単一 primitive で表現する。 Rei 側で 区別必要な場合、 FLOWING の subtype tag (drift vs transient) を metadata で 添付する pattern が natural (schema breaking なし)。

Rei 独自 3 値 (hardware context)

D-FUMT₈hardware での意味Tango 相当なし → gap 埋めRei stack 内 既 usage
INFINITY 測定限界超過 = sensor range を 超えた「読み取れないほど大きい」 状態、 NaN/+Inf と 区別 (計測範囲 out-of-scale) Tango は ALARM に 潰す (max threshold 超過扱い)、 「範囲外」 と 「安全違反」 を区別しない STEP 1567 disk_health_verdict の extreme case (温度 > 80°C or reallocated ≥ 100)、 STEP 1348 physics-limits pre-flight (Bekenstein/Landauer/Lloyd 上限)
ZERO 「観測がまだ始まっていない」 / 「data source 未接続」 = 実際に 0.0 を測定したのではない、 data 不在 Tango は INVALID に潰す、 「接続なし」 と 「起動前」 と 「calibration 未完」 と 「読取失敗」 を区別しない STEP 1567 disk_health_verdict の no_data case、 別 tab STEP 1569 で 「全 tool 統一」 提案中 (ophyd-async NotConnectedError 1st-class pattern 移植)
SELF self-referential fixed-point、 measurement が 自分自身を 計測対象に含む場合の 論理的整合性 flag Tango には概念なし (hardware 計測は 自己言及回避 が 暗黙前提) STEP 1509 lyapunov (系の 自己 stability)、 STEP 1541 flow_state_verdict (converging_flow の fixed-point 判定)、 D-FUMT₈ verdict の SELF category

Proper superset argument

Rei D-FUMT₈ 8 値 ⊃ Tango 5 値 の 論理関係 (surjection with 3-value extension):

Tango → Rei D-FUMT₈ mapping is:
  φ: {ATTR_VALID, ATTR_INVALID, ATTR_ALARM, ATTR_WARNING, ATTR_CHANGING}
     → {TRUE, FALSE, BOTH, NEITHER, INFINITY, ZERO, FLOWING, SELF}

  φ(ATTR_VALID)    = TRUE
  φ(ATTR_INVALID)  = NEITHER
  φ(ATTR_ALARM)    = BOTH
  φ(ATTR_WARNING)  = FLOWING
  φ(ATTR_CHANGING) = FLOWING

Image(φ) = {TRUE, NEITHER, BOTH, FLOWING} ⊊ D-FUMT₈
Not-in-image = {FALSE, INFINITY, ZERO, SELF}

Note: FALSE (measurement was performed and returned 'this is not the case')
  も Tango 5 値には直接対応なし。 Tango の ATTR_INVALID は
  「読み取れなかった」 の意味であり、 「読めたが false」 は
  Boolean attribute + ATTR_VALID quality の 組合せで表現される。
  Rei は quality と truth-value を 単一 primitive に統合するため、
  hardware quality flag layer では 5 値中 4 値に mapping。

Paper 145 v0.8 candidate: novelty claim (controllable side)

Rei D-FUMT₈ の hardware layer novelty を controllable claim として 定式化:

使ってよい表現: 「hardware quality flag prior art に対する 3-value extension」 / 「Tango 5 値の proper superset」 / 「semantic gap の埋め (INFINITY = out-of-scale, ZERO = data 不在, SELF = self-referential fixed-point)」

使わない表現: 「世界初 hardware 8 値論理」 (Tang Console NEO + IBM Heron r2 で 既 controllable claim 済、 Paper 145 v0.5 corrigendum precedent 遵守)、 「Tango より優れた」 (hardware production 実績が 数十年差、 Rei は Tang FPGA 単体 + IBM Heron r2 実験のみ)、 「世界統一 quality flag standard」 (adoption reality に 未達)。

Rei stack 内 immediate 効果 (実装ゼロ、 doc + memory のみ)

Honest scope

verbatim quote 未達: Tango 5 値の 公式定義 verbatim quote は 本 STEP session 内で 取得できず (tango-controls.readthedocs.io の 主要 doc URL 404、 pytango readthedocs redirect 先も 404、 cppTango GitHub archived → GitLab 移行済で verify 困難)。 5 値の 意味論は 別 tab notes (STEP 1569) + Tango 公式 website description (verify 可能) + hardware community 慣習知識 に basis。 Paper 145 v0.8 起草時 に 一次 source 参照必須。

mapping validation 未達: 本 mapping は Rei stack 内 semantic reasoning に基づく提案、 Tango community + Rei community の cross-review 未達。 「INVALID → NEITHER」 「ALARM → BOTH」 は D-FUMT₈ semantic に 対して natural mapping だが、 実 hardware community が 同意するかは 未検証 (D-FUMT₈ 自体が Rei stack 独自 primitive、 external adoption ゼロ)。

「WARNING と CHANGING が 両方 FLOWING」 の判断: 現状 D-FUMT₈ で 区別不能、 metadata subtype で 補完可能 (semantic drift vs temporal transient)。 これは Rei D-FUMT₈ 側の expressiveness gap の 一種 = 8 値でも hardware community の 5 値を full recover できない local case。 Rei 独自 3 値 (INFINITY/ZERO/SELF) の 追加で 全体としては proper superset だが、 「単純な 5 → 8 lifting」 ではない。

「proper superset」 の型論的注意: image(φ) は {TRUE, NEITHER, BOTH, FLOWING} の 4 element、 D-FUMT₈ 8 値中 4 値が Tango 5 値の代替。 remaining 4 値 (FALSE, INFINITY, ZERO, SELF) は Tango 5 値には対応先なし。 φ は surjection ではない (Tango 5 値の domain が 4 image に collapse するのは Rei 側の choice)、 injection でもない (WARNING と CHANGING が collide)。 「Rei が Tango を含む」 は semantic expressiveness の意味であり、 hardware production maturity の意味ではない

Related