From 43d27b917dab94830caef29a3fbf540f748e20a1 Mon Sep 17 00:00:00 2001 From: jihgfee <jihgfee@gmail.com> Date: Wed, 16 Sep 2020 21:52:09 +0200 Subject: [PATCH] Proved weaker rules of dual/append over send/recv with stronger polymorphic rules --- theories/logrel/subtyping_rules.v | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/theories/logrel/subtyping_rules.v b/theories/logrel/subtyping_rules.v index 6f3c939..155a40d 100644 --- a/theories/logrel/subtyping_rules.v +++ b/theories/logrel/subtyping_rules.v @@ -482,10 +482,6 @@ Section subtyping_rules. iApply lty_le_l; [ iApply lty_bi_le_sym; iApply IH | iApply lty_le_refl ]. Qed. - Lemma lty_le_app_send A S1 S2 : - ⊢ (<!!> TY A; S1) <++> S2 <:> (<!!> TY A; S1 <++> S2). - Proof. rewrite lty_app_send. iSplit; iApply lty_le_refl. Qed. - Lemma lty_le_app_recv_exist {kt} M (A : kt -k> ltty Σ) (S : kt -k> lsty Σ) S2 : LtyMsgTele M A S → ⊢ (<??> M) <++> S2 <:> @@ -502,9 +498,12 @@ Section subtyping_rules. iApply lty_le_l; [ iApply lty_bi_le_sym; iApply IH | iApply lty_le_refl ]. Qed. + Lemma lty_le_app_send A S1 S2 : + ⊢ (<!!> TY A; S1) <++> S2 <:> (<!!> TY A; S1 <++> S2). + Proof. by apply (lty_le_app_send_exist (kt:=KTeleO)). Qed. Lemma lty_le_app_recv A S1 S2 : ⊢ (<??> TY A; S1) <++> S2 <:> (<??> TY A; S1 <++> S2). - Proof. rewrite lty_app_recv. iSplit; iApply lty_le_refl. Qed. + Proof. by apply (lty_le_app_recv_exist (kt:=KTeleO)). Qed. Lemma lty_le_app_choice a (Ss : gmap Z (lsty Σ)) S2 : ⊢ lty_choice a Ss <++> S2 <:> lty_choice a ((.<++> S2) <$> Ss)%lty. @@ -573,9 +572,9 @@ Section subtyping_rules. Qed. Lemma lty_le_dual_send A S : ⊢ lty_dual (<!!> TY A; S) <:> (<??> TY A; lty_dual S). - Proof. apply lty_le_dual_message. Qed. + Proof. by apply (lty_le_dual_send_exist (kt:=KTeleO)). Qed. Lemma lty_le_dual_recv A S : ⊢ lty_dual (<??> TY A; S) <:> (<!!> TY A; lty_dual S). - Proof. apply lty_le_dual_message. Qed. + Proof. by apply (lty_le_dual_recv_exist (kt:=KTeleO)). Qed. Lemma lty_le_dual_choice a (Ss : gmap Z (lsty Σ)) : ⊢ lty_dual (lty_choice a Ss) <:> lty_choice (action_dual a) (lty_dual <$> Ss). -- GitLab