docs: SDD 15 §H3b hecho — código por contenido estilo Unison sobre el grano wasm de H2

El núcleo del modelo Unison (definir por hash, nombres como metadata,
actualizar sin romper, componer por hash) se sostiene sobre el runtime
de wawa. Implementación en tawasuyu wawa-memo/src/base.rs (8 tests verdes).
Frontera: es el subconjunto que wasm+BLAKE3+H2 sostienen, no el colapso
total paquete=función=proceso (sigue ambición, no promesa).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-04 06:31:57 -04:00
co-authored by Claude Opus 4.8
parent efe1dfcc46
commit fdfaab5151
+28 -9
View File
@@ -169,14 +169,31 @@ proyecto, no una fase.
por-símbolo como **metadata** (extender `parse_elf_needed`, `query.rs:298`, para emitir exports de
`.dynsym` además de `DT_NEEDED`), fuera de `hash_inputs` (misma disciplina que la evidencia de H1).
El grano fino real (función-por-hash) se difiere a H3b sobre **wasm**, gateado por H2.
- **H3b** — (exploratorio, opcional) Un experimento aislado: una base content-addressed de
funciones **wasm** (grano: un `.wasm` por función pura de H2), viendo si el modelo "insertar
definición, nunca romper" se sostiene sobre el runtime de wawa. Es el subconjunto de Unison
que nuestro stack *ya* podría soportar (wasm + BLAKE3 + determinismo H2), sin un lenguaje nuevo.
- **H3b** — (exploratorio) Base content-addressed de funciones **wasm** (grano: un `.wasm` por
función pura de H2), verificando si "insertar definición, nunca romper" se sostiene sobre el
runtime de wawa. Es el subconjunto de Unison que el stack *ya* soporta (wasm + BLAKE3 +
determinismo H2), sin un lenguaje nuevo.
**Hecho (2026-07-04, en `wawa-memo/src/base.rs` + `tests/h3b.rs`):** el módulo `base` monta la
`Base` content-addressed sobre el grano de H2. Cuatro propiedades Unison, todas verificadas
(8 tests verdes): **(1) identidad = `blake3(bytecode)`** — `definir` es idempotente y deduplica
(structural sharing); **(2) los nombres humanos son metadata separada** (`nombre → Id`) — nombrar
jamás toca `defs`; **(3) actualizar no rompe** (el corazón) — una referencia es un `Termino::Ref(Id)`,
un hash; "actualizar f" = insertar def nueva (hash nuevo) + rebindear el nombre, y todo lo que
apuntaba al hash viejo **evalúa idéntico** (v1 y v2 coexisten, ninguna se sobreescribe); **(4)
composición por hash** — un programa es un árbol de hashes (`Termino::Componer`), su identidad
`blake3(árbol)` es estable e **independiente del mapa de nombres**. Extras: una referencia
colgante **falla con `Carga` sin mentir** (el hash no se resuelve en silencio a otra cosa), las
fallas deterministas de H2 se propagan por la composición, y **evaluar reusa el `Memo`** (cada
hoja `Ref` se memoiza) — código direccionado por contenido + cómputo direccionado por contenido
= el mismo hash, la tesis de §H3 mostrada en pequeño. **Frontera:** NO es Unison entero (sin
grano intra-función, sin typechecking sobre la base, sin lenguaje); es el *subconjunto* que
wasm + BLAKE3 + H2 sostienen. Demuestra que el modelo **se sostiene**, no que hayamos colapsado
paquete = función = proceso (eso sigue siendo el design-doc de H3a).
**Frontera honesta.** No prometer "una distro donde paquete = función = proceso" hasta que H3b
demuestre que el grano fino se sostiene sobre wasm. Es la idea más disruptiva y la menos madura;
tratarla como tal.
**Frontera honesta.** No prometer "una distro donde paquete = función = proceso": H3b demostró
que el **núcleo** del modelo (definir por hash, nombres como metadata, actualizar sin romper,
componer por hash) se sostiene sobre wasm, no que el grano fino intra-función o el colapso total
lo hagan. Es la idea más disruptiva; su núcleo ya está verde, su ambición máxima sigue abierta.
---
@@ -187,7 +204,7 @@ H1 (proof-carrying) ── extensión natural del VERIFY actual ──► arran
H2a (auditar determinismo wasm) ──► gate de todo H2 (spike wawa)
└► H2b (caché local) ──► H2c (caché de malla) [sólo si H2a da verde]
H3a (design-doc) ──► registrar la visión, barato
└► H3b (experimento wasm-por-función) [depende de H2 puro]
└► H3b (experimento wasm-por-función) [sobre H2 puro: núcleo Unison verde]
```
Recomendación: **H1 primero** (empuja la frontera que ya tenemos, sin apuestas). **H2a** en
@@ -201,4 +218,6 @@ no construir. H2c y H3b son futuro condicionado a verdes previos.
- **No reclama verificación formal del sistema.** H1 estratifica evidencia y la reporta;
"verificado bajo supuestos", no "invulnerable".
- **No promete memoización de malla sin determinismo probado** (H2a es el gate).
- **No promete el colapso Unison** hasta que H3b lo demuestre sobre wasm. Design-doc primero.
- **No promete el colapso Unison.** H3b (✅) demostró que su *núcleo* (definir por hash, nombres
como metadata, actualizar sin romper, componer por hash) se sostiene sobre wasm; el colapso
total (paquete = función = proceso, grano intra-función) sigue siendo ambición, no promesa.