Commit ed347df
proof: WfCNF wrap of the RankMonoUnion umbrella (#169)
## Summary
**Stacked on #168.** Mirrors \`RankMonoUmbrellaSlice4._<ᵇ⁻ⁿ_\`'s
WfCNF-bundling pattern over \`RankMonoUnion._<ᵇᵘ_\` from #168. Provides
the canonical-form invariant downstream Buchholz consumers need
alongside the rank-relation. Zero new proof obligations; \`--safe
--without-K\`, no postulates, no funext.
## What ships
| Name | Type | Role |
|---|---|---|
| \`_<ᵇᵘⁿ_\` | record (WfCNF + WfCNF + \`_<ᵇᵘ_\`) | WfCNF-narrowed union
relation |
| \`mk<ᵇᵘⁿ\` | record constructor | Bundling combinator |
| \`<ᵇᵘⁿ-from-<ᵇ⁰\` / \`<ᵇᵘⁿ-from-<ᵇ¹\` / \`<ᵇᵘⁿ-from-<ᵇ⁺²\` |
embeddings | Constructor-level uplifts under WfCNF endpoints |
| \`rank-pow-mono-<ᵇᵘⁿ\` | rank-mono theorem | One-liner forwarding
through bundled \`<ᵇᵘ-d\` |
## Architectural payoff preserved
The "union of extensions" pattern from #168 extends through the WfCNF
wrap automatically. Future contributors adding a new source-rule
extension \`_<ᵇⁿ_\`:
1. Edit \`RankMonoUnion\` to extend \`_<ᵇᵘ_\` with the new disjunct +
\`rank-pow-mono-<ᵇᵘ\` with the new case.
2. **This module updates AUTOMATICALLY** — no edit needed.
Per-extension proof work + structural composition. No proof obligations
multiply across the WfCNF boundary either.
## Slice 3+4 Route A session arc (5 PRs)
| PR | Layer |
|---|---|
| #165 | rank-lex-jb (b) primitive |
| #166 | rank-lex-jb (c) trichotomy + first-eq |
| #167 | Path-3 prototype (same-left source-rule extension) |
| #168 | RankMonoUnion (architecture) |
| **THIS PR** | **WfCNF wrap of the union** |
## Local verification
- All four Agda lanes typecheck clean, exit 0.
- \`bash tools/check-guardrails.sh proofs/agda\` — **163 modules** pass.
- \`sh scripts/kernel-guard.sh\` — PASS.
Six new names pinned in \`Ordinal/Buchholz/Smoke.agda\`.
## Test plan
- [x] Module typechecks under \`--safe --without-K\` with zero
postulates.
- [x] Full suite + Smoke remain green with the new module wired in.
- [ ] CI: \`check\` + \`cold-check\` + governance lanes green.
- [ ] Auto-merge on green AFTER #168 merges (stacked).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 6e4a67a commit ed347df
3 files changed
Lines changed: 143 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| 155 | + | |
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
617 | 617 | | |
618 | 618 | | |
619 | 619 | | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
0 commit comments