Commit 97d0793
echo-types: <ᵇ-+1 partial discharge via target-additive-principal parameter (Item 1)
Adds three new compositional primitives in `Ordinal.Buchholz.RankPow`
for the `<ᵇ-+1` constructor (`bplus x₁ x₂ <ᵇ bplus y₁ y₂` from
`x₁ <ᵇ y₁`):
* `rank-mono-<ᵇ-+1-via-target` — parametric in the target-side
additive-principal closure. Consumer supplies the closure witness
at each call site (depending on `y₁`'s shape).
* `rank-mono-<ᵇ-+1-Ω-target` — convenience for `y₁ = bOmega μ`
(target's left summand is an Ω-marker). Uses
`additive-principal-ω-rank-pow {μ}`.
* `rank-mono-<ᵇ-+1-ψ-target` — convenience for `y₁ = bpsi ν α`.
Same closure via the provisional `rank-pow (bpsi ν _) = ω-rank-pow ν`.
## Why parametric
`rank-pow y₁` is additive principal exactly when `y₁` is atomic
(`bOmega` or `bpsi`). For `y₁ = bplus z₁ z₂`, `rank-pow y₁ = rank-pow
z₁ ⊕ rank-pow z₂` is NOT additive principal in general; that
sub-case needs a coarser dominator function or richer rank shape.
The parametric primitive lets consumers handle atomic-`y₁` cases
cleanly while leaving the bplus-`y₁` sub-case explicitly deferred.
## Proof shape
For atomic-target case:
rank x₂ ≤′ rank x₁ <′ rank y₁ (premise + WfCNF tail)
⇒ both <′ rank y₁
⇒ rank x₁ ⊕ rank x₂ <′ rank y₁ (additive-principal at y₁)
≤′ rank (bplus y₁ y₂) (⊕-left-≤-sum)
Headlines pinned in `Smoke.agda`. `agda proofs/agda/All.agda` and
`agda proofs/agda/Smoke.agda` exit 0 under `--safe --without-K`.
No postulates, no escape pragmas.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 9fdad9a commit 97d0793
2 files changed
Lines changed: 72 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
486 | 486 | | |
487 | 487 | | |
488 | 488 | | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
489 | 492 | | |
490 | 493 | | |
491 | 494 | | |
| |||
0 commit comments