17–18 de agosto de 2026

O modelo estava errado. O compilador não. O zero silencioso era a mentira.

Um dia. A subject reduction falhou no cálculo Lean. A recusa virou instrumento e achou dois sítios que fabricavam. À meia-noite, quatro lanes independentes tinham nomeado a mesma ausência em quatro superfícies.

  1. 01 Manhã — EpistemicEffects.lean perdeu subject reduction. check.sio manteve o tipo do payload. O compilador estava certo.
  2. 02 Tarde — um programa bem tipado devolve um valor ou recusa. Usada como instrumento, essa frase encontrou abs() + 1 ainda tipado como i64, e um stub vazio ainda legível como 0.
  3. 03 Noite — pin_count, CALL, o estado visual e o muro de reclamation: um valor plausível onde a ausência devia ser declarada.

Manhã · o modelo

A subject reduction era falsa. Isso é um facto do cálculo, não do Madaros.

O #1772 provou um contra-exemplo de preservação. O #1779 registou o veredicto: measure a colapsar o payload para Real é um defeito de EpistemicEffects.lean, não uma escolha da linguagem. O checker (`checker_check_measure_expr_inplace`) mete o tipo do argumento em ty_knowledge — measure de um Nat é Knowledge<Nat>. O CLAUDE.md já dizia que measure() rende Knowledge<mg>. O #1780 fechou a correspondência e deixou o modelo V1 refutado sob um aviso. Não cites EpistemicEffects.lean como metateoria. É um modelo refutado.

EffectLatticeBadge · why the compiler was right

fn measure (x: T) -> Knowledge<T> with Observe

checker_check_measure_expr_inplace keeps T. The refuted calculus typed every kraw as Knowledge<Real> and discarded the measured value. A unit type cannot survive that collapse.

EpistemicGateCard · #1779 · db750980b4

EpistemicEffects.lean has subject reduction

REFUSED

  1. E0Syntax
  2. E1HIR Type
  3. E2Effect Lattice
  4. E3GUM Variance Bounds
  5. E4Lean 4 Formal Proof
  6. E5Closed-form Theorem

Preservation is false for that calculus (#1772). measure collapsing the payload to Real contradicts the spec and check.sio. The nearest weakening also fails: the corruption propagates through application. This is a refuted model, not metatheory. E5 is unreached.

Tarde · o instrumento

Um programa bem tipado recusa. A prova, usada como lâmpada, achou dois sítios que ainda fabricavam.

O #1788 provou, no fragmento E219 e sem sorry, refusal_is_not_zero e well_typed_value_or_refuse. Esse ficheiro é um modelo. Não prova que check.sio o implementa — o portão pára em E4 e diz-o. A mesma tarde o modelo foi virado contra o compilador: o #1801 fechou os dois sítios que ainda fabricavam depois de uma recusa. abs() + 1 é ty_error(), não i64. Um stub IR vazio emite ud2, não um 0 por queda. O lean_single continua sem E219. Uma banda de Cmin de vancomicina que não está dentro de [10, 20] é PRE_REFUSE — a mesma tese, numa dose.

EpistemicGateCard · #1788 · 31adf7b4bc

check.sio implements well_typed_value_or_refuse

UNBOUNDED

  1. E0Syntax
  2. E1HIR Type
  3. E2Effect Lattice
  4. E3GUM Variance Bounds
  5. E4Lean 4 Formal Proof
  6. E5Closed-form Theorem

SounioRefusalHonesty.lean proves the E219 fragment with no sorry. The file itself says that is a model, not a proof that check.sio implements the model. Citing the theorem as a compiler proof is empirical extrapolation. E5 is unreached.

EpistemicGateCard · #1801 · 2ab2de46cf

abs() + 1 is not i64; empty stub is ud2

TRUSTWORTHY

  1. E0Syntax
  2. E1HIR Type
  3. E2Effect Lattice
  4. E3GUM Variance Bounds
  5. E4Lean 4 Formal Proof
  6. E5Closed-form Theorem

The afternoon theorem, turned on the compiler, closed two sites of the same class. add_refuse_l: the checker returns ty_error() instead of the declared i64. Empty non-builtin stubs emit ud2. lean_single still has no E219. Two sites, not subject reduction for the whole compiler.

DiagnosticCodeBlock · E250 in full
tests/compile-fail/extern_c_unimplemented_builtin.sio
MadarosIOE250Refused
19extern "C" {
20 fn malloc(size: i64) -> i64;
21 fn abs(x: i64) -> i64;
22}
23
24fn main() -> i64 with IO {
25 let p = malloc(64)
26 print_int(p)
27 print_int(abs(0 - 7))
28 0
29}
E250--> tests/compile-fail/extern_c_unimplemented_builtin.sio:27:15

error[E250]: call to an `extern "C"` function the native backend does not implement

| = help: only these body-less names are implemented: print, print_int, print_char, print_f64, get_arg, get_arg_count, stcut 127r_len, str_char_at, str_eq, str_slice, starts_with, str_concat, str_from_bytes, read_file, write_file, file_size, sqrt, exp, log, sin, cos, assert, heap_alloc, heap_free, f64_to_bits, bits_to_f64, syscall6, malloc, free, getpid, getppid, exit, abort, system, read_i64, write_i64, read_f64, write_f64

= note: there is no dynamic linker in this backend; an unimplemented extern compiles to an empty stub whose calls read 0

Help literal 427 characters · pre-#1784 would keep 127 and drop 300

KnowledgeRefusalMeter · #1797 · PRE_REFUSE
cmin: Knowledge<mg/L>
pre-TDM · 78.5 kg · CrCl 65 · 1000 mg q12hε absent
[9.05, 24.30]var uncalibratedRefused
Refused

PRE_REFUSE. Fréchet support [9.05, 24.30] is not inside the therapeutic window. Refusal is the successful outcome — the same afternoon thesis, on a dose.

Noite · a mesma ausência

Quatro lanes. Uma classe. Um valor plausível onde pertencia uma ausência declarada.

Às 01:00 UTC de 18 de agosto, #1830, #1825, #1829 e #1823 tinham aterrado de quatro lanes que não partilhavam write-set. pin_count era lido como 0 pins vivos; o emissor nunca o incrementa — o sentinela é agora −1, UNWIRED. CALL era recusada só como opcode desconhecido; agora tem nome, MLI_I_CALL_UNSPECIFIED, e has_value=false. O FabricatedDatum deu cara ao quinto estado. O muro de reclamation embarcou a testemunha antes do conserto: o gate está vermelho de propósito aos 4 194 304 allocations (rc=182). O #1792 continua aberto na superfície da dissertação. A classe não está fechada. Está, finalmente, visível.

FabricatedDatum · #1830 · pin_count
runtime_context.pin_countFabricated

Read as zero live pins

Printed as given

0

Sentinel UNWIRED

The other reading

-1

The live x86_linux emitter never increments pin_count. Readers treated 0 as a measurement. #1830 writes −1 (runtime_context_pin_count_unwired) and pin_registry_ready: false. Same class as var=0.000000. Does not implement reclaim.

EpistemicGateCard · #1825 · CALL named

An unspecified CALL is an unknown opcode

TRUSTWORTHY

  1. E0Syntax
  2. E1HIR Type
  3. E2Effect Lattice
  4. E3GUM Variance Bounds
  5. E4Lean 4 Formal Proof
  6. E5Closed-form Theorem

CALL was refused only by the unknown-op catch-all, so a specified-but-unpinned ABI looked like a missing case — the #1801 empty-stub class. Interp now returns MLI_I_CALL_UNSPECIFIED (14) and has_value=false. A genuinely unknown opcode stays I5.

EpistemicGateCard · #1823 · witness before the fix

Handle reclamation at 2^22 allocations

REFUSED

  1. E0Syntax
  2. E1HIR Type
  3. E2Effect Lattice
  4. E3GUM Variance Bounds
  5. E4Lean 4 Formal Proof
  6. E5Closed-form Theorem

The product is the before-state. At 1,000,000 allocations the control holds. At 4,194,304 the fixture fail-closes with rc=182 (POSITIVE_CONTROL_FIRED). A reclamation patch is accepted only when the same gate prints HANDLE_RECLAMATION_OK. Absence declared, not a silent green.

Noite · a classe, rasgada

Estas três caras são a razão de quatro lanes se terem reconhecido.

Um zero que o outro motor não dá. Um inteiro vestido de ε. Um diagnóstico cortado a meio da palavra. O medidor continua a recusar o numeral falso. O FabricatedDatum (#1829) mostra as duas caras e não rasga quando são a mesma string. Os dois primeiros recibos são o #1792. O censo do corte é o #1794.

0.000000 #1792 4604219396932172800 #1792 33 > 127 #1794

var(blood): Knowledge<f64>Fabricated

Madaros

Printed as given

0.000000

lean_single

The other reading

~1e-5

rapamycin_epistemic_adaptive. Madaros printed var(blood/brain/periph)=0.000000. lean_single shows ~1e-5 / ~1e-9. A calibrated zero would be a measurement. This zero is the stub. #1792 is open: fail-closed detection, not a compiler ABI fix.

auc.ε: Knowledge<f64>Fabricated

Madaros TEST 6

Printed as given

4604219396932172800

lean_single ε

The other reading

0.671038

epistemic_pbpk28 TEST 6 printed AUC confidence 4604219396932172800.000000 — documented as the IEEE-bit-pattern-as-decimal of lean_single 0.671038. The integer exceeds JS 2^53; this control keeps it as text. It is not a unit-interval ε. #1792 remains open.

historical E219 help · 127-char capFabricated

Pre-#1784 print

Printed as given

   |
   = help: only these body-less names are implemented: print, print_int, print_char, print_f64, get_arg, get_arg_count, st

Dropped · 206 chars

Dropped after 127

r_len, str_char_at, str_eq, str_slice, starts_with, str_concat, str_from_bytes, read_file, write_file, file_size, sqrt, exp, log, sin, cos, assert, heap_alloc, heap_free, f64_to_bits, bits_to_f64, syscall6

#1794 counted 33 user-facing diagnostics over the old 127-character print cap. Every one was cut. E219 help is 333 characters; 206 were dropped mid-word. The historical CI logs that quote them are incomplete in the tails. #1784 closed the path. This card is the census, not the fix.