Finish the soundness and completeness proof of the subtyping algorithm

This commit is contained in:
Yiyun Liu 2025-03-06 20:42:08 -05:00
parent fe52d78ec5
commit 437c97455e
3 changed files with 179 additions and 10 deletions

View file

@ -107,8 +107,8 @@ Lemma term_metric_pair : forall k a0 b0 a1 b1,
Proof.
move => k a0 b0 a1 b1 [i][j][va][vb][hva][hvb][nfa][nfb]h.
apply lored_nsteps_pair_inv in hva, hvb.
move : hva => [?][?][?][?][?][?][?][?]?.
move : hvb => [?][?][?][?][?][?][?][?]?. subst.
decompose record hva => {hva}.
decompose record hvb => {hvb}. subst.
simpl in *. exists (k - 1).
hauto lqb:on solve+:lia.
Qed.
@ -119,8 +119,8 @@ Lemma term_metric_bind : forall k p0 a0 b0 p1 a1 b1,
Proof.
move => k p0 a0 b0 p1 a1 b1 [i][j][va][vb][hva][hvb][nfa][nfb]h.
apply lored_nsteps_bind_inv in hva, hvb.
move : hva => [?][?][?][?][?][?][?][?]?.
move : hvb => [?][?][?][?][?][?][?][?]?. subst.
decompose record hva => {hva}.
decompose record hvb => {hvb}. subst.
simpl in *. exists (k - 1).
hauto lqb:on solve+:lia.
Qed.