Commit c6b1cda
proof(L1.A): value_R_G_preserving_l1 Qed (#158)
## Summary
First of three swarm-dispatched helper lemmas for \`preservation_l1\`
(task #21 / L1.A).
\`value_R_G_preserving_l1\` — every value form under the L1 judgment
preserves both R and G (R_out = R_in, G_out = G_in).
**32 LOC of proof body**, no other admits touched.
## Proof structure
- Induction on \`is_value\` with \`revert R G T R' G'\` before induction
for fully-general IHs.
- Atomic values (VUnit, VBool, VI32, VLam, VLoc): single \`inversion\` +
\`split; reflexivity\`.
- Compound values (VPair, VInl, VInr): match goal picks typing premise,
apply IH on sub-value.
- VBorrow: T_Borrow_L1 sub-case (inner = EVar) discharged by
\`inversion\` on the value hypothesis (values can't be EVars).
## What this unblocks
The simple congruence (S_X_Step) cases of \`preservation_l1\` in
Semantics_L1.v can now be inlined — they need this helper to thread R/G
across the value-stepping sub-expression.
## Test plan
- [x] \`coqc 8.18.0\` builds \`Semantics_L1.vo\` cleanly (0 admits on
this lemma)
- [x] Other 3 admits (region_shrink_preserves_typing_l1,
subst_preserves_typing_l1, preservation_l1) UNTOUCHED — separate swarm
agents handle those (L1.B, L1.C; L1.D depends on all three)
- [ ] CI green
Base: \`proof/l1-region-threading-design\` (PR #153, currently bundling
all L1 work). Will rebase onto main once #153 lands.
Refs ephapax#157 (Semantics_L1.v skeleton), task #21.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 1e45e3f commit c6b1cda
1 file changed
Lines changed: 38 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
| 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 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
97 | 134 | | |
98 | 135 | | |
99 | 136 | | |
| |||
0 commit comments