Skip to content

Commit 9cb24b4

Browse files
committed
proof: scaffold S_Let_Step LEFT splice with idtac RIGHT fallthrough
Restructures S_Let_Step's tactic block from try solve [LEFT | fail] to try (LEFT | idtac), with LEFT now using step_output_context_eq as oracle to resolve the output-context skolem (Gout = Gmid via assert+subst before eapply T_Let). The change doesn't reduce admit count yet — both LEFT and RIGHT must close to remove a goal from preservation's catch-all Admitted. RIGHT still needs region-env weakening for non-values. Lands as scaffolding for the structural C work: the LEFT closure pattern is verified correct under coqc, ready to propagate to the other 10 congruence blocks once RIGHT-closure infrastructure exists. Refs ephapax#146.
1 parent 67114b5 commit 9cb24b4

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

formal/Semantics.v

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8403,20 +8403,26 @@ Proof.
84038403
end
84048404
].
84058405

8406-
(* S_Let_Step *)
8407-
all: try solve [
8406+
(* S_Let_Step — LEFT branch closed via step_output_context_eq oracle
8407+
(Swarm C splice, 2026-05-26 eve). Output-context skolem Gout from
8408+
IH unifies with H2's Gmid via the new Qed lemma. RIGHT branch
8409+
(touches_region) left as idtac fallthrough to final Admitted. *)
8410+
all: try (
84088411
match goal with
84098412
| [ H1 : has_type ?R ?G ?e1 ?T1 ?Gmid,
84108413
H2 : has_type ?R (ctx_extend ?Gmid ?T1) ?e2 ?T0 ((?T1, true) :: ?G')
84118414
|- exists _ : ctx, has_type ?R' ?G (ELet ?e1' ?e2) ?T0 _ ] =>
84128415
pose proof (step_R_eq_or_touches_region _ _ _ _ _ _ Hstep) as Hdis;
84138416
destruct Hdis as [HeqR | HTR];
8414-
[ rewrite <- HeqR;
8417+
[ rewrite <- HeqR in *;
84158418
edestruct (IHHstep _ _ _ _ _ _ eq_refl eq_refl _ _ _ H1) as [Gout Hout];
8419+
assert (Heq_out : Gmid = Gout) by
8420+
(eapply step_output_context_eq;
8421+
[ exact Hstep | exact H1 | exact Hout ]);
8422+
subst Gmid;
84168423
eexists; eapply T_Let; [exact Hout | exact H2]
8417-
| fail ]
8418-
end
8419-
].
8424+
| idtac ]
8425+
end).
84208426

84218427
(* S_LetLin_Step *)
84228428
all: try solve [

0 commit comments

Comments
 (0)