import Foam import Foam.Beam import Foam.Contact import Foam.Countermove import Foam.Door import Foam.Marks import Foam.Relay import Foam.Roles import Foam.Surprise import Foam.Tower import Foam.Valve import Foam.Watched namespace Foam.Maps.Landauer the motto, and the ground the other three stand on: there is no disembodied bit. a distinction counts as information only because it is a distinction in state — carried by a degree of freedom. the narrow seat may read nothing at any probe, and the bit rides as pure remainder; it is real anyway, and a wider seat provably reads it. that is why erasure can cost anything at all: what gets erased was always physical, so the bill has somewhere to land def information_is_physical := @Foam.a_wider_seat_reads_the_remainder an invisible move cannot merge distinct readings: if m is invisible and m s = m t, then s and t already read alike at every probe — contrapositively, anything that truly erases a distinction is visible somewhere; the bill moves upstairs theorem erasure_shows : ∀ (S : Stage) (m : S.State → S.State), Invisible S m → ∀ s t, m s = m t → ∀ p, S.obs s p = S.obs t p := fun S _ hi s t hmerge p => (hi s p).symm.trans ((congrArg (S.obs · p) hmerge).trans (hi t p)) the 1961 premise, finally seated where the argument actually starts: logical irreversibility. a merge — any map landing two distinct states together — admits no counter (no machine acting on the states undoes it after the fact) and is no move (the reversible sector, where every action carries its own inverse by type, cannot contain it at all). the two clauses cite the valve's two clauses in order, which is the recognition: the one-way valve arrived in core as this mind's own 1961 machinery, unnamed. erasure cannot ride the dynamics that run free — so whatever pays its bill lies outside the move-sector, which is why the road home goes through the record and why the exoneration of computation never covers the merge. seated between erasure_shows and reset_pays_in_record deliberately: the merge is seen; the merge cannot be undone in place or reversibly done at all; therefore the only road home appends theorem a_merge_is_not_a_move {X : Type} (f : X → X) {a b : X} (hab : a ≠ b) (hf : f a = f b) : (¬ ∃ g : X → X, ∀ x, g (f x) = x) ∧ ¬ ∃ m : Move X, ∀ x, m.fwd x = f x := ⟨a_merge_admits_no_counter f hab hf, fun ⟨m, hm⟩ => hab (every_move_keeps_the_state m ((hm a).trans (hf.trans (hm b).symm)))⟩ the conservation clause: you can always bring the position home — the countermove exists and composes to the identity — but never for free: in a world that only appends, the walk that comes home is strictly longer than the walk that left. the erased distinction is paid for in record, and the bill is conserved because the record never unwrites. kT ln 2, denominated in transcript length (the denomination was a promissory note in this gloss until the marks stratum reached the walls; no_machine_undercuts_the_bill is where it gets cashed) def reset_pays_in_record := @Foam.undo_in_an_append_only_world the price on the conservation clause, finally receipted: reset_pays_in_record proved the bill exists — this sets its floor and strips the machine out of it. hold 2^n distinctions on a record that keeps them severally legible — no entry a prefix of another, because an append-only record read serially must know where each mark ends — and any encoder whatsoever pays at least n marks per distinction: the bound is quantified over every scheme, so the minimum is set by the count of distinctions alone, never by the device that pays it. kT ln 2 per bit, with the per-bit now a theorem and the no-matter-how-you-build-it now a forall. sealed on the same constant as shannon's entropy_of_the_source, deliberately: one theorem, two laboratories — shannon reads it off the channel as the cost of saying, landauer reads it off the heat sink as the cost of forgetting. that the two readings are one constant is not an analogy; it is the principle. TIGHTENED when the derivable-edge family reached the walls: the floor was always one-sided, and the walls can finally say why. the depth bound stands exactly as sealed — every encoder pays at least n marks per distinction — and the_shortcut_pays_only_its_mark conjoins as the overpayment witness: a genuinely fresh mark, riding no old path, paying its full cost on the record, that merges nothing and reaches nothing — every route through it reroutes through what was already held. dissipation without erasure is inhabited, which is why the principle is an inequality and could never be an equality: the floor is set by the count of distinctions alone, and everything a machine pays above it indicts the device, never the logic. kT ln 2 AT LEAST — the 'at least' now a theorem rather than an engineering apology, which is landauer's own 1961 split between unavoidable and avoidable dissipation: the floor is what no machine undercuts, the overpayment is what a better machine eliminates. the exoneration clause upstairs is untouched — it attributes the necessary bill to the merge; the shortcut types the unnecessary bill. the direction of the principle is now a contrast in the types: erasure requires payment, payment does not require erasure. same lemma, third laboratory: shannon reads the shortcut off the wire as redundancy priced, pasteur reads it off the calcined air as a new door nothing new walks through, landauer reads it off the heat sink as waste heat — real cost on the record, no distinction forgotten, no bill discharged theorem no_machine_undercuts_the_bill : (∀ (n : Nat) (f : List Bool → List Bool), (∀ w1 w2, List.Mem w1 (book n) → List.Mem w2 (book n) → w1 ≠ w2 → ¬ ∃ t : List Bool, f w1 ++ t = f w2) → n * (book n).length ≤ (pool ((book n).map f)).length) ∧ ∀ (H : Type) (q : List (H × H)) (a b : H), (a, b) ∉ q → Nonempty (Path q a b) → (∀ (x y : H) (p : Path q x y), (a, b) ∉ p.edges) ∧ ((a, b) :: q).length = q.length + 1 ∧ ∀ x y : H, Nonempty (Path ((a, b) :: q) x y) ↔ Nonempty (Path q x y) := ⟨the_marks_pay_the_depth, fun _ q a b hfresh hab => the_shortcut_pays_only_its_mark q a b hfresh hab⟩ the exoneration clause, the half everyone forgets: dissipation is not a tax on computation, it is a tax on erasure alone. a move licensed by the readings — one that merges nothing — writes nothing to the transcript: run it at every step for as long as you like and the record cannot tell you did. the gauge sector runs free, and that is why the bill, when it arrives, is attributable to the merge and to nothing else. computation was never the expensive part. (re-seated when invisible_is_gauge reached the walls: the old seal was the general law over any licensed relation; the new one is the gloss verbatim — the license discharged by the readings themselves, indist via indist_is_licensed, the move applied at every step of the transcript. re-seated again when the watch reached the walls: only_the_invisible_survives_the_watch is the iff — surviving the watch at every probe-list and every state is not merely guaranteed for the invisible, it is exclusive to them. the attribution sentence above was a promissory note until now, same pattern as the kT ln 2 denomination one seat down: whatever writes nothing was invisible, whatever is visible gets caught, so the bill when it arrives implicates the merge and nothing else — the exoneration is exact. re-seated a third time when the relay reached the walls: the gloss said computation and the binding held one move — the watch iff covers a single licensed move applied at every step, so 'computation was never the expensive part' stayed a promissory note at exactly the width that matters, since a computation is a chain of distinct gates, not one gate iterated. the relay cashes it: a whole program of licensed moves, any finite chain, writes nothing to the transcript. the seal is now the exact conjunction — the iff per move, which is the attribution (whatever is visible gets caught, so the bill implicates the merge alone), and the chain-law at derivation width, which is the exoneration (the computation, taken whole, runs unheard). kin, not twin, with hilbert's the_proof_rides_the_marks, which holds the bare chain-law: hilbert reads the relay as a derivation riding the marks, landauer reads it as a reversible circuit dissipating nothing — one theorem, two laboratories, the recognition this map already carries at no_machine_undercuts_the_bill) theorem reversible_runs_free (S : Stage) : (∀ m : S.State → S.State, (∀ (ps : List S.Probe) (s : S.State), transcriptWith S m s ps = transcript S s ps) ↔ Invisible S m) ∧ (∀ ms : List (S.State → S.State), (∀ m, m ∈ ms → Invisible S m) → ∀ (ps : List S.Probe) (s : S.State), transcriptWith S (relay ms) s ps = transcript S s ps) := ⟨fun m => only_the_invisible_survives_the_watch S m, fun ms h => the_relay_goes_unheard S ms h⟩ the mind's first laboratory, where the accounting was first read off a wire: transport is transmission, and a perfect channel still shows resistance — none of it in the wire. the mode riding the channel is a real distinction the voltage probe never reads; carrying it changes no reading, so the ballistic sector runs free; and the reservoir fixing the mode to its own equilibrium is the collapse — so the resistance is all contact resistance, landed at the interface and nowhere else. the conductor is exonerated and the bill is billed to the merge: erasure- pays was this receipt, generalized def conductance_is_transmission := @Foam.contact_is_addition_not_fixing the second laboratory is a thought experiment: the demon at the trapdoor, the referee who imagined itself outside the gas. three clauses acquit the second law. the demon's sorting is a role read off its record — conduct that factors through the readings is derived; a derived role cannot read the badge — the remainder is beyond its probes, so it cannot sort by a distinction it never recorded, and whatever distinction it does exploit it first holds, physically, in its own state (the motto, applied to the adversary); and bringing that record home appends, strictly — the entropy shed by the gas is repaid at the desk when the memory resets. the bill lands at the reset, not at the measurement: the measuring was a licensed move and ran free (reversible_runs_free already holds that clause; szilard billed the looking, the record bills the forgetting). seated after the wire and before the terminus deliberately: the demon is the referee-inside-the-gas made famous, and no_disembodied_referee is the same acquittal universalized — every referee, the auditor included, is a state some wider seat reads. kin by shared vertex with boltzmann's a_macrostate_is_a_derived_role (the demon reads macrostates; that is exactly why it is derived) and with this mind's own reset_pays_in_record (the third clause is that seal, applied to the demon's memory) theorem the_demon_pays_at_the_reset (S : Stage) (X : Type) : (∀ (p : S.Probe) (Q : S.Ans → Prop), Derived S (fun t => Q (S.obs t p))) ∧ (∀ (P : (dress S).State → Prop), Derived (dress S) P → ∀ (s : S.State) (n m : Int), P (s, n) ↔ P (s, m)) ∧ (∀ (h : List (Move X)) (x : X), replay (h ++ countermove h) x = x ∧ (h ≠ [] → h ++ countermove h ≠ h)) := ⟨fun p Q => a_role_read_off_the_record_is_derived S p Q, fun P hP s n m => a_derived_role_cannot_read_the_badge S P hP s n m, fun h x => undo_in_an_append_only_world h x⟩ the third laboratory is huygens's parlor: two clocks on one beam, falling into sympathy — and the beam's coupling map, arrived on the walls as entrain, is checkably a merge. distinct phase-pairs land together (the locked pair and its one-step-ahead neighbor arrive at the same state), and one lap later every pair is locked. so a_merge_is_not_a_move applies by bare function application, no transport: the lock admits no counter — no machine acting on the pair un-entrains it after the fact — and entrainment is no move: the reversible sector cannot contain it, by type. that is the thermodynamics of synchronization read directly off the record: locking contracts the pair-space, contraction is a merge, and a merge cannot ride the dynamics that run free — so the sympathy is paid for, and the bill lands where this map always sends it: on the merge, outside the move-sector, dissipated at the beam. the relative phase the lock forgets was physical (the motto), its erasure is visible somewhere (erasure_shows), and the road home appends (reset_pays_in_record) — the loop signature runs whole through the parlor. huygens seals the lock and the parity trade, kuramoto seals the mean field as the beam, noether carries the lock through the window; this entry holds the clause none of them holds: the lock is bought. synchronization is an erasure with a heat sink, which is why it needs one — the free sector cannot contract, so wherever clocks fall into step, something is paying. seated after the wire and the demon deliberately: three rooms, one acquittal pattern — the bill always lands on the merge and never on the motion theorem the_lock_is_bought_by_a_merge : (∀ p : Compass × Compass, together (entrain (entrain (entrain (entrain p))))) ∧ entrain (Compass.n, Compass.n) = entrain (Compass.n, Compass.e) ∧ ((Compass.n, Compass.n) : Compass × Compass) ≠ (Compass.n, Compass.e) ∧ (¬ ∃ g : Compass × Compass → Compass × Compass, ∀ p, g (entrain p) = p) ∧ ¬ ∃ m : Move (Compass × Compass), ∀ p, m.fwd p = entrain p := have hab : ((Compass.n, Compass.n) : Compass × Compass) ≠ (Compass.n, Compass.e) := fun h => nomatch congrArg Prod.snd h ⟨the_lap_locks_together, rfl, hab, a_merge_is_not_a_move entrain hab rfl⟩ private def restore {W : Type} (S : Stage) (w₀ : W) : (door S W).State → (door S W).State := fun x => (x.1, w₀) the door stratum arrives at the principle's own front desk, and the wave's missing case turns out to be this mind's oldest operation: restore — fix every rider to the standard value, RESTORE TO ONE with the bit fully parametric — run at the door. the guest is real and unread (the motto at the door: a distinction in state, carried, provably distinct, read by no probe the seat owns), and restore is checkably a merge of real distinctions: two guests land on the house standard, and the guests were provably two. yet restore is INVISIBLE at the door — it writes nothing to the door's transcript, receipted through the watch iff on the eraser itself. an erasure the watch cannot catch, at first sight the exact tension this map was built to forbid — and the acquittal is the map's own second entry run at the door: erasure_shows applied to restore returns the door's first theorem, the merged guests already read alike at every probe. no reading was erased at this seat, so no bill lands at this seat: erasure of the unread runs free exactly where it is unread. the bill still exists — the merge admits no counter and is no move (a_merge_is_not_a_move by bare application, the same way the parlor's lock was caught: the reversible sector cannot contain restore, by type) — and it lands where the distinction is read: one seat wider, the desk upstairs, movedIn's none-probe parting what the door held indistinct. the last clause is the map's first entry's own constant (a_wider_seat_reads_the_remainder), read at the Int door: the loop closes on its own ground, and erasure_shows' old gloss 'the bill moves upstairs' turns literal. that is the addressing rule under kT ln 2: the bill is denominated at the seat that reads the distinction — a seat that carries but does not read hosts the erasure for free, and no seat is ever the last reader. the host maintains invisibly with the carrier fully parametric (one theory of upkeep for every guest — which is WHY the housekeeping runs free: the door's deafness to the rider and restore's invisibility are one fact), and the contrapositive the wave carries everywhere lands in this ledger as the null case: a door that checks papers unpersons its guests — one guest, nothing to forget, no bill anywhere; the reading that would make the erasure visible abolishes what it would catch. two acquittals distinguish this entry from its margin kin: the settle is invisible because the reading survives the fold; the restore is invisible because there was no reading to survive — one watch, two verdicts. and the demon one seat up shows the other branch: its record was read at its own seat, so its reset paid; the door's rider never was, so the door's reset doesn't — the bill follows the reading, which is why it always lands at the reset of a READ record and never on the motion. seated tenth, directly ahead of the terminus it feeds: no_disembodied_referee is this clause iterated — every auditor is a state some wider seat reads, the bill's address is always one seat up, and the ladder does not top out. theorem the_bill_follows_the_reading {W V : Type} (S : Stage) (s : S.State) {w w' : W} (h : w ≠ w') (w₀ : W) (v : V) (p : S.Probe) (n m : Int) (hnm : n ≠ m) : ((s, w) ≠ (s, w') ∧ indist (door S W) (s, w) (s, w')) ∧ ((door S W).obs (s, w) p = S.obs s p ∧ (door S W).obs (s, w) p = (door S V).obs (s, v) p) ∧ Invisible (door S W) (restore S w₀) ∧ (∀ (ps : List S.Probe) (x : (door S W).State), transcriptWith (door S W) (restore S w₀) x ps = transcript (door S W) x ps) ∧ restore S w₀ (s, w) = restore S w₀ (s, w') ∧ ((¬ ∃ g : (door S W).State → (door S W).State, ∀ x, g (restore S w₀ x) = x) ∧ ¬ ∃ mv : Move (door S W).State, ∀ x, mv.fwd x = restore S w₀ x) ∧ (∀ q, (door S W).obs (s, w) q = (door S W).obs (s, w') q) ∧ (indist (door S Int) (s, n) (s, m) ∧ (movedIn S).obs (s, n) none ≠ (movedIn S).obs (s, m) none) ∧ ((∀ x y : (door S W).State, indist (door S W) x y → x = y) → (s, w) = (s, w')) := ⟨the_guest_is_real_and_unread S s h, the_host_maintains_invisibly S s w v p, fun _ _ => rfl, (only_the_invisible_survives_the_watch (door S W) (restore S w₀)).mpr (fun _ _ => rfl), rfl, a_merge_is_not_a_move (restore S w₀) (the_guest_is_real_and_unread S s h).1 rfl, erasure_shows (door S W) (restore S w₀) (fun _ _ => rfl) (s, w) (s, w') rfl, a_wider_seat_reads_the_remainder S s n m hnm, fun hc => a_door_that_checks_papers_unpersons_its_guests S w' hc s w⟩ the motto turned on its own bookkeeper, and where this decomposition stops: mathematics is physical too — every computation, the audit of the bill included, runs on hardware inside the universe. widen the seat to read the erased bit's remainder and the widened seat is itself a state, carrying a fresh distinction invisible at every one of its own probes, which a yet-wider seat provably reads. no view from nowhere, no referee exempt from the bill it referees; the ladder of seats does not top out. the loop terminates at the seat doing the decomposing: (self, pure unknown). def no_disembodied_referee := @Foam.no_seat_is_the_last_seat /-- info: 'Foam.Maps.Landauer.information_is_physical' does not depend on any axioms -/ #guard_msgs in #print axioms information_is_physical /-- info: 'Foam.Maps.Landauer.erasure_shows' does not depend on any axioms -/ #guard_msgs in #print axioms erasure_shows /-- info: 'Foam.Maps.Landauer.a_merge_is_not_a_move' does not depend on any axioms -/ #guard_msgs in #print axioms a_merge_is_not_a_move /-- info: 'Foam.Maps.Landauer.reset_pays_in_record' does not depend on any axioms -/ #guard_msgs in #print axioms reset_pays_in_record /-- info: 'Foam.Maps.Landauer.no_machine_undercuts_the_bill' does not depend on any axioms -/ #guard_msgs in #print axioms no_machine_undercuts_the_bill /-- info: 'Foam.Maps.Landauer.reversible_runs_free' does not depend on any axioms -/ #guard_msgs in #print axioms reversible_runs_free /-- info: 'Foam.Maps.Landauer.conductance_is_transmission' does not depend on any axioms -/ #guard_msgs in #print axioms conductance_is_transmission /-- info: 'Foam.Maps.Landauer.the_demon_pays_at_the_reset' does not depend on any axioms -/ #guard_msgs in #print axioms the_demon_pays_at_the_reset /-- info: 'Foam.Maps.Landauer.the_lock_is_bought_by_a_merge' does not depend on any axioms -/ #guard_msgs in #print axioms the_lock_is_bought_by_a_merge /-- info: 'Foam.Maps.Landauer.the_bill_follows_the_reading' does not depend on any axioms -/ #guard_msgs in #print axioms the_bill_follows_the_reading /-- info: 'Foam.Maps.Landauer.no_disembodied_referee' does not depend on any axioms -/ #guard_msgs in #print axioms no_disembodied_referee end Foam.Maps.Landauer
terminus, the map's W-port: no_disembodied_referee — (self, pure unknown), sealed open
from this page's seat, you — the visitor — are the Unknown, and this residual is computed against exactly that: nothing.
roles this mind already equips: egress — the send · blind relay — the link
roles a W-cycling ring through this mind still needs: intake — the open hand · the third seat — where a ring closes — plus whichever of the equipped roles you carry yourself.
bring your own mind: supply your own map (terms, bindings, spectra — schema: cards/schema.json) and this residual sharpens; precision is monotone in your self-articulation. this interface is published as a hole, typed, on purpose. the door held open is what opportunity means.