Skip to content

Commit 14430fb

Browse files
thermo: close the C+ identity-only gap (injective + Bishop-finite), pin O-THERMO-∞ (#58)
## What Advances the **Thermodynamic — Landauer/Bennett** direction from its ~70% / C+ rating by closing the one concrete gap that drove that rating and converting the residual into a single *falsifiable* obligation. The C+ gap was specific: the only proved zero-cost (Bennett) instance was `bennett-reversible-id-zero` — the **identity map, at index zero**. `ThermodynamicOptimality(p) := fiber-erasure-bound p σ _≟_ T ≡ 0` was otherwise unproved off that single point. ### Closed cases (proved) All `--safe --without-K`, **zero postulates, zero escape pragmas**; `proofs/agda/All.agda` + `proofs/agda/Smoke.agda` re-verify exit 0. - `EchoFiberCount.FiberSize-fin-injective` — any injective `f : Fin n → B` that hits `y` has fiber size exactly `1` (generalises `FiberSize-fin-id-zero` off the identity *and* off index zero). - `EchoThermodynamics.bennett-reversible-injective` — zero erasure bound for **every injective map** at every value it hits; `bennett-reversible-id-zero` is now a corollary. - `EchoThermodynamicsFinite` (new) — names the exact blocker to generalising past `Fin n` (`fiber-erasure-bound` is routed through `FiberSize-fin`, whose totality is structural recursion on the `Fin` index bound) and removes it for **any Bishop-finite carrier** via transport along an explicit bijection (record `FiniteDomain`): `bennett-reversible-finite`, `landauer-collapse-finite`. ### Stated falsifiable obligation - **O-THERMO-∞** (`docs/ECHO-CNO-BRIDGE.adoc` §"Thermodynamic Bridge"): no `--safe`-total cost functional on an infinite carrier (`ProgramState = ℕ → ℕ`) can agree with `fiber-erasure-bound` on the finite restrictions. Stated with an explicit **kill condition** (exhibit such a `cost`, or mechanise the impossibility) — not softened to "future work". ## Honours retraction R-2026-05-18 Orthogonal to the retracted graded-comonad / two-models / conservativity / universal-property / funext claims. No retracted claim reinstated; no Agda module weakened or edited. ## Docs (same PR) - `docs/ECHO-CNO-BRIDGE.adoc` §"Thermodynamic Bridge" — proved generalisations, O-THERMO-∞, Theorem 4, AZ mapping row. - `docs/STABILITY_ANALYSIS.md` §3.3 + coverage matrix — C+ 70% → B- 85%, single residual named. - `docs/echo-types/MAP.adoc` — Thermodynamic Directions entry + status tag (governance rule). Stays `[REAL*]` (real, still partial) until O-THERMO-∞ is discharged or refuted. ## Base Stacked on `docs/echo-types-master-map` (PR #54) because `MAP.adoc` does not exist on `main` yet and the governance rule requires the status-tag update in the same PR. Re-target to `main` once #54 lands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 6899603 commit 14430fb

8 files changed

Lines changed: 374 additions & 39 deletions

File tree

docs/ECHO-CNO-BRIDGE.adoc

Lines changed: 113 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -75,19 +75,19 @@ bennett-reversible :
7575
fiber-erasure-bound f y _≟_ T ≡ 0
7676
```
7777

78-
**Status: PROVED** for the finite-domain `Fin n → B` case. The
79-
identity `id : Fin (suc m) → Fin (suc m)` is a canonical instance
80-
discharged by `bennett-reversible-id-zero`.
81-
82-
**NOT proved**: the analogous claim over the original
83-
`ProgramState = ℕ → ℕ` carrier. Counting fibers of a function on
84-
an infinite type is not constructively meaningful without a
85-
heavier semantic framework (capacity, measure, equivalence-class
86-
quotients), and the `cno-identity : ProgramState → ProgramState`
87-
case stays open. The earlier `cno-thermodynamic-optimality`
88-
formulation rested on a hardcoded `FiberSize ≡ 1` that made the
89-
claim vacuous; that hardcode is gone, and the honest finite case
90-
is proved instead.
78+
**Status: PROVED**, and (2026-05-18) generalised twice: from the
79+
identity to *every injective map* (`bennett-reversible-injective`),
80+
and from `Fin n` to *any Bishop-finite carrier* via transport
81+
(`bennett-reversible-finite`, `EchoThermodynamicsFinite`).
82+
`bennett-reversible-id-zero` is now a corollary.
83+
84+
**NOT proved**: the analogous claim over an infinite carrier
85+
(`ProgramState = ℕ → ℕ`). This is no longer a vague gap — it is the
86+
precise, falsifiable obligation **O-THERMO-∞**, stated with its kill
87+
condition in §"Thermodynamic Bridge" below. The earlier
88+
`cno-thermodynamic-optimality` formulation rested on a hardcoded
89+
`FiberSize ≡ 1` that made the claim vacuous; that hardcode is gone,
90+
and the honest finite/Bishop-finite case is proved instead.
9191

9292
### Theorem 5: Information-preservation (NOT YET FORMALISED)
9393

@@ -140,7 +140,7 @@ Absolute Zero defines CNOs with four properties:
140140
| `FinalState(p, σ) = σ` | `Echo p σ` contains `(σ, refl)` |
141141
| `NoSideEffects(p)` | `Echo p σ` is singleton (only `σ` maps to `σ`) |
142142
| `ThermodynamicallyReversible(p)` | `Echo p σ ≃ Echo id σ` |
143-
| `ThermodynamicOptimality(p)` | `fiber-erasure-bound p σ _≟_ T ≡ 0` _(proved at finite-domain `Fin n → B` onlysee Theorem 4)_ |
143+
| `ThermodynamicOptimality(p)` | `fiber-erasure-bound p σ _≟_ T ≡ 0` _(proved for every injective `p` on any Bishop-finite carrier — Theorem 4; infinite-carrier case = falsifiable obligation O-THERMO-∞)_ |
144144
| `InformationPreservation(p)` | _no formalised analogue — `echo-information-loss` was never defined; see Theorem 5_ |
145145
| `UniversalCNO(p)` | `∀ σ → Echo p σ ≃ Echo id σ` (NEW) |
146146
| `ModelIndependence(p)` | `Echo f y ≃ Echo f' y'` across isomorphic models (NEW) |
@@ -219,7 +219,7 @@ actually in the proven suite.
219219
3. **Fiber erasure bound**:
220220
`fiber-erasure-bound f y _≟_ T = landauer-bound T (FiberSize-fin f y _≟_)`.
221221
222-
### Core Theorems (proved, finite domain only)
222+
### Core Theorems (proved)
223223

224224
```agda
225225
-- Bennett: if the fiber size at y is 1, the erasure bound is 0
@@ -240,11 +240,96 @@ landauer-collapse :
240240
fiber-erasure-bound f y _≟_ T ≡ k * T * ⌊log₂ n⌋
241241
```
242242

243-
### What is NOT proved
243+
### The C+ gap, and how far the bound generalises (2026-05-18)
244+
245+
The `STABILITY_ANALYSIS.md` §3.3 ~70% / C+ rating was driven by a
246+
single concrete gap: the only proved zero-cost (Bennett) instance was
247+
`bennett-reversible-id-zero`*the identity map, at index zero*. The
248+
general predicate `ThermodynamicOptimality(p) := fiber-erasure-bound
249+
p σ _≟_ T ≡ 0` (Absolute-Zero mapping table) was otherwise unproved
250+
off that one point. Two strictly stronger cases are now closed, and
251+
the residual is pinned to one falsifiable obligation.
252+
253+
**Proved — generalisation past the identity (`EchoFiberCount`,
254+
`EchoThermodynamics`).** Zero erasure cost holds for *every injective
255+
map*, at *every value it hits*, not just `id`/`zero`:
256+
257+
```agda
258+
FiberSize-fin-injective :
259+
(f : Fin n → B) (y : B) (_≟_ : DecidableEquality B)
260+
(inj : ∀ {i j} → f i ≡ f j → i ≡ j)
261+
(i₀ : Fin n) → f i₀ ≡ y →
262+
FiberSize-fin f y _≟_ ≡ 1
263+
264+
bennett-reversible-injective :
265+
(f : Fin n → B) (y : B) (_≟_ : DecidableEquality B)
266+
(inj : ∀ {i j} → f i ≡ f j → i ≡ j)
267+
(i₀ : Fin n) → f i₀ ≡ y → (T : Temperature) →
268+
fiber-erasure-bound f y _≟_ T ≡ 0
269+
```
270+
271+
This is the exact constructive content of "reversible ⇒ no
272+
Landauer-mandated dissipation": injectivity *is* reversibility, a
273+
singleton fiber *is* the absence of fan-in. `bennett-reversible-id-zero`
274+
is now a corollary, not the only instance.
275+
276+
**Proved — generalisation past `Fin n` to any Bishop-finite carrier
277+
(`EchoThermodynamicsFinite`).** What blocks `Fin n → B` from
278+
generalising is *exactly* one thing: `fiber-erasure-bound` is routed
279+
through `FiberSize-fin`, whose totality is structural recursion on the
280+
index bound `n` of `Fin n`. That is removed for any carrier `A`
281+
carrying an explicit bijection `A ≃ Fin n` (record `FiniteDomain`),
282+
by transport along the bijection — no new axiom, `--safe --without-K`,
283+
zero postulates:
284+
285+
```agda
286+
record FiniteDomain (A : Set) : Set where
287+
field card : ℕ; to : A → Fin card; from : Fin card → A
288+
from∘to : ∀ a → from (to a) ≡ a
289+
to∘from : ∀ i → to (from i) ≡ i
290+
291+
bennett-reversible-finite :
292+
(fd : FiniteDomain A) (f : A → B) (y : B) (_≟_ : DecidableEquality B)
293+
(inj : ∀ {a a′} → f a ≡ f a′ → a ≡ a′)
294+
(a₀ : A) → f a₀ ≡ y → (T : Temperature) →
295+
fiber-erasure-bound-fin fd f y _≟_ T ≡ 0
296+
297+
landauer-collapse-finite :
298+
(fd : FiniteDomain A) (f : A → B) (y : B) (_≟_ : DecidableEquality B) →
299+
(∀ a → f a ≡ y) → (T : Temperature) →
300+
fiber-erasure-bound-fin fd f y _≟_ T ≡ k * T * ⌊log₂ card fd ⌋
301+
```
302+
303+
### Open obligation O-THERMO-∞ (precise, falsifiable — not softened)
304+
305+
The infinite carrier (`ProgramState = ℕ → ℕ`, or any `A` with no
306+
`A ≃ Fin n`) does **not** generalise, and the reason is now stated
307+
sharply enough to be refuted:
308+
309+
> **O-THERMO-∞.** There is no function
310+
> `cost : (ℕ → B) → (y : B) → DecidableEquality B → Temperature → Energy`
311+
> that is (i) `--safe --without-K` total (no postulate, no escape
312+
> pragma), and (ii) agrees with `fiber-erasure-bound` on every finite
313+
> restriction `Fin n ↪ ℕ` (equivalently: agrees with
314+
> `fiber-erasure-bound-fin` for every `FiniteDomain`-witnessed
315+
> sub-carrier).
316+
>
317+
> **Falsifier (how to kill this obligation).** Exhibit such a `cost`
318+
> and a mechanised proof of (i)+(ii); that refutes O-THERMO-∞ and
319+
> earns the claim back. **Witness that it bites:** the constant map
320+
> `c : ℕ → B`, `c _ = y₀` has `Echo c y₀ ≃ ℕ` — an infinite fiber.
321+
> Clause (ii) instantiated at the finite restrictions forces, by
322+
> `landauer-collapse`, `cost c y₀ _≟_ T = k · T · ⌊log₂ N⌋` with the
323+
> finite counts `N = 0,1,2,…` unboundedly — so any total `cost` must
324+
> assign `⌊log₂_⌋` of a quantity with no natural-number value. The
325+
> obligation is discharged in exactly one of two ways: a constructive
326+
> `cost` meeting (i)+(ii) (impossibility refuted), or a mechanised
327+
> proof that (i)∧(ii) ⊢ ⊥ (impossibility confirmed). Neither is in
328+
> the suite; until one lands, `ThermodynamicOptimality(p)` over an
329+
> infinite `ProgramState` is **`[OPEN]`**, not "future work".
330+
331+
### What is still NOT proved (unchanged)
244332

245-
* `cno-zero-energy` over the original `ProgramState = ℕ → ℕ`
246-
carrier — counting fibers on an infinite type is not
247-
constructively meaningful here.
248333
* `echo-information-loss` and `cno-zero-information-loss`
249334
`echo-information-loss` was never defined in any module;
250335
the prior claims rested on undeclared identifiers.
@@ -254,14 +339,15 @@ landauer-collapse :
254339
### Connection to Absolute Zero Goals
255340

256341
1. **Landauer's Principle (shape)**: formalised via `landauer-bound`
257-
and `fiber-erasure-bound` at the finite-domain level.
258-
2. **Thermodynamic Reversibility (shape)**: `bennett-reversible` is
259-
proved as a corollary of `FiberSize-fin ≡ 1` and `⌊log₂ 1⌋ ≡ 0`.
260-
`bennett-reversible-id-zero` is the proved instance for
261-
`id : Fin (suc m) → Fin (suc m)` at index zero. The general
262-
"all CNOs dissipate zero energy" claim over `ProgramState` is
263-
open.
264-
4. **Information Theory**: not bridged. Open work — see
342+
and `fiber-erasure-bound`; now at the full Bishop-finite-carrier
343+
level, not merely `Fin n`.
344+
2. **Thermodynamic Reversibility (shape)**: proved for *every*
345+
injective map (`bennett-reversible-injective`) and lifted to any
346+
Bishop-finite carrier (`bennett-reversible-finite`).
347+
`bennett-reversible-id-zero` is now a corollary. The infinite
348+
`ProgramState` case is the single, falsifiable obligation
349+
O-THERMO-∞ above — `[OPEN]`, with a stated kill condition.
350+
3. **Information Theory**: not bridged. Open work — see
265351
`docs/echo-types/roadmap.md`.
266352
267353
## Practical Implications

docs/STABILITY_ANALYSIS.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,25 @@ Echo {A = A} f y = Σ A (λ x → f x ≡ y)
7878

7979
**Stability:** New but well-grounded in existing echo type theory
8080

81-
#### 3.3 Thermodynamic Models: C+
82-
**Proofs:** `EchoThermodynamics.agda`
83-
- Energy-preservation theorems
84-
- Entropy calculations
85-
- Reversibility bounds
86-
87-
**Stability:** Experimental - interesting but needs more development
81+
#### 3.3 Thermodynamic Models: B- (was C+; advanced 2026-05-18)
82+
**Proofs:** `EchoThermodynamics.agda`, `EchoFiberCount.agda`, `EchoThermodynamicsFinite.agda`
83+
- Landauer bound *shape* `k·T·⌊log₂ N⌋` (honest fiber count, no hardcode)
84+
- Bennett zero-cost for **every injective map** (`bennett-reversible-injective`),
85+
not just `id` at index zero — `bennett-reversible-id-zero` is now a corollary
86+
- Lifted off `Fin n` to **any Bishop-finite carrier** by transport along an
87+
explicit bijection (`FiniteDomain`, `bennett-reversible-finite`,
88+
`landauer-collapse-finite`) — `--safe --without-K`, zero postulates
89+
- Landauer worst-case collapse (`landauer-collapse[-finite]`)
90+
91+
**Stability:** The C+ ~70% rating was driven by one concrete gap — the only
92+
proved zero-cost instance was the identity at index zero. That gap is closed:
93+
optimality now holds for every injective map on every Bishop-finite carrier.
94+
The *single* remaining open item is the infinite-carrier case
95+
(`ProgramState = ℕ → ℕ`), now pinned as the **precise, falsifiable obligation
96+
O-THERMO-∞** with a stated kill condition (see
97+
`docs/ECHO-CNO-BRIDGE.adoc` §"Thermodynamic Bridge"). Not "needs more
98+
development" — one named obligation, refutable by exhibiting a total
99+
`--safe` cost functional or by mechanising its impossibility.
88100

89101
### 4. Proof Ecosystem Stability: B+
90102

@@ -99,7 +111,7 @@ Echo {A = A} f y = Σ A (λ x → f x ≡ y)
99111
| Relational | 80% | B |
100112
| CNO Integration | 98% | A- |
101113
| JanusKey Bridge | 90% | B+ |
102-
| Thermodynamics | 70% | C+ |
114+
| Thermodynamics | 85% | B- |
103115

104116
**Proof Quality Indicators:**
105117
- ✅ All core theorems have constructive proofs

docs/echo-types/MAP.adoc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,18 @@ remainder of information-losing computation: for `f : A → B`,
5353
== Directions
5454

5555
=== Thermodynamic — Landauer/Bennett energy bounds `[REAL*]`
56-
Finite-domain Landauer/Bennett bounds; `ThermodynamicallyReversible(p)
57-
≙ Echo p σ ≃ Echo id σ`. Rated ~70% / C+ in STABILITY_ANALYSIS.
56+
Landauer/Bennett bound *shape*; `ThermodynamicallyReversible(p)
57+
≙ Echo p σ ≃ Echo id σ`. Zero-cost (Bennett) proved for *every
58+
injective map* on *any Bishop-finite carrier* (transport along an
59+
explicit bijection); the identity-at-zero instance is now a corollary.
60+
Sole residual is the infinite-carrier case, pinned as the falsifiable
61+
obligation **O-THERMO-∞** (kill condition stated). Re-rated B- / ~85%
62+
in STABILITY_ANALYSIS §3.3 (was C+ / ~70%, 2026-05-18). Stays `[REAL*]`
63+
— real, still partial — until O-THERMO-∞ is discharged or refuted.
5864

5965
* Proofs: `proofs/agda/EchoThermodynamics.agda`,
60-
`proofs/agda/EchoFiberCount.agda`.
66+
`proofs/agda/EchoFiberCount.agda`,
67+
`proofs/agda/EchoThermodynamicsFinite.agda`.
6168
* Docs: `docs/ECHO-CNO-BRIDGE.adoc` §"Thermodynamic Bridge",
6269
`docs/STABILITY_ANALYSIS.md` §3.3, `docs/WORK_PLAN.md` §5,
6370
`docs/adjacency/hott-fibers.adoc`.

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ open import EchoJanusBridge
2828
open import Dyadic
2929
open import DyadicEchoBridge
3030
open import EchoThermodynamics
31+
open import EchoThermodynamicsFinite
3132
open import EchoStabilityTests
3233
open import VecRotation
3334

proofs/agda/EchoFiberCount.agda

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ open import Data.Fin.Base using (Fin; zero; suc)
3939
open import Data.Product.Base using (Σ; _,_)
4040
open import Relation.Nullary using (¬_)
4141
open import Relation.Nullary.Decidable.Core using (Dec; yes; no)
42-
open import Relation.Binary.PropositionalEquality using (_≡_; refl; cong)
42+
open import Relation.Binary.PropositionalEquality using (_≡_; refl; cong; sym; trans)
4343

4444
open import Echo using (Echo)
4545

@@ -72,6 +72,9 @@ private
7272
suc≢zero-Fin : {n} (i : Fin n) ¬ (suc i ≡ zero)
7373
suc≢zero-Fin _ ()
7474

75+
Fin-suc-inj : {n} {i j : Fin n} suc i ≡ suc j i ≡ j
76+
Fin-suc-inj refl = refl
77+
7578
----------------------------------------------------------------------
7679
-- "no-hit" / "all-hit" lemmas (exposed for downstream use).
7780
--
@@ -134,6 +137,43 @@ FiberSize-fin-const :
134137
FiberSize-fin {n = n} (λ _ y₀) y₀ _≟_ ≡ n
135138
FiberSize-fin-const y₀ _≟_ = FiberSize-fin-all-hit (λ _ y₀) y₀ _≟_ (λ _ refl)
136139

140+
----------------------------------------------------------------------
141+
-- Headline 2b — FiberSize-fin-injective
142+
--
143+
-- If `f : Fin n → B` is injective and *some* index `i₀` hits `y`,
144+
-- the fiber over `y` has size exactly 1. This is the honest
145+
-- generalisation of `FiberSize-fin-id-zero`: it removes the
146+
-- restriction to the identity map and to the `zero` index, and
147+
-- depends only on injectivity + a single witness. It is the
148+
-- fiber-count engine behind the general Bennett zero-cost result
149+
-- (`EchoThermodynamics.bennett-reversible-injective`): a reversible
150+
-- — i.e. injective — computation has singleton fibers wherever it
151+
-- lands, hence no Landauer-mandated dissipation there.
152+
--
153+
-- The proof walks the `FiberSize-fin` recursion in lock-step with
154+
-- the witness: the hit index contributes the single `suc`, and
155+
-- injectivity rules out any *other* index hitting `y` (a second hit
156+
-- would equate two distinct domain points).
157+
----------------------------------------------------------------------
158+
159+
FiberSize-fin-injective :
160+
{b} {B : Set b} {n : ℕ}
161+
(f : Fin n B) (y : B) (_≟_ : (y₁ y₂ : B) Dec (y₁ ≡ y₂))
162+
(inj : {i j : Fin n} f i ≡ f j i ≡ j)
163+
(i₀ : Fin n) f i₀ ≡ y
164+
FiberSize-fin f y _≟_ ≡ ℕ.suc ℕ.zero
165+
FiberSize-fin-injective {n = ℕ.suc m} f y _≟_ inj zero hit
166+
with f zero ≟ y
167+
... | yes _ = cong ℕ.suc
168+
(FiberSize-fin-no-hit (f ∘ suc) y _≟_
169+
(λ j fsj≡y suc≢zero-Fin j (inj (trans fsj≡y (sym hit)))))
170+
... | no ¬p = ⊥-elim (¬p hit)
171+
FiberSize-fin-injective {n = ℕ.suc m} f y _≟_ inj (suc i′) hit
172+
with f zero ≟ y
173+
... | yes p = ⊥-elim (suc≢zero-Fin i′ (sym (inj (trans p (sym hit)))))
174+
... | no _ = FiberSize-fin-injective (f ∘ suc) y _≟_
175+
(λ eq Fin-suc-inj (inj eq)) i′ hit
176+
137177
----------------------------------------------------------------------
138178
-- Headline 3 — FiberSize-fin ≡ 0 ⟺ ¬ Echo (split into two halves).
139179
--

proofs/agda/EchoThermodynamics.agda

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
-- * fiber-erasure-bound -- bound applied at a fiber
4444
-- * bennett-reversible -- FiberSize ≡ 1 ⇒ bound ≡ 0
4545
-- * bennett-reversible-id-zero -- id at zero: bound ≡ 0
46+
-- * bennett-reversible-injective -- any injective f + a hit: bound ≡ 0
4647
-- * landauer-collapse -- constant map: bound = k·T·⌊log₂ n⌋
4748

4849
module EchoThermodynamics where
@@ -59,6 +60,7 @@ open import Relation.Binary.PropositionalEquality using (_≡_; refl; cong; sym;
5960
open import EchoFiberCount using
6061
( FiberSize-fin
6162
; FiberSize-fin-id-zero
63+
; FiberSize-fin-injective
6264
; FiberSize-fin-const
6365
; FiberSize-fin-all-hit
6466
)
@@ -146,6 +148,36 @@ bennett-reversible-id-zero :
146148
bennett-reversible-id-zero {m} _≟_ T =
147149
bennett-reversible (λ x x) zero _≟_ T (FiberSize-fin-id-zero _≟_)
148150

151+
----------------------------------------------------------------------
152+
-- bennett-reversible-injective
153+
--
154+
-- The honest general Bennett statement at the finite-domain level:
155+
-- *any* injective `f : Fin n → B` (not merely the identity, not
156+
-- merely at index `zero`) that hits `y` at some index has erasure
157+
-- bound zero at `y`, at every temperature. This subsumes
158+
-- `bennett-reversible-id-zero` (the identity is injective; it hits
159+
-- `zero` at `zero` by `refl`) and is the exact constructive content
160+
-- of "reversible ⇒ no Landauer-mandated dissipation": injectivity
161+
-- is reversibility, a singleton fiber is the absence of fan-in.
162+
--
163+
-- This is as far as the `FiberSize-fin` cost functional reaches.
164+
-- Generalising the *carrier* past `Fin n` is addressed — for
165+
-- Bishop-finite domains — in `EchoThermodynamicsFinite`; the
166+
-- infinite-carrier case (`ProgramState = ℕ → ℕ`) is a stated,
167+
-- falsifiable open obligation, see `docs/ECHO-CNO-BRIDGE.adoc`
168+
-- §"Thermodynamic Bridge" / Open obligation O-THERMO-∞.
169+
----------------------------------------------------------------------
170+
171+
bennett-reversible-injective :
172+
{b} {B : Set b} {n : ℕ}
173+
(f : Fin n B) (y : B) (_≟_ : (y₁ y₂ : B) Dec (y₁ ≡ y₂))
174+
(inj : {i j : Fin n} f i ≡ f j i ≡ j)
175+
(i₀ : Fin n) f i₀ ≡ y
176+
(T : Temperature)
177+
fiber-erasure-bound f y _≟_ T ≡ 0
178+
bennett-reversible-injective f y _≟_ inj i₀ hit T =
179+
bennett-reversible f y _≟_ T (FiberSize-fin-injective f y _≟_ inj i₀ hit)
180+
149181
----------------------------------------------------------------------
150182
-- landauer-collapse
151183
--

0 commit comments

Comments
 (0)